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