1
2from PyObjCTools.TestSupport import *
3from Quartz.CoreGraphics import *
4
5class TestCGColor (TestCase):
6    def testTypes(self):
7        self.assertIsCFType(CGColorRef)
8
9    @min_os_level('10.5')
10    def testFunctions10_5(self):
11        self.assertResultIsCFRetained(CGColorCreateGenericGray)
12        color = CGColorCreateGenericGray(0.75, 0.8)
13        self.assertIsInstance(color, CGColorRef)
14
15        self.assertResultIsCFRetained(CGColorCreateGenericRGB)
16        color = CGColorCreateGenericRGB(0.75, 0.8, 1.0, 0.5)
17        self.assertIsInstance(color, CGColorRef)
18
19        self.assertResultIsCFRetained(CGColorCreateGenericCMYK)
20        color = CGColorCreateGenericCMYK(0.75, 0.8, 0.5, 1.0, 0.5)
21        self.assertIsInstance(color, CGColorRef)
22
23        color = CGColorGetConstantColor(kCGColorWhite)
24        self.assertIsInstance(color, CGColorRef)
25
26    def testFunctions(self):
27        self.assertResultIsCFRetained(CGColorCreate)
28        color = CGColorCreate(CGColorSpaceCreateDeviceRGB(),
29                [1.0, 0.5, 0.5])
30        self.assertIsInstance(color, CGColorRef)
31
32        self.assertResultIsCFRetained(CGColorCreateCopy)
33        v = CGColorCreateCopy(color)
34        self.assertIsInstance(v, CGColorRef)
35
36        self.assertResultIsCFRetained(CGColorCreateCopyWithAlpha)
37        v = CGColorCreateCopyWithAlpha(color, 0.7)
38        self.assertIsInstance(v, CGColorRef)
39
40        CGColorRetain(color)
41        CGColorRelease(color)
42
43        self.assertResultHasType(CGColorEqualToColor, objc._C_BOOL)
44        self.assertTrue(CGColorEqualToColor(color, color) is True)
45        self.assertTrue(CGColorEqualToColor(color, v) is False)
46
47        self.assertEqual(CGColorGetNumberOfComponents(color), 4)
48        v = CGColorGetComponents(color)
49        self.assertIsInstance(v, objc.varlist)
50        self.assertIsInstance(v[0], float)
51
52        v = CGColorGetAlpha(color)
53        self.assertIsInstance(v, float)
54
55        v = CGColorGetColorSpace(color)
56        self.assertIsInstance(v, CGColorSpaceRef)
57
58        v = CGColorGetPattern(color)
59        self.assertTrue(v is None)
60
61        self.assertIsInstance(CGColorGetTypeID(), (int, long))
62
63        # CGColorCreateWithPattern, CGColorGetPattern: tested in test_cgpattern
64
65    @min_os_level('10.5')
66    def testConstants(self):
67        self.assertIsInstance(kCGColorWhite, unicode)
68        self.assertIsInstance(kCGColorBlack, unicode)
69        self.assertIsInstance(kCGColorClear, unicode)
70
71if __name__ == "__main__":
72    main()
73