1
2from PyObjCTools.TestSupport import *
3from Quartz.CoreGraphics import *
4from Foundation import NSData
5
6class TestCGDataProvider (TestCase):
7    def testTypes(self):
8        self.failUnlessIsCFType(CGDataProviderRef)
9
10    def testFunctions(self):
11        provider = CGDataProviderCreateWithCFData(buffer("data"))
12        self.failUnlessIsInstance(provider, CGDataProviderRef)
13
14        url = CFURLCreateWithFileSystemPath(None,
15                "/Library/Documentation/Acknowledgements.rtf",
16                kCFURLPOSIXPathStyle, False)
17
18        provider = CGDataProviderCreateWithURL(url)
19        self.failUnlessIsInstance(provider, CGDataProviderRef)
20
21        v = CGDataProviderRetain(provider)
22        self.failUnless(v is provider)
23        CGDataProviderRelease(provider)
24
25        data = CGDataProviderCopyData(provider)
26        self.failUnlessIsInstance(data, CFDataRef)
27
28        info = ["hello world", False]
29        def release(info):
30            info[-1] = True
31        provider = CGDataProviderCreateWithData(info, info[0], len(info[0]), release)
32        self.failUnlessIsInstance(provider, CGDataProviderRef)
33        del provider
34
35        self.failUnless(info[-1])
36
37
38
39    def testMissing(self):
40        self.fail("CGDataProviderCreateSequential") # + callbacks
41        self.fail("CGDataProviderCreateDirect") # + callbacks
42        self.fail("CGDataProviderCreate") # + callbacks
43        self.fail("CGDataProviderCreateDirectAccess") # + callbacks
44
45if __name__ == "__main__":
46    main()
47