1
2from PyObjCTools.TestSupport import *
3from CoreText import *
4
5try:
6    unicode
7except NameError:
8    unicode = str
9
10try:
11    long
12except NameError:
13    long = int
14
15class TestCTFontCollection (TestCase):
16    def testTypes(self):
17        self.assertIsInstance(CTFontCollectionRef, objc.objc_class)
18
19    def testConstants(self):
20        self.assertIsInstance(kCTFontCollectionRemoveDuplicatesOption, unicode)
21
22    def testFunctions(self):
23
24        v = CTFontCollectionCreateWithFontDescriptors([
25            CTFontDescriptorCreateWithNameAndSize("Optima Bold", 14),
26            ], None)
27        self.assertIsInstance(v, CTFontCollectionRef)
28
29        col = CTFontCollectionCreateFromAvailableFonts(None)
30        self.assertIsInstance(col, CTFontCollectionRef)
31
32        self.assertResultIsCFRetained(CTFontCollectionCreateMatchingFontDescriptors)
33        v = CTFontCollectionCreateMatchingFontDescriptors(col)
34        self.assertIsInstance(v, CFArrayRef)
35
36        def compare(a, b, ctx):
37            self.assertIsInstance(a, CTFontDescriptorRef)
38            self.assertIsInstance(b, CTFontDescriptorRef)
39            self.assertEqual(ctx, "foo")
40            return 0
41        self.assertResultIsCFRetained(CTFontCollectionCreateMatchingFontDescriptorsSortedWithCallback)
42        v = CTFontCollectionCreateMatchingFontDescriptorsSortedWithCallback(
43                col, compare, "foo")
44        self.assertIsInstance(v, CFArrayRef)
45
46        v = CTFontCollectionGetTypeID()
47        self.assertIsInstance(v, (int, long))
48
49
50if __name__ == "__main__":
51    main()
52