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