1 2from PyObjCTools.TestSupport import * 3from Quartz import * 4import Quartz 5import os 6 7class TestCGLayer (TestCase): 8 def testTypes(self): 9 self.assertIsCFType(CGLayerRef) 10 11 def setUp(self): 12 url = CFURLCreateWithFileSystemPath(None, 13 "/tmp/pyobjc.test.pdf", kCFURLPOSIXPathStyle, False) 14 self.assertIsInstance(url, CFURLRef) 15 context = CGPDFContextCreateWithURL(url, 16 ((0, 0), (1000, 1000)), None) 17 self.assertIsInstance(context, CGContextRef) 18 CGContextBeginPage(context, objc.NULL) 19 20 self.context = context 21 22 def tearDown(self): 23 CGContextEndPage(self.context) 24 if hasattr(Quartz, 'CGPDFContextClose'): CGPDFContextClose(self.context) 25 self.context = None 26 if os.path.exists("/tmp/pyobjc.test.pdf"): 27 os.unlink("/tmp/pyobjc.test.pdf") 28 29 30 def testFunctions(self): 31 self.assertResultIsCFRetained(CGLayerCreateWithContext) 32 layer = CGLayerCreateWithContext(self.context, CGSize(50, 100), None) 33 self.assertIsInstance(layer, CGLayerRef) 34 35 v = CGLayerRetain(layer) 36 self.assertTrue(v is layer) 37 CGLayerRelease(layer) 38 39 sz = CGLayerGetSize(layer) 40 self.assertIsInstance(sz, CGSize) 41 self.assertEqual(sz, CGSize(50, 100)) 42 43 self.failIfResultIsCFRetained(CGLayerGetContext) 44 ctx = CGLayerGetContext(layer) 45 self.assertIsInstance(ctx, CGContextRef) 46 self.failIf(ctx is self.context) 47 48 CGContextDrawLayerInRect(self.context, CGRectMake(0, 0, 50, 50), layer) 49 CGContextDrawLayerAtPoint(self.context, CGPoint(10, 10), layer) 50 51 self.assertIsInstance(CGLayerGetTypeID(), (int, long)) 52 53if __name__ == "__main__": 54 main() 55