1
2from PyObjCTools.TestSupport import *
3from AppKit import *
4
5class TestNSTextInputClientHelper (NSObject):
6    def insertText_replacementRange_(self, txt, rng): pass
7    def doCommandBySelector_(self, sel): pass
8    def setMarkedText_selectedRange_replacementRange_(self, txt, rng1, rng2): pass
9    def selectedRange(self): return 1
10    def markedRange(self): return 1
11    def hasMarkedText(self): return 1
12    def attributedSubstringForProposedRange_actualRange_(self, rng1, rng2): return 1
13    def firstRectForCharacterRange_actualRange_(self, rng1, rng2): return 1
14    def characterIndexForPoint_(self, pt): return 1
15    def fractionOfDistanceThroughGlyphForPoint_(self, pt): return 1
16    def baselineDeltaForCharacterAtIndex_(self, idx): return 1
17    def windowLevel(self): return 1
18    def drawsVerticallyForCharacterAtIndex_(self, i): return 1
19
20
21class TestNSTextInputClient (TestCase):
22
23    @min_os_level("10.5")
24    def testMethods(self):
25        self.assertArgHasType(TestNSTextInputClientHelper.insertText_replacementRange_, 1, NSRange.__typestr__)
26        self.assertArgHasType(TestNSTextInputClientHelper.doCommandBySelector_, 0,  objc._C_SEL)
27        self.assertArgHasType(TestNSTextInputClientHelper.setMarkedText_selectedRange_replacementRange_, 1, NSRange.__typestr__)
28        self.assertArgHasType(TestNSTextInputClientHelper.setMarkedText_selectedRange_replacementRange_, 2, NSRange.__typestr__)
29        self.assertResultHasType(TestNSTextInputClientHelper.selectedRange, NSRange.__typestr__)
30        self.assertResultHasType(TestNSTextInputClientHelper.markedRange, NSRange.__typestr__)
31        self.assertResultIsBOOL(TestNSTextInputClientHelper.hasMarkedText)
32        self.assertArgHasType(TestNSTextInputClientHelper.attributedSubstringForProposedRange_actualRange_, 0, NSRange.__typestr__)
33        self.assertArgHasType(TestNSTextInputClientHelper.attributedSubstringForProposedRange_actualRange_, 1, b'o^' + NSRange.__typestr__)
34        self.assertResultHasType(TestNSTextInputClientHelper.firstRectForCharacterRange_actualRange_, NSRect.__typestr__)
35        self.assertArgHasType(TestNSTextInputClientHelper.firstRectForCharacterRange_actualRange_, 0, NSRange.__typestr__)
36        self.assertArgHasType(TestNSTextInputClientHelper.firstRectForCharacterRange_actualRange_, 1, b'o^' + NSRange.__typestr__)
37        self.assertResultHasType(TestNSTextInputClientHelper.characterIndexForPoint_, objc._C_NSUInteger)
38        self.assertArgHasType(TestNSTextInputClientHelper.characterIndexForPoint_, 0, NSPoint.__typestr__)
39        self.assertResultHasType(TestNSTextInputClientHelper.fractionOfDistanceThroughGlyphForPoint_, objc._C_CGFloat)
40        self.assertArgHasType(TestNSTextInputClientHelper.fractionOfDistanceThroughGlyphForPoint_, 0, NSPoint.__typestr__)
41        self.assertResultHasType(TestNSTextInputClientHelper.baselineDeltaForCharacterAtIndex_, objc._C_CGFloat)
42        self.assertArgHasType(TestNSTextInputClientHelper.baselineDeltaForCharacterAtIndex_, 0, objc._C_NSUInteger)
43        self.assertResultHasType(TestNSTextInputClientHelper.windowLevel, objc._C_NSInteger)
44
45    @min_os_level('10.6')
46    def testMethods10_6(self):
47        self.assertResultIsBOOL(TestNSTextInputClientHelper.drawsVerticallyForCharacterAtIndex_)
48        self.assertArgHasType(TestNSTextInputClientHelper.drawsVerticallyForCharacterAtIndex_, 0, objc._C_NSInteger)
49
50
51if __name__ == "__main__":
52    main()
53