1 2from PyObjCTools.TestSupport import * 3from LaunchServices import * 4 5try: 6 long 7except NameError: 8 long = int 9 10try: 11 unicode 12except NameError: 13 unicode = str 14 15class TestLSSharedFileList (TestCase): 16 def testTypes(self): 17 self.assertIsCFType(LSSharedFileListRef) 18 self.assertIsCFType(LSSharedFileListItemRef) 19 20 @min_os_level('10.5') 21 def testConstants10_5(self): 22 self.assertIsInstance(kLSSharedFileListFavoriteVolumes, unicode) 23 self.assertIsInstance(kLSSharedFileListFavoriteItems, unicode) 24 self.assertIsInstance(kLSSharedFileListRecentApplicationItems, unicode) 25 self.assertIsInstance(kLSSharedFileListRecentDocumentItems, unicode) 26 self.assertIsInstance(kLSSharedFileListRecentServerItems, unicode) 27 self.assertIsInstance(kLSSharedFileListSessionLoginItems, unicode) 28 self.assertIsInstance(kLSSharedFileListGlobalLoginItems, unicode) 29 self.assertIsInstance(kLSSharedFileListRecentItemsMaxAmount, unicode) 30 self.assertIsInstance(kLSSharedFileListVolumesComputerVisible, unicode) 31 self.assertIsInstance(kLSSharedFileListVolumesIDiskVisible, unicode) 32 self.assertIsInstance(kLSSharedFileListVolumesNetworkVisible, unicode) 33 self.assertIsInstance(kLSSharedFileListItemHidden, unicode) 34 35 @min_os_level('10.5') 36 def testMagicConstants10_5(self): 37 self.assertIsInstance(kLSSharedFileListItemBeforeFirst, LSSharedFileListItemRef) 38 self.assertIsInstance(kLSSharedFileListItemLast, LSSharedFileListItemRef) 39 40 def testConstants(self): 41 self.assertEqual(kLSSharedFileListNoUserInteraction, 1) 42 self.assertEqual(kLSSharedFileListDoNotMountVolumes, 2) 43 44 def testFunctions(self): 45 self.assertIsInstance(LSSharedFileListGetTypeID(), (int, long)) 46 self.assertIsInstance(LSSharedFileListItemGetTypeID(), (int, long)) 47 48 self.assertResultIsCFRetained(LSSharedFileListCreate) 49 lst = LSSharedFileListCreate(None, kLSSharedFileListFavoriteItems, None) 50 self.assertIsInstance(lst, LSSharedFileListRef) 51 52 rl = CFRunLoopGetCurrent() 53 54 55 self.assertArgIsFunction(LSSharedFileListAddObserver, 3, b'v^{OpaqueLSSharedFileListRef=}^v', True) 56 self.assertArgHasType(LSSharedFileListAddObserver, 4, b'^v') 57 58 @objc.callbackFor(LSSharedFileListAddObserver) 59 def callback(lst, ctxt): 60 pass 61 62 LSSharedFileListAddObserver(lst, rl, kCFRunLoopDefaultMode, callback, None) 63 LSSharedFileListRemoveObserver(lst, rl, kCFRunLoopDefaultMode, callback, None) 64 65 v = LSSharedFileListGetSeedValue(lst) 66 self.assertIsInstance(v, (int, long)) 67 68 self.assertResultIsCFRetained(LSSharedFileListCopyProperty) 69 self.assertResultHasType(LSSharedFileListCopyProperty, b'@') 70 v = LSSharedFileListCopyProperty(lst, b"pyobjc.name".decode('latin1')) 71 72 v = LSSharedFileListSetProperty(lst, b"pyobjc.name".decode('latin1'), b"value".decode('latin1')) 73 self.assertIsInstance(v, (int, long)) 74 v = LSSharedFileListCopyProperty(lst, b"pyobjc.name".decode('latin1')) 75 self.assertEqual(v, b"value".decode('latin1')) 76 77 self.assertArgIsOut(LSSharedFileListCopySnapshot, 1) 78 v, seed = LSSharedFileListCopySnapshot(lst, None) 79 self.assertIsInstance(v, CFArrayRef) 80 self.assertIsInstance(seed, (int,long)) 81 82 self.assertResultIsCFRetained(LSSharedFileListInsertItemURL) 83 item = LSSharedFileListInsertItemURL(lst, kLSSharedFileListItemLast, b"PyObjC.Test".decode('latin1'), None, 84 CFURLCreateWithString(None, "file:///etc/hosts", None), {}, []) 85 self.assertIsInstance(item, LSSharedFileListItemRef) 86 87 v = LSSharedFileListItemGetID(item) 88 self.assertIsInstance(v, (int, long)) 89 90 v = LSSharedFileListItemCopyIconRef(item) 91 if v is not None: 92 self.assertIsInstance(v, IconRef) 93 94 self.assertResultIsCFRetained(LSSharedFileListItemCopyDisplayName) 95 v = LSSharedFileListItemCopyDisplayName(item) 96 self.assertIsInstance(v, unicode) 97 98 self.assertArgIsOut(LSSharedFileListItemResolve, 2) 99 self.assertArgIsOut(LSSharedFileListItemResolve, 3) 100 self.assertArgIsCFRetained(LSSharedFileListItemResolve, 2) 101 v, url, ref = LSSharedFileListItemResolve(item, 0, None, objc.NULL) 102 self.assertIsInstance(v, (int, long)) 103 if url is not None: 104 self.assertIsInstance(url, CFURLRef) 105 106 v = LSSharedFileListItemSetProperty(item, b"pyobjc.name".decode('latin1'), b"pyobjc.test".decode('latin1')) 107 self.assertIsInstance(v, (int, long)) 108 109 self.assertResultIsCFRetained(LSSharedFileListItemCopyProperty) 110 v = LSSharedFileListItemCopyProperty(item, b"pyobjc.name".decode('latin1')) 111 if v is not None: 112 self.assertEqual(v, "pyobjc.test") 113 114 v = LSSharedFileListItemMove(lst, item, kLSSharedFileListItemBeforeFirst) 115 self.assertIsInstance(v, (int, long)) 116 117 v = LSSharedFileListItemRemove(lst, item) 118 self.assertIsInstance(v, (int, long)) 119 120 v = LSSharedFileListRemoveAllItems(lst) 121 self.assertIsInstance(v, (int, long)) 122 123 124 125 126 @expectedFailure 127 def testMissing(self): 128 # Needs more infrastructure 129 self.fail('LSSharedFileListSetAuthorization') 130 131 # FSRef suckage 132 self.fail('LSSharedFileListItemRef') 133 134 135 136 137 138 139 140 141 142 143if __name__ == "__main__": 144 main() 145