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