1 2from PyObjCTools.TestSupport import * 3from AddressBook import * 4 5try: 6 long 7except NameError: 8 long = int 9 10try: 11 unicode 12except NameError: 13 unicode = str 14 15class TestABPeoplePickerC (TestCase): 16 def testConstants(self): 17 self.assertEqual(kABPickerSingleValueSelection, 1 << 0) 18 self.assertEqual(kABPickerMultipleValueSelection, 1 << 1) 19 self.assertEqual(kABPickerAllowGroupSelection, 1 << 2) 20 self.assertEqual(kABPickerAllowMultipleSelection, 1 << 3) 21 self.assertEqual(kEventClassABPeoplePicker, fourcc(b'abpp')) 22 self.assertEqual(kEventParamABPickerRef, fourcc(b'abpp')) 23 self.assertEqual(kEventABPeoplePickerGroupSelectionChanged, 1) 24 self.assertEqual(kEventABPeoplePickerNameSelectionChanged, 2) 25 self.assertEqual(kEventABPeoplePickerValueSelectionChanged, 3) 26 self.assertEqual(kEventABPeoplePickerDisplayedPropertyChanged, 4) 27 self.assertEqual(kEventABPeoplePickerGroupDoubleClicked, 5) 28 self.assertEqual(kEventABPeoplePickerNameDoubleClicked, 6) 29 30 31 def testType(self): 32 self.assertIsInstance(ABPickerRef, objc.objc_class) 33 34 def testFunctions(self): 35 self.assertResultIsCFRetained(ABPickerCreate) 36 ref = ABPickerCreate() 37 try: 38 self.assertIsInstance(ref, (ABPickerRef, objc.lookUpClass('ABPeoplePickerCAdapter'))) 39 40 except objc.error: 41 self.assertIsInstance(ref, ABPickerRef) 42 43 ABPickerSetFrame(ref, ((90, 100), (200, 400))) 44 r = ABPickerGetFrame(ref, None) 45 self.assertIsInstance(r, NSRect) 46 self.assertEqual(r, ((90, 100), (200, 400))) 47 48 self.assertResultHasType(ABPickerIsVisible, objc._C_BOOL) 49 r = ABPickerIsVisible(ref) 50 self.assertIsInstance(r, bool) 51 self.assertTrue(r is False) 52 53 self.assertArgHasType(ABPickerSetVisibility, 1, objc._C_BOOL) 54 ABPickerSetVisibility(ref, True) 55 56 r = ABPickerIsVisible(ref) 57 self.assertTrue(r is True) 58 59 ABPickerSetVisibility(ref, False) 60 61 r = ABPickerIsVisible(ref) 62 self.assertTrue(r is False) 63 64 r = ABPickerGetAttributes(ref) 65 self.assertIsInstance(r, (int, long)) 66 67 r = ABPickerChangeAttributes(ref, kABPickerAllowMultipleSelection, 0) 68 self.assertTrue(r is None) 69 70 ABPickerAddProperty(ref, kABFirstNameProperty) 71 ABPickerAddProperty(ref, kABLastNameProperty) 72 ABPickerRemoveProperty(ref, kABFirstNameProperty) 73 74 v = ABPickerCopyProperties(ref) 75 self.assertIsInstance(v, NSArray) 76 77 # Disable detailed testing, the RemoveProperties function 78 # doesn't actually remove. See radar #7999195. 79 #self.assertEqual(tuple(v), (kABLastNameProperty,)) 80 81 ABPickerSetColumnTitle(ref, "Achternaam", kABLastNameProperty) 82 v = ABPickerCopyColumnTitle(ref, kABLastNameProperty) 83 self.assertResultIsCFRetained(ABPickerCopyColumnTitle) 84 self.assertEqual(v, "Achternaam") 85 86 ABPickerSetDisplayedProperty(ref, kABLastNameProperty) 87 v = ABPickerCopyDisplayedProperty(ref) 88 self.assertResultIsCFRetained(ABPickerCopyDisplayedProperty) 89 self.assertIsInstance(v, unicode) 90 91 v = ABPickerCopySelectedGroups(ref) 92 self.assertIsInstance(v, NSArray) 93 94 v = ABPickerCopySelectedRecords(ref) 95 self.assertIsInstance(v, NSArray) 96 97 v = ABPickerCopySelectedIdentifiers(ref, ABGetMe(ABGetSharedAddressBook())) 98 if v is not None: 99 self.assertIsInstance(v, NSArray) 100 101 v = ABPickerCopySelectedValues(ref) 102 self.assertIsInstance(v, NSArray) 103 104 grp = ABCopyArrayOfAllGroups(ABGetSharedAddressBook())[0] 105 usr = ABGetMe(ABGetSharedAddressBook()) 106 107 ABPickerSelectGroup(ref, grp, True) 108 self.assertArgHasType(ABPickerSelectGroup, 2, objc._C_BOOL) 109 110 ABPickerSelectRecord(ref, usr, False) 111 self.assertArgHasType(ABPickerSelectRecord, 2, objc._C_BOOL) 112 113 ABPickerSelectIdentifier(ref, usr, "Last", False) #ABRecordCopyUniqueId(usr), False) 114 self.assertArgHasType(ABPickerSelectIdentifier, 3, objc._C_BOOL) 115 116 ABPickerDeselectIdentifier(ref, usr, "Last") 117 118 ABPickerDeselectGroup(ref, grp) 119 ABPickerDeselectRecord(ref, usr) 120 121 ABPickerDeselectAll(ref) 122 123 ABPickerClearSearchField(ref) 124 125 if 0: 126 # These are annoying, don't actually call 127 ABPickerEditInAddressBook(ref) 128 ABPickerSelectInAddressBook(ref) 129 else: 130 self.assertResultHasType(ABPickerEditInAddressBook, objc._C_VOID) 131 self.assertResultHasType(ABPickerSelectInAddressBook, objc._C_VOID) 132 133 r = ABPickerGetDelegate(ref) 134 135 ABPickerSetDelegate 136 137 138 139 140 141 142 143 144 145 146 147 148if __name__ == "__main__": 149 main() 150