1 2from PyObjCTools.TestSupport import * 3from AppKit import * 4 5class TestNSApplicationHelper (NSObject): 6 def copyWithZone_(self, zone): 7 return self 8 9 def writeSelectionToPasteboard_types_(self, pb, tp): 10 return 1 11 def readSelectionFromPasteboard_(self, pb): 12 return 1 13 def application_openFile_(self, sender, file): 14 return 1 15 def application_openTempFile_(self, sender, file): 16 return 1 17 def applicationShouldOpenUntitledFile_(self, sender): 18 return 1 19 def application_openFileWithoutUI_(self, sender, file): 20 return 1 21 def application_printFile_(self, sender, file): 22 return 1 23 def application_printFiles_withSettings_showPrintPanels_( 24 self, a, f, s, sh): 25 return 1 26 def applicationShouldTerminateAfterLastWindowClosed_(self, sender): 27 return 1 28 def applicationShouldHandleReopen_hasVisibleWindows_(self, sender, flag): 29 return 1 30 31 32class TestNSApplication (TestCase): 33 def testConstants(self): 34 self.failUnlessEqual(NSAppKitVersionNumber10_0, 577) 35 self.failUnlessEqual(NSAppKitVersionNumber10_1, 620) 36 self.failUnlessEqual(NSAppKitVersionNumber10_2, 663) 37 self.failUnlessEqual(NSAppKitVersionNumber10_2_3, 663.6) 38 self.failUnlessEqual(NSAppKitVersionNumber10_3, 743) 39 self.failUnlessEqual(NSAppKitVersionNumber10_3_2, 743.14) 40 self.failUnlessEqual(NSAppKitVersionNumber10_3_3, 743.2) 41 self.failUnlessEqual(NSAppKitVersionNumber10_3_5, 743.24) 42 self.failUnlessEqual(NSAppKitVersionNumber10_3_7, 743.33) 43 self.failUnlessEqual(NSAppKitVersionNumber10_3_9, 743.36) 44 self.failUnlessEqual(NSAppKitVersionNumber10_4, 824) 45 46 self.failUnlessIsInstance(NSModalPanelRunLoopMode, unicode) 47 self.failUnlessIsInstance(NSEventTrackingRunLoopMode, unicode) 48 49 self.failUnlessEqual(NSRunStoppedResponse, -1000) 50 self.failUnlessEqual(NSRunAbortedResponse, -1001) 51 self.failUnlessEqual(NSRunContinuesResponse, -1002) 52 53 self.failUnlessEqual(NSUpdateWindowsRunLoopOrdering, 500000) 54 55 self.failUnlessEqual(NSCriticalRequest, 0) 56 self.failUnlessEqual(NSInformationalRequest, 10) 57 58 self.failUnlessEqual(NSApplicationDelegateReplySuccess, 0) 59 self.failUnlessEqual(NSApplicationDelegateReplyCancel, 1) 60 self.failUnlessEqual(NSApplicationDelegateReplyFailure, 2) 61 62 self.failUnlessEqual(NSTerminateCancel, 0) 63 self.failUnlessEqual(NSTerminateNow, 1) 64 self.failUnlessEqual(NSTerminateLater, 2) 65 66 self.failUnlessEqual(NSPrintingCancelled, 0) 67 self.failUnlessEqual(NSPrintingSuccess, 1) 68 self.failUnlessEqual(NSPrintingFailure, 3) 69 self.failUnlessEqual(NSPrintingReplyLater, 2) 70 71 self.failUnlessIsInstance(NSApplicationDidBecomeActiveNotification, unicode) 72 self.failUnlessIsInstance(NSApplicationDidHideNotification, unicode) 73 self.failUnlessIsInstance(NSApplicationDidFinishLaunchingNotification, unicode) 74 self.failUnlessIsInstance(NSApplicationDidResignActiveNotification, unicode) 75 self.failUnlessIsInstance(NSApplicationDidUnhideNotification, unicode) 76 self.failUnlessIsInstance(NSApplicationDidUpdateNotification, unicode) 77 self.failUnlessIsInstance(NSApplicationWillBecomeActiveNotification, unicode) 78 self.failUnlessIsInstance(NSApplicationWillHideNotification, unicode) 79 self.failUnlessIsInstance(NSApplicationWillFinishLaunchingNotification, unicode) 80 self.failUnlessIsInstance(NSApplicationWillResignActiveNotification, unicode) 81 self.failUnlessIsInstance(NSApplicationWillUnhideNotification, unicode) 82 self.failUnlessIsInstance(NSApplicationWillUpdateNotification, unicode) 83 self.failUnlessIsInstance(NSApplicationWillTerminateNotification, unicode) 84 self.failUnlessIsInstance(NSApplicationDidChangeScreenParametersNotification, unicode) 85 86 87 def testFunctions(self): 88 # Testing the next function is not doable in this context... 89 NSApplicationMain 90 self.failUnlessResultIsBOOL(NSApplicationLoad) 91 self.failUnlessIsInstance(NSApplicationLoad(), bool) 92 93 self.failUnlessResultIsBOOL(NSShowsServicesMenuItem) 94 self.failUnlessIsInstance(NSShowsServicesMenuItem("foobar"), bool) 95 96 self.failUnlessIsInstance(NSSetShowsServicesMenuItem("foobar", 1), (int, long)) 97 self.failUnlessArgIsBOOL(NSSetShowsServicesMenuItem, 1) 98 99 NSUpdateDynamicServices() 100 101 pboard = NSPasteboard.pasteboardWithName_("pyobjctest") 102 self.failUnlessIsInstance(pboard, NSPasteboard) 103 self.failUnlessIsInstance(NSPerformService("help", pboard), bool) 104 105 objc.setVerbose(1) 106 v = TestNSApplicationHelper.alloc().init() 107 NSRegisterServicesProvider("foobar", v) 108 NSUnregisterServicesProvider("foobar") 109 110 def testNSApp(self): 111 self.failIf(NSApp is None) 112 self.failUnlessEqual(type(NSApp).__name__, "_NSApp") 113 self.failUnless(hasattr(NSApp, '__call__')) 114 app = NSApp() 115 self.failUnless(app is None or isinstance(app, NSApplication)) 116 117 def testNSModalSession(self): 118 self.failUnlessIsOpaquePointer(NSModalSession) 119 120 app = NSApplication.sharedApplication() 121 window = NSWindow.alloc().init() 122 session = app.beginModalSessionForWindow_(window) 123 self.failUnlessIsInstance(session, NSModalSession) 124 app.endModalSession_(session) 125 126 def testMethods(self): 127 self.failUnlessResultIsBOOL(NSApplication.isActive) 128 self.failUnlessResultIsBOOL(NSApplication.isHidden) 129 self.failUnlessResultIsBOOL(NSApplication.isRunning) 130 self.failUnlessArgIsBOOL(NSApplication.activateIgnoringOtherApps_, 0) 131 132 self.failUnlessArgIsSEL(NSApplication.beginSheet_modalForWindow_modalDelegate_didEndSelector_contextInfo_, 3, 'v@:@' + objc._C_NSInteger + '^v') 133 self.failUnlessArgHasType(NSApplication.beginSheet_modalForWindow_modalDelegate_didEndSelector_contextInfo_, 4, '^v') 134 135 136 self.failUnlessArgIsBOOL(NSApplication.postEvent_atStart_, 1) 137 self.failUnlessArgIsBOOL(NSApplication.makeWindowsPerform_inOrder_, 1) 138 self.failUnlessArgIsBOOL(NSApplication.setWindowsNeedUpdate_, 0) 139 self.failUnlessResultIsBOOL(NSApplication.sendAction_to_from_) 140 self.failUnlessResultIsBOOL(NSApplication.tryToPerform_with_) 141 self.failUnlessArgIsBOOL(NSApplication.replyToApplicationShouldTerminate_, 0) 142 self.failUnlessArgIsBOOL(NSApplication.addWindowsItem_title_filename_, 2) 143 self.failUnlessArgIsBOOL(NSApplication.changeWindowsItem_title_filename_, 2) 144 145 def testDelegateMethods(self): 146 self.failUnlessResultIsBOOL(TestNSApplicationHelper.application_openFile_) 147 self.failUnlessResultIsBOOL(TestNSApplicationHelper.application_openTempFile_) 148 self.failUnlessResultIsBOOL(TestNSApplicationHelper.applicationShouldOpenUntitledFile_) 149 self.failUnlessResultIsBOOL(TestNSApplicationHelper.application_openFileWithoutUI_) 150 self.failUnlessResultIsBOOL(TestNSApplicationHelper.application_printFile_) 151 self.failUnlessArgIsBOOL(TestNSApplicationHelper.application_printFiles_withSettings_showPrintPanels_, 3) 152 self.failUnlessResultIsBOOL(TestNSApplicationHelper.applicationShouldTerminateAfterLastWindowClosed_) 153 self.failUnlessResultIsBOOL(TestNSApplicationHelper.applicationShouldHandleReopen_hasVisibleWindows_) 154 self.failUnlessArgIsBOOL(TestNSApplicationHelper.applicationShouldHandleReopen_hasVisibleWindows_, 1) 155 156 self.failUnlessResultIsBOOL(TestNSApplicationHelper.writeSelectionToPasteboard_types_) 157 self.failUnlessResultIsBOOL(TestNSApplicationHelper.readSelectionFromPasteboard_) 158 159 160if __name__ == "__main__": 161 main() 162