1
2from PyObjCTools.TestSupport import *
3from Quartz import *
4import Quartz
5from Foundation import NSMutableData
6
7class TestCGPDFContext (TestCase):
8    @min_os_level('10.5')
9    def testFunctions10_5(self):
10        # Note actual test is in the function below this one.
11        CGPDFContextClose
12
13    def testFunctions(self):
14        data = NSMutableData.data()
15        self.assertIsInstance(data, CFMutableDataRef)
16
17        consumer = CGDataConsumerCreateWithCFData(data)
18        self.assertIsInstance(consumer, CGDataConsumerRef)
19
20        self.assertArgIsIn(CGPDFContextCreate, 1)
21        self.assertResultIsCFRetained(CGPDFContextCreate)
22        context = CGPDFContextCreate(consumer, None, None)
23        self.assertIsInstance(context, CGContextRef)
24
25        if hasattr(Quartz, 'CGPDFContextClose'): CGPDFContextClose(context)
26
27        self.assertResultIsCFRetained(CGPDFContextCreateWithURL)
28        url = CFURLCreateWithFileSystemPath(None,
29            "/tmp/pyobjc.test.pdf", kCFURLPOSIXPathStyle, False)
30        self.assertArgIsIn(CGPDFContextCreateWithURL, 1)
31        context = CGPDFContextCreateWithURL(url, None, None)
32        self.assertIsInstance(context, CGContextRef)
33
34        CGPDFContextBeginPage(context, None)
35
36        CGPDFContextSetURLForRect(context, url, ((0, 0), (10, 10)))
37        CGPDFContextAddDestinationAtPoint(context, "target", (50, 50))
38
39        CGPDFContextSetDestinationForRect(context, "target", ((100, 120), (50, 60)))
40
41        CGPDFContextEndPage(context)
42
43        if hasattr(Quartz, 'CGPDFContextClose'): CGPDFContextClose(context)
44
45    @min_os_level('10.5')
46    def testConstants10_5(self):
47        self.assertIsInstance(kCGPDFContextSubject, unicode)
48
49    def testConstants(self):
50        self.assertIsInstance(kCGPDFContextMediaBox, unicode)
51        self.assertIsInstance(kCGPDFContextCropBox, unicode)
52        self.assertIsInstance(kCGPDFContextBleedBox, unicode)
53        self.assertIsInstance(kCGPDFContextTrimBox, unicode)
54        self.assertIsInstance(kCGPDFContextArtBox, unicode)
55        self.assertIsInstance(kCGPDFContextTitle, unicode)
56        self.assertIsInstance(kCGPDFContextAuthor, unicode)
57        self.assertIsInstance(kCGPDFContextKeywords, unicode)
58        self.assertIsInstance(kCGPDFContextCreator, unicode)
59        self.assertIsInstance(kCGPDFContextOwnerPassword, unicode)
60        self.assertIsInstance(kCGPDFContextUserPassword, unicode)
61        self.assertIsInstance(kCGPDFContextEncryptionKeyLength, unicode)
62        self.assertIsInstance(kCGPDFContextAllowsPrinting, unicode)
63        self.assertIsInstance(kCGPDFContextAllowsCopying, unicode)
64        self.assertIsInstance(kCGPDFContextOutputIntent, unicode)
65        self.assertIsInstance(kCGPDFXOutputIntentSubtype, unicode)
66        self.assertIsInstance(kCGPDFXOutputConditionIdentifier, unicode)
67        self.assertIsInstance(kCGPDFXOutputCondition, unicode)
68        self.assertIsInstance(kCGPDFXRegistryName, unicode)
69        self.assertIsInstance(kCGPDFXInfo, unicode)
70        self.assertIsInstance(kCGPDFXDestinationOutputProfile, unicode)
71        self.assertIsInstance(kCGPDFContextOutputIntents, unicode)
72
73
74
75
76
77if __name__ == "__main__":
78    main()
79