1
2from PyObjCTools.TestSupport import *
3from AppKit import *
4
5class TestNSKeyValueBindingHelper (NSObject):
6    def commitEditingWithDelegate_didCommitSelector_contextInfo_(self, d, s, i):
7        return None
8
9    def commitEditing(self): return 1
10
11
12class TestNSKeyValueBinding (TestCase):
13    def testConstants(self):
14        self.failUnlessIsInstance(NSMultipleValuesMarker, NSObject)
15        self.failUnlessIsInstance(NSNoSelectionMarker, NSObject)
16        self.failUnlessIsInstance(NSNotApplicableMarker, NSObject)
17
18        self.failUnlessIsInstance(NSObservedObjectKey, unicode)
19        self.failUnlessIsInstance(NSObservedKeyPathKey, unicode)
20        self.failUnlessIsInstance(NSOptionsKey, unicode)
21
22
23        self.failUnlessIsInstance(NSAlignmentBinding, unicode)
24        self.failUnlessIsInstance(NSAlternateImageBinding, unicode)
25        self.failUnlessIsInstance(NSAlternateTitleBinding, unicode)
26        self.failUnlessIsInstance(NSAnimateBinding, unicode)
27        self.failUnlessIsInstance(NSAnimationDelayBinding, unicode)
28        self.failUnlessIsInstance(NSArgumentBinding, unicode)
29        self.failUnlessIsInstance(NSAttributedStringBinding, unicode)
30        self.failUnlessIsInstance(NSContentArrayBinding, unicode)
31        self.failUnlessIsInstance(NSContentArrayForMultipleSelectionBinding, unicode)
32        self.failUnlessIsInstance(NSContentBinding, unicode)
33        self.failUnlessIsInstance(NSContentHeightBinding, unicode)
34        self.failUnlessIsInstance(NSContentObjectBinding, unicode)
35        self.failUnlessIsInstance(NSContentObjectsBinding, unicode)
36        self.failUnlessIsInstance(NSContentSetBinding, unicode)
37        self.failUnlessIsInstance(NSContentValuesBinding, unicode)
38        self.failUnlessIsInstance(NSContentWidthBinding	, unicode)
39        self.failUnlessIsInstance(NSCriticalValueBinding, unicode)
40        self.failUnlessIsInstance(NSDataBinding, unicode)
41        self.failUnlessIsInstance(NSDisplayPatternTitleBinding, unicode)
42        self.failUnlessIsInstance(NSDisplayPatternValueBinding, unicode)
43        self.failUnlessIsInstance(NSDocumentEditedBinding, unicode)
44        self.failUnlessIsInstance(NSDoubleClickArgumentBinding, unicode)
45        self.failUnlessIsInstance(NSDoubleClickTargetBinding, unicode)
46        self.failUnlessIsInstance(NSEditableBinding, unicode)
47        self.failUnlessIsInstance(NSEnabledBinding, unicode)
48        self.failUnlessIsInstance(NSFilterPredicateBinding, unicode)
49        self.failUnlessIsInstance(NSFontBinding, unicode)
50        self.failUnlessIsInstance(NSFontBoldBinding, unicode)
51        self.failUnlessIsInstance(NSFontFamilyNameBinding, unicode)
52        self.failUnlessIsInstance(NSFontItalicBinding, unicode)
53        self.failUnlessIsInstance(NSFontNameBinding, unicode)
54        self.failUnlessIsInstance(NSFontSizeBinding, unicode)
55        self.failUnlessIsInstance(NSHeaderTitleBinding, unicode)
56        self.failUnlessIsInstance(NSHiddenBinding, unicode)
57        self.failUnlessIsInstance(NSImageBinding, unicode)
58        self.failUnlessIsInstance(NSIsIndeterminateBinding, unicode)
59        self.failUnlessIsInstance(NSLabelBinding, unicode)
60        self.failUnlessIsInstance(NSManagedObjectContextBinding, unicode)
61        self.failUnlessIsInstance(NSMaximumRecentsBinding, unicode)
62        self.failUnlessIsInstance(NSMaxValueBinding, unicode)
63        self.failUnlessIsInstance(NSMaxWidthBinding, unicode)
64        self.failUnlessIsInstance(NSMinValueBinding, unicode)
65        self.failUnlessIsInstance(NSMinWidthBinding, unicode)
66        self.failUnlessIsInstance(NSMixedStateImageBinding, unicode)
67        self.failUnlessIsInstance(NSOffStateImageBinding, unicode)
68        self.failUnlessIsInstance(NSOnStateImageBinding, unicode)
69        self.failUnlessIsInstance(NSPredicateBinding, unicode)
70        self.failUnlessIsInstance(NSRecentSearchesBinding, unicode)
71        self.failUnlessIsInstance(NSRepresentedFilenameBinding, unicode)
72        self.failUnlessIsInstance(NSRowHeightBinding, unicode)
73        self.failUnlessIsInstance(NSSelectedIdentifierBinding, unicode)
74        self.failUnlessIsInstance(NSSelectedIndexBinding, unicode)
75        self.failUnlessIsInstance(NSSelectedLabelBinding, unicode)
76        self.failUnlessIsInstance(NSSelectedObjectBinding, unicode)
77        self.failUnlessIsInstance(NSSelectedObjectsBinding, unicode)
78        self.failUnlessIsInstance(NSSelectedTagBinding, unicode)
79        self.failUnlessIsInstance(NSSelectedValueBinding, unicode)
80        self.failUnlessIsInstance(NSSelectedValuesBinding, unicode)
81        self.failUnlessIsInstance(NSSelectionIndexesBinding, unicode)
82        self.failUnlessIsInstance(NSSelectionIndexPathsBinding, unicode)
83        self.failUnlessIsInstance(NSSortDescriptorsBinding, unicode)
84        self.failUnlessIsInstance(NSTargetBinding, unicode)
85        self.failUnlessIsInstance(NSTextColorBinding, unicode)
86        self.failUnlessIsInstance(NSTitleBinding, unicode)
87        self.failUnlessIsInstance(NSToolTipBinding, unicode)
88        self.failUnlessIsInstance(NSValueBinding, unicode)
89        self.failUnlessIsInstance(NSValuePathBinding, unicode)
90        self.failUnlessIsInstance(NSValueURLBinding, unicode)
91        self.failUnlessIsInstance(NSVisibleBinding, unicode)
92        self.failUnlessIsInstance(NSWarningValueBinding, unicode)
93        self.failUnlessIsInstance(NSWidthBinding, unicode)
94
95        self.failUnlessIsInstance(NSAllowsEditingMultipleValuesSelectionBindingOption, unicode)
96        self.failUnlessIsInstance(NSAllowsNullArgumentBindingOption, unicode)
97        self.failUnlessIsInstance(NSAlwaysPresentsApplicationModalAlertsBindingOption, unicode)
98        self.failUnlessIsInstance(NSConditionallySetsEditableBindingOption, unicode)
99        self.failUnlessIsInstance(NSConditionallySetsEnabledBindingOption, unicode)
100        self.failUnlessIsInstance(NSConditionallySetsHiddenBindingOption, unicode)
101        self.failUnlessIsInstance(NSContinuouslyUpdatesValueBindingOption, unicode)
102        self.failUnlessIsInstance(NSCreatesSortDescriptorBindingOption, unicode)
103        self.failUnlessIsInstance(NSDeletesObjectsOnRemoveBindingsOption, unicode)
104        self.failUnlessIsInstance(NSDisplayNameBindingOption, unicode)
105        self.failUnlessIsInstance(NSDisplayPatternBindingOption	, unicode)
106        self.failUnlessIsInstance(NSHandlesContentAsCompoundValueBindingOption, unicode)
107        self.failUnlessIsInstance(NSInsertsNullPlaceholderBindingOption, unicode)
108        self.failUnlessIsInstance(NSInvokesSeparatelyWithArrayObjectsBindingOption, unicode)
109        self.failUnlessIsInstance(NSMultipleValuesPlaceholderBindingOption, unicode)
110        self.failUnlessIsInstance(NSNoSelectionPlaceholderBindingOption, unicode)
111        self.failUnlessIsInstance(NSNotApplicablePlaceholderBindingOption, unicode)
112        self.failUnlessIsInstance(NSNullPlaceholderBindingOption, unicode)
113        self.failUnlessIsInstance(NSRaisesForNotApplicableKeysBindingOption, unicode)
114        self.failUnlessIsInstance(NSPredicateFormatBindingOption, unicode)
115        self.failUnlessIsInstance(NSSelectorNameBindingOption, unicode)
116        self.failUnlessIsInstance(NSSelectsAllWhenSettingContentBindingOption, unicode)
117        self.failUnlessIsInstance(NSValidatesImmediatelyBindingOption, unicode)
118        self.failUnlessIsInstance(NSValueTransformerNameBindingOption, unicode)
119        self.failUnlessIsInstance(NSValueTransformerBindingOption, unicode)
120
121    @min_os_level("10.5")
122    def testConstants10_5(self):
123        self.failUnlessIsInstance(NSContentDictionaryBinding, unicode)
124        self.failUnlessIsInstance(NSExcludedKeysBinding, unicode)
125        self.failUnlessIsInstance(NSIncludedKeysBinding, unicode)
126        self.failUnlessIsInstance(NSInitialKeyBinding, unicode)
127        self.failUnlessIsInstance(NSInitialValueBinding, unicode)
128        self.failUnlessIsInstance(NSLocalizedKeyDictionaryBinding, unicode)
129        self.failUnlessIsInstance(NSTransparentBinding, unicode)
130        self.failUnlessIsInstance(NSContentPlacementTagBindingOption, unicode)
131
132    def testFunctions(self):
133        o = NSObject.alloc().init()
134        self.failUnless(NSIsControllerMarker(o) is False)
135        self.failUnless(NSIsControllerMarker(NSMultipleValuesMarker) is True)
136
137    def testMethods(self):
138        o = TestNSKeyValueBindingHelper.alloc().init()
139        m = o.commitEditingWithDelegate_didCommitSelector_contextInfo_.__metadata__()
140        self.failUnlessEqual(m['arguments'][3]['sel_of_type'], 'v@:@Z^v')
141
142        self.failUnlessResultIsBOOL(TestNSKeyValueBindingHelper.commitEditing)
143
144
145
146if __name__ == "__main__":
147    main()
148