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