1''' 2Some simple tests to check that the framework is properly wrapped. 3''' 4import objc 5from PyObjCTools.TestSupport import * 6import LaunchServices 7 8class TestLaunchServices (TestCase): 9 def testValues(self): 10 # Use this to test for a number of enum and #define values 11 self.assert_( hasattr(LaunchServices, 'kLSRequestAllInfo') ) 12 self.assert_( isinstance(LaunchServices.kLSRequestAllInfo, (int, long)) ) 13 # Note: the header file seems to indicate otherwise but the value 14 # really is a signed integer! 15 #self.assertEquals(LaunchServices.kLSRequestAllInfo, 0xffffffff) 16 self.assertEquals(LaunchServices.kLSRequestAllInfo, -1) 17 18 self.assert_( hasattr(LaunchServices, 'kLSLaunchInProgressErr') ) 19 self.assert_( isinstance(LaunchServices.kLSLaunchInProgressErr, (int, long)) ) 20 self.assertEquals(LaunchServices.kLSLaunchInProgressErr, -10818) 21 22 23 self.assert_( hasattr(LaunchServices, 'kLSInvalidExtensionIndex') ) 24 self.assert_( isinstance(LaunchServices.kLSInvalidExtensionIndex, (int, long)) ) 25 26 27 def testVariables(self): 28 self.assert_( hasattr(LaunchServices, 'kUTTypeItem') ) 29 self.assert_( isinstance(LaunchServices.kUTTypeItem, unicode) ) 30 31 self.assert_( hasattr(LaunchServices, 'kUTTypeApplication') ) 32 self.assert_( isinstance(LaunchServices.kUTTypeApplication, unicode) ) 33 34 self.assert_( hasattr(LaunchServices, 'kUTExportedTypeDeclarationsKey') ) 35 self.assert_( isinstance(LaunchServices.kUTExportedTypeDeclarationsKey, unicode) ) 36 37 def testFunctions(self): 38 self.assert_( hasattr(LaunchServices, 'UTTypeEqual') ) 39 self.assert_( isinstance(LaunchServices.UTTypeEqual, objc.function) ) 40 41 self.assert_( hasattr(LaunchServices, 'UTCreateStringForOSType') ) 42 self.assert_( isinstance(LaunchServices.UTCreateStringForOSType, objc.function) ) 43 44 self.assert_( hasattr(LaunchServices, 'LSSetDefaultHandlerForURLScheme') ) 45 self.assert_( isinstance(LaunchServices.LSSetDefaultHandlerForURLScheme, objc.function) ) 46 47 self.assert_( hasattr(LaunchServices, '_LSCopyAllApplicationURLs') ) 48 self.assert_( isinstance(LaunchServices._LSCopyAllApplicationURLs, objc.function) ) 49 50 arr = LaunchServices._LSCopyAllApplicationURLs(None) 51 self.assert_( isinstance(arr, objc.lookUpClass('NSArray') ) ) 52 for a in arr: 53 if str(a) == 'file://localhost/Applications/Calculator.app/': 54 break 55 else: 56 self.fail("No Calculator.app?") 57 58 fn = LaunchServices.LSGetExtensionInfo 59 self.assertEquals( fn(10, u'hello.text', None), (0, 6) ) 60 self.assertEquals( fn(10, 'hello.text', None), (0, 6) ) 61 62if __name__ == "__main__": 63 main() 64 65