pyobjc / pyobjc-framework-Quartz / PyObjCTest / test_cglayer.py

from PyObjCTools.TestSupport import *
from Quartz import *
import Quartz
import os

try:
    long
except NameError:
    long = int

class TestCGLayer (TestCase):
    def testTypes(self):
        self.assertIsCFType(CGLayerRef)

    def setUp(self):
        url = CFURLCreateWithFileSystemPath(None,
            "/tmp/pyobjc.test.pdf", kCFURLPOSIXPathStyle, False)
        self.assertIsInstance(url, CFURLRef)
        context = CGPDFContextCreateWithURL(url,
            ((0, 0), (1000, 1000)), None)
        self.assertIsInstance(context, CGContextRef)
        CGContextBeginPage(context, objc.NULL)

        self.context = context

    def tearDown(self):
        CGContextEndPage(self.context)
        if hasattr(Quartz, 'CGPDFContextClose'): CGPDFContextClose(self.context)
        self.context = None
        if os.path.exists("/tmp/pyobjc.test.pdf"):
            os.unlink("/tmp/pyobjc.test.pdf")


    def testFunctions(self):
        self.assertResultIsCFRetained(CGLayerCreateWithContext)
        layer = CGLayerCreateWithContext(self.context, CGSize(50, 100), None)
        self.assertIsInstance(layer, CGLayerRef)

        v = CGLayerRetain(layer)
        self.assertTrue(v is layer)
        CGLayerRelease(layer)

        sz = CGLayerGetSize(layer)
        self.assertIsInstance(sz, CGSize)
        self.assertEqual(sz, CGSize(50, 100))

        self.assertResultIsNotCFRetained(CGLayerGetContext)
        ctx = CGLayerGetContext(layer)
        self.assertIsInstance(ctx, CGContextRef)
        self.assertIsNot(ctx, self.context)

        CGContextDrawLayerInRect(self.context, CGRectMake(0, 0, 50, 50), layer)
        CGContextDrawLayerAtPoint(self.context, CGPoint(10, 10), layer)

        self.assertIsInstance(CGLayerGetTypeID(), (int, long))

if __name__ == "__main__":
    main()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.