1 2from PyObjCTools.TestSupport import * 3from Quartz.PDFKit import * 4 5class TestPDFViewHelper (NSObject): 6 def PDFViewWillChangeScaleFactor_toScale_(self, f, s): return 1.0 7 def PDFViewWillClickOnLink_withURL_(self, s, u): pass 8 def PDFViewPrintJobTitle_(self, s): return u'a' 9 def PDFViewPerformFind_(self, s): pass 10 def PDFViewPerformGoToPage_(self, s): pass 11 def PDFViewPerformPrint_(self, s): pass 12 def PDFViewOpenPDF_forRemoteGoToAction_(self, s, a): pass 13 14 15class TestPDFView (TestCase): 16 def testConstants(self): 17 self.assertEqual(kPDFDisplaySinglePage, 0) 18 self.assertEqual(kPDFDisplaySinglePageContinuous, 1) 19 self.assertEqual(kPDFDisplayTwoUp, 2) 20 self.assertEqual(kPDFDisplayTwoUpContinuous, 3) 21 self.assertEqual(kPDFNoArea, 0) 22 self.assertEqual(kPDFPageArea, 1) 23 self.assertEqual(kPDFTextArea, 2) 24 self.assertEqual(kPDFAnnotationArea, 4) 25 self.assertEqual(kPDFLinkArea, 8) 26 self.assertEqual(kPDFControlArea, 16) 27 self.assertEqual(kPDFTextFieldArea, 32) 28 self.assertEqual(kPDFIconArea, 64) 29 self.assertEqual(kPDFPopupArea, 128) 30 31 self.assertIsInstance(PDFViewDocumentChangedNotification, unicode) 32 self.assertIsInstance(PDFViewChangedHistoryNotification, unicode) 33 self.assertIsInstance(PDFViewPageChangedNotification, unicode) 34 self.assertIsInstance(PDFViewScaleChangedNotification, unicode) 35 self.assertIsInstance(PDFViewAnnotationHitNotification, unicode) 36 self.assertIsInstance(PDFViewCopyPermissionNotification, unicode) 37 self.assertIsInstance(PDFViewPrintPermissionNotification, unicode) 38 39 @min_os_level('10.5') 40 def testConstants10_5(self): 41 self.assertIsInstance(PDFViewAnnotationWillHitNotification, unicode) 42 self.assertIsInstance(PDFViewSelectionChangedNotification, unicode) 43 self.assertIsInstance(PDFViewDisplayModeChangedNotification, unicode) 44 self.assertIsInstance(PDFViewDisplayBoxChangedNotification, unicode) 45 46 def testMethods(self): 47 self.assertResultIsBOOL(PDFView.canGoToFirstPage) 48 self.assertResultIsBOOL(PDFView.canGoToLastPage) 49 self.assertResultIsBOOL(PDFView.canGoToNextPage) 50 self.assertResultIsBOOL(PDFView.canGoToPreviousPage) 51 self.assertResultIsBOOL(PDFView.canGoBack) 52 self.assertResultIsBOOL(PDFView.canGoForward) 53 54 self.assertResultIsBOOL(PDFView.displaysPageBreaks) 55 self.assertArgIsBOOL(PDFView.setDisplaysPageBreaks_, 0) 56 self.assertResultIsBOOL(PDFView.displaysAsBook) 57 self.assertArgIsBOOL(PDFView.setDisplaysAsBook_, 0) 58 self.assertResultIsBOOL(PDFView.shouldAntiAlias) 59 self.assertArgIsBOOL(PDFView.setShouldAntiAlias_, 0) 60 61 self.assertResultIsBOOL(PDFView.canZoomIn) 62 self.assertResultIsBOOL(PDFView.canZoomOut) 63 self.assertResultIsBOOL(PDFView.autoScales) 64 self.assertArgIsBOOL(PDFView.setAutoScales_, 0) 65 66 self.assertArgIsBOOL(PDFView.pageForPoint_nearest_, 1) 67 68 self.assertResultIsBOOL(PDFView.allowsDragging) 69 self.assertArgIsBOOL(PDFView.setAllowsDragging_, 0) 70 71 @min_os_level('10.5') 72 def testMethods10_5(self): 73 self.assertArgIsBOOL(PDFView.setCurrentSelection_animate_, 1) 74 self.assertArgIsBOOL(PDFView.printWithInfo_autoRotate_, 1) 75 self.assertArgIsBOOL(PDFView.printWithInfo_autoRotate_pageScaling_, 1) 76 77 @min_os_level('10.6') 78 def testMethods10_6(self): 79 self.assertResultIsBOOL(PDFView.enableDataDetectors) 80 self.assertArgIsBOOL(PDFView.setEnableDataDetectors_, 0) 81 82 def testProtocols(self): 83 self.assertIsInstance(protocols.PDFViewDelegate, objc.informal_protocol) 84 85 self.assertArgHasType(TestPDFViewHelper.PDFViewWillChangeScaleFactor_toScale_, 1, objc._C_CGFloat) 86 self.assertResultHasType(TestPDFViewHelper.PDFViewWillChangeScaleFactor_toScale_, objc._C_CGFloat) 87 88if __name__ == "__main__": 89 main() 90