1
2from PyObjCTools.TestSupport import *
3from Quartz.CoreGraphics import *
4from Quartz.QuartzCore import *
5
6class TestCALayerHelper (NSObject):
7    def preferredSizeOfLayer_(self, layer): return 1
8
9class TestCALayer (TestCase):
10    @min_os_level('10.5')
11    def testConstants(self):
12        self.assertEqual(kCALayerNotSizable, 0)
13        self.assertEqual(kCALayerMinXMargin, 1)
14        self.assertEqual(kCALayerWidthSizable, 2)
15        self.assertEqual(kCALayerMaxXMargin, 4)
16        self.assertEqual(kCALayerMinYMargin, 8)
17        self.assertEqual(kCALayerHeightSizable, 16)
18        self.assertEqual(kCALayerMaxYMargin, 32)
19        self.assertEqual(kCALayerLeftEdge, 1)
20        self.assertEqual(kCALayerRightEdge, 2)
21        self.assertEqual(kCALayerBottomEdge, 4)
22        self.assertEqual(kCALayerTopEdge, 8)
23
24        self.assertIsInstance(kCAGravityCenter, unicode)
25        self.assertIsInstance(kCAGravityTop, unicode)
26        self.assertIsInstance(kCAGravityBottom, unicode)
27        self.assertIsInstance(kCAGravityLeft, unicode)
28        self.assertIsInstance(kCAGravityRight, unicode)
29        self.assertIsInstance(kCAGravityTopLeft, unicode)
30        self.assertIsInstance(kCAGravityTopRight, unicode)
31        self.assertIsInstance(kCAGravityBottomLeft, unicode)
32        self.assertIsInstance(kCAGravityBottomRight, unicode)
33        self.assertIsInstance(kCAGravityResize, unicode)
34        self.assertIsInstance(kCAGravityResizeAspect, unicode)
35        self.assertIsInstance(kCAGravityResizeAspectFill, unicode)
36        self.assertIsInstance(kCAFilterLinear, unicode)
37        self.assertIsInstance(kCAFilterNearest, unicode)
38        self.assertIsInstance(kCAOnOrderIn, unicode)
39        self.assertIsInstance(kCAOnOrderOut, unicode)
40        self.assertIsInstance(kCATransition, unicode)
41
42
43    @min_os_level('10.5')
44    def testMethods(self):
45        self.assertResultIsBOOL(CALayer.needsDisplayForKey_)
46        self.assertResultIsBOOL(CALayer.shouldArchiveValueForKey_)
47        self.assertResultIsBOOL(CALayer.isHidden)
48        self.assertArgIsBOOL(CALayer.setHidden_, 0)
49        self.assertResultIsBOOL(CALayer.isDoubleSided)
50        self.assertArgIsBOOL(CALayer.setDoubleSided_, 0)
51        self.assertResultIsBOOL(CALayer.masksToBounds)
52        self.assertArgIsBOOL(CALayer.setMasksToBounds_, 0)
53        self.assertResultIsBOOL(CALayer.containsPoint_)
54        self.assertResultIsBOOL(CALayer.isOpaque)
55        self.assertArgIsBOOL(CALayer.setOpaque_, 0)
56        self.assertResultIsBOOL(CALayer.needsDisplayOnBoundsChange)
57        self.assertArgIsBOOL(CALayer.setNeedsDisplayOnBoundsChange_, 0)
58
59        self.assertResultHasType(TestCALayerHelper.preferredSizeOfLayer_, CGSize.__typestr__)
60
61    @min_os_level('10.6')
62    def testMethods10_6(self):
63        self.assertResultIsBOOL(CALayer.isGeometryFlipped)
64        self.assertArgIsBOOL(CALayer.setGeometryFlipped_, 0)
65        self.assertResultIsBOOL(CALayer.contentsAreFlipped)
66
67        self.assertResultHasType(CALayer.contentsCenter, CGRect.__typestr__)
68        self.assertArgHasType(CALayer.setContentsCenter_, 0, CGRect.__typestr__)
69        self.assertResultIsBOOL(CALayer.needsDisplay)
70        self.assertResultIsBOOL(CALayer.needsLayout)
71
72    @min_os_level('10.6')
73    def testConstants10_6(self):
74        self.assertIsInstance(kCAFilterTrilinear, unicode)
75
76
77if __name__ == "__main__":
78    main()
79