1
2from PyObjCTools.TestSupport import *
3from AppKit import *
4
5class TestNSTextViewHelper (NSObject):
6    def textView_clickedOnLink_atIndex_(self, tv, a, b): return 1
7    def textView_clickedOnCell_inRect_atIndex_(self, tv, a, b, c): return 1
8    def textView_doubleClickedOnCell_inRect_atIndex_(self, tv, a, b, c): return 1
9    def textView_draggedCell_inRect_event_atIndex_(elf, tv, a, b, c, d): return 1
10    def textView_writablePasteboardTypesForCell_atIndex_(self, tv, a, b): return 1
11    def textView_writeCell_atIndex_toPasteboard_type_(self, tv, a, b, c, d): return 1
12    def textView_willChangeSelectionFromCharacterRange_toCharacterRange_(self, tv, a, b): return 1
13    def textView_shouldChangeTextInRanges_replacementStrings_(self, tv, a, b): return 1
14    def textView_willDisplayToolTip_forCharacterAtIndex_(self, tv, a, b): return 1
15    def textView_completions_forPartialWordRange_indexOfSelectedItem_(self, tv, a, b, c): return 1
16    def textView_shouldChangeTextInRange_replacementString_(self, tv, a, b): return 1
17    def textView_doCommandBySelector_(self, tv, a): return 1
18    def textView_clickedOnLink_(self, tv, a): return 1
19    def textView_clickedOnCell_inRect_(self, tv, a, b): return 1
20    def textView_doubleClickedOnCell_inRect_(self, tv, a, b): return 1
21    def textView_draggedCell_inRect_event_(self, tv, a, b, c): return 1
22    def textView_shouldSetSpellingState_range_(self, tv, a, b): return 1
23    def textView_menu_forEvent_atIndex_(self, tv, a, b, c): return 1
24
25class TestNSTextView (TestCase):
26    def testConstants(self):
27        self.failUnlessEqual(NSSelectByCharacter, 0)
28        self.failUnlessEqual(NSSelectByWord, 1)
29        self.failUnlessEqual(NSSelectByParagraph, 2)
30        self.failUnlessEqual(NSSelectionAffinityUpstream, 0)
31        self.failUnlessEqual(NSSelectionAffinityDownstream, 1)
32        self.failUnlessEqual(NSFindPanelActionShowFindPanel, 1)
33        self.failUnlessEqual(NSFindPanelActionNext, 2)
34        self.failUnlessEqual(NSFindPanelActionPrevious, 3)
35        self.failUnlessEqual(NSFindPanelActionReplaceAll, 4)
36        self.failUnlessEqual(NSFindPanelActionReplace, 5)
37        self.failUnlessEqual(NSFindPanelActionReplaceAndFind, 6)
38        self.failUnlessEqual(NSFindPanelActionSetFindString, 7)
39        self.failUnlessEqual(NSFindPanelActionReplaceAllInSelection, 8)
40        self.failUnlessEqual(NSFindPanelActionSelectAll, 9)
41        self.failUnlessEqual(NSFindPanelActionSelectAllInSelection, 10)
42
43        self.failUnlessIsInstance(NSFindPanelSearchOptionsPboardType, unicode)
44
45        self.failUnlessIsInstance(NSFindPanelCaseInsensitiveSearch, unicode)
46        self.failUnlessIsInstance(NSFindPanelSubstringMatch, unicode)
47
48        self.failUnlessEqual(NSFindPanelSubstringMatchTypeContains, 0)
49        self.failUnlessEqual(NSFindPanelSubstringMatchTypeStartsWith, 1)
50        self.failUnlessEqual(NSFindPanelSubstringMatchTypeFullWord, 2)
51        self.failUnlessEqual(NSFindPanelSubstringMatchTypeEndsWith, 3)
52
53        self.failUnlessIsInstance(NSAllRomanInputSourcesLocaleIdentifier, unicode)
54
55        self.failUnlessIsInstance(NSTextViewWillChangeNotifyingTextViewNotification, unicode)
56        self.failUnlessIsInstance(NSTextViewDidChangeSelectionNotification, unicode)
57        self.failUnlessIsInstance(NSTextViewDidChangeTypingAttributesNotification, unicode)
58
59
60    def testMethods(self):
61        self.failUnlessResultIsBOOL(NSTextView.rulerView_shouldMoveMarker_)
62        self.failUnlessResultIsBOOL(NSTextView.rulerView_shouldAddMarker_)
63        self.failUnlessResultIsBOOL(NSTextView.rulerView_shouldRemoveMarker_)
64        self.failUnlessArgIsBOOL(NSTextView.setNeedsDisplayInRect_avoidAdditionalLayout_, 1)
65        self.failUnlessArgIsBOOL(NSTextView.drawInsertionPointInRect_color_turnedOn_, 2)
66        self.failUnlessArgIsOut(NSTextView.completionsForPartialWordRange_indexOfSelectedItem_, 1)
67        self.failUnlessArgIsBOOL(NSTextView.insertCompletion_forPartialWordRange_movement_isFinal_, 3)
68        self.failUnlessResultIsBOOL(NSTextView.writeSelectionToPasteboard_type_)
69        self.failUnlessResultIsBOOL(NSTextView.writeSelectionToPasteboard_types_)
70        self.failUnlessResultIsBOOL(NSTextView.readSelectionFromPasteboard_type_)
71        self.failUnlessResultIsBOOL(NSTextView.readSelectionFromPasteboard_)
72        self.failUnlessResultIsBOOL(NSTextView.dragSelectionWithEvent_offset_slideBack_)
73        self.failUnlessArgIsBOOL(NSTextView.dragSelectionWithEvent_offset_slideBack_, 2)
74        self.failUnlessArgIsBOOL(NSTextView.setSelectedRanges_affinity_stillSelecting_, 2)
75        self.failUnlessArgIsBOOL(NSTextView.setSelectedRange_affinity_stillSelecting_, 2)
76        self.failUnlessArgIsBOOL(NSTextView.updateInsertionPointStateAndRestartTimer_, 0)
77        self.failUnlessResultIsBOOL(NSTextView.acceptsGlyphInfo)
78        self.failUnlessArgIsBOOL(NSTextView.setAcceptsGlyphInfo_, 0)
79        self.failUnlessArgIsBOOL(NSTextView.setRulerVisible_, 0)
80        self.failUnlessResultIsBOOL(NSTextView.usesRuler)
81        self.failUnlessArgIsBOOL(NSTextView.setUsesRuler_, 0)
82        self.failUnlessResultIsBOOL(NSTextView.isContinuousSpellCheckingEnabled)
83        self.failUnlessArgIsBOOL(NSTextView.setContinuousSpellCheckingEnabled_, 0)
84        self.failUnlessResultIsBOOL(NSTextView.isGrammarCheckingEnabled)
85        self.failUnlessArgIsBOOL(NSTextView.setGrammarCheckingEnabled_, 0)
86        self.failUnlessResultIsBOOL(NSTextView.shouldChangeTextInRanges_replacementStrings_)
87        self.failUnlessResultIsBOOL(NSTextView.shouldChangeTextInRange_replacementString_)
88        self.failUnlessResultIsBOOL(NSTextView.usesFindPanel)
89        self.failUnlessArgIsBOOL(NSTextView.setUsesFindPanel_, 0)
90        self.failUnlessResultIsBOOL(NSTextView.allowsDocumentBackgroundColorChange)
91        self.failUnlessArgIsBOOL(NSTextView.setAllowsDocumentBackgroundColorChange_, 0)
92        self.failUnlessResultIsBOOL(NSTextView.allowsUndo)
93        self.failUnlessArgIsBOOL(NSTextView.setAllowsUndo_, 0)
94        self.failUnlessResultIsBOOL(NSTextView.allowsImageEditing)
95        self.failUnlessArgIsBOOL(NSTextView.setAllowsImageEditing_, 0)
96        self.failUnlessResultIsBOOL(NSTextView.isEditable)
97        self.failUnlessArgIsBOOL(NSTextView.setEditable_, 0)
98        self.failUnlessResultIsBOOL(NSTextView.isSelectable)
99        self.failUnlessArgIsBOOL(NSTextView.setSelectable_, 0)
100        self.failUnlessResultIsBOOL(NSTextView.isRichText)
101        self.failUnlessArgIsBOOL(NSTextView.setRichText_, 0)
102        self.failUnlessResultIsBOOL(NSTextView.importsGraphics)
103        self.failUnlessArgIsBOOL(NSTextView.setImportsGraphics_, 0)
104        self.failUnlessResultIsBOOL(NSTextView.drawsBackground)
105        self.failUnlessArgIsBOOL(NSTextView.setDrawsBackground_, 0)
106        self.failUnlessResultIsBOOL(NSTextView.isFieldEditor)
107        self.failUnlessArgIsBOOL(NSTextView.setFieldEditor_, 0)
108        self.failUnlessResultIsBOOL(NSTextView.usesFontPanel)
109        self.failUnlessArgIsBOOL(NSTextView.setUsesFontPanel_, 0)
110        self.failUnlessResultIsBOOL(NSTextView.isRulerVisible)
111        self.failUnlessResultIsBOOL(NSTextView.smartInsertDeleteEnabled)
112        self.failUnlessArgIsBOOL(NSTextView.setSmartInsertDeleteEnabled_, 0)
113
114        self.failUnlessArgIsOut(NSTextView.dragImageForSelectionWithEvent_origin_, 1)
115        self.failUnlessArgIsOut(NSTextView.smartInsertForString_replacingRange_beforeString_afterString_, 2)
116        self.failUnlessArgIsOut(NSTextView.smartInsertForString_replacingRange_beforeString_afterString_, 3)
117
118    @min_os_level('10.5')
119    def testMethods10_5(self):
120        self.failUnlessResultIsBOOL(NSTextView.displaysLinkToolTips)
121        self.failUnlessArgIsBOOL(NSTextView.setDisplaysLinkToolTips_, 0)
122        self.failUnlessResultIsBOOL(NSTextView.isAutomaticQuoteSubstitutionEnabled)
123        self.failUnlessArgIsBOOL(NSTextView.setAutomaticQuoteSubstitutionEnabled_, 0)
124        self.failUnlessResultIsBOOL(NSTextView.isAutomaticLinkDetectionEnabled)
125        self.failUnlessArgIsBOOL(NSTextView.setAutomaticLinkDetectionEnabled_, 0)
126
127
128    def testProtocols(self):
129        self.failUnlessResultIsBOOL(TestNSTextViewHelper.textView_clickedOnLink_atIndex_)
130        self.failUnlessArgHasType(TestNSTextViewHelper.textView_clickedOnLink_atIndex_, 2, objc._C_NSUInteger)
131        self.failUnlessArgHasType(TestNSTextViewHelper.textView_clickedOnCell_inRect_atIndex_, 2, NSRect.__typestr__)
132        self.failUnlessArgHasType(TestNSTextViewHelper.textView_clickedOnCell_inRect_atIndex_, 3, objc._C_NSUInteger)
133        self.failUnlessArgHasType(TestNSTextViewHelper.textView_doubleClickedOnCell_inRect_atIndex_, 2, NSRect.__typestr__)
134        self.failUnlessArgHasType(TestNSTextViewHelper.textView_doubleClickedOnCell_inRect_atIndex_, 3, objc._C_NSUInteger)
135        self.failUnlessArgHasType(TestNSTextViewHelper.textView_draggedCell_inRect_event_atIndex_, 2, NSRect.__typestr__)
136        self.failUnlessArgHasType(TestNSTextViewHelper.textView_draggedCell_inRect_event_atIndex_, 4, objc._C_NSUInteger)
137        self.failUnlessArgHasType(TestNSTextViewHelper.textView_writablePasteboardTypesForCell_atIndex_, 2, objc._C_NSUInteger)
138        self.failUnlessResultIsBOOL(TestNSTextViewHelper.textView_writeCell_atIndex_toPasteboard_type_)
139        self.failUnlessArgHasType(TestNSTextViewHelper.textView_writeCell_atIndex_toPasteboard_type_, 2, objc._C_NSUInteger)
140        self.failUnlessArgHasType(TestNSTextViewHelper.textView_willChangeSelectionFromCharacterRange_toCharacterRange_, 1, NSRange.__typestr__)
141        self.failUnlessArgHasType(TestNSTextViewHelper.textView_willChangeSelectionFromCharacterRange_toCharacterRange_, 2, NSRange.__typestr__)
142        self.failUnlessResultIsBOOL(TestNSTextViewHelper.textView_shouldChangeTextInRanges_replacementStrings_)
143        self.failUnlessArgHasType(TestNSTextViewHelper.textView_willDisplayToolTip_forCharacterAtIndex_, 2, objc._C_NSUInteger)
144        self.failUnlessArgHasType(TestNSTextViewHelper.textView_completions_forPartialWordRange_indexOfSelectedItem_, 2, NSRange.__typestr__)
145        self.failUnlessArgHasType(TestNSTextViewHelper.textView_completions_forPartialWordRange_indexOfSelectedItem_, 3, 'N^'+objc._C_NSInteger)
146        self.failUnlessResultIsBOOL(TestNSTextViewHelper.textView_shouldChangeTextInRange_replacementString_)
147        self.failUnlessArgHasType(TestNSTextViewHelper.textView_shouldChangeTextInRange_replacementString_, 1, NSRange.__typestr__)
148        self.failUnlessResultIsBOOL(TestNSTextViewHelper.textView_doCommandBySelector_)
149        self.failUnlessArgHasType(TestNSTextViewHelper.textView_doCommandBySelector_, 1, objc._C_SEL)
150        self.failUnlessResultIsBOOL(TestNSTextViewHelper.textView_clickedOnLink_)
151        self.failUnlessArgHasType(TestNSTextViewHelper.textView_clickedOnCell_inRect_, 2, NSRect.__typestr__)
152        self.failUnlessArgHasType(TestNSTextViewHelper.textView_doubleClickedOnCell_inRect_, 2, NSRect.__typestr__)
153        self.failUnlessArgHasType(TestNSTextViewHelper.textView_draggedCell_inRect_event_, 2, NSRect.__typestr__)
154
155    @min_os_level('10.5')
156    def testProtocols10_5(self):
157        self.failUnlessArgHasType(TestNSTextViewHelper.textView_shouldSetSpellingState_range_, 1, objc._C_NSInteger)
158        self.failUnlessArgHasType(TestNSTextViewHelper.textView_shouldSetSpellingState_range_, 2, NSRange.__typestr__)
159        self.failUnlessArgHasType(TestNSTextViewHelper.textView_menu_forEvent_atIndex_, 3, objc._C_NSUInteger)
160
161
162
163
164if __name__ == "__main__":
165    main()
166