1from AppKit import *
2from PyObjCTools.TestSupport import *
3
4class TestNSInputServerHelper (NSObject):
5    def doCommandBySelector_client_(self, sel, sender): pass
6    def markedTextSelectionChanged_client_(self, sel, sender): pass
7    def canBeDisabled(self): return 1
8    def wantsToInterpretAllKeystrokes(self): return 1
9    def wantsToHandleMouseEvents(self): return 1
10    def wantsToDelayTextChangeNotifications(self): return 1
11    def activeConversationWillChange_fromOldConversation_(self, s, o): pass
12    def activeConversationChanged_toNewConversation_(self, s, n): pass
13
14    def mouseDownOnCharacterIndex_atCoordinate_withModifier_client_(self, i, p, f, s): return 1
15    def mouseDraggedOnCharacterIndex_atCoordinate_withModifier_client_(self, i, p, f, s): return 1
16    def mouseUpOnCharacterIndex_atCoordinate_withModifier_client_(self, i, p, f, s): pass
17
18class TestNSInputServer (TestCase):
19    def testProtocols(self):
20        self.failUnlessArgIsSEL(TestNSInputServerHelper.doCommandBySelector_client_, 0, 'v@:@')
21        self.failUnlessArgHasType(TestNSInputServerHelper.markedTextSelectionChanged_client_, 0, NSRange.__typestr__)
22        self.failUnlessResultIsBOOL(TestNSInputServerHelper.canBeDisabled)
23        self.failUnlessResultIsBOOL(TestNSInputServerHelper.wantsToInterpretAllKeystrokes)
24        self.failUnlessResultIsBOOL(TestNSInputServerHelper.wantsToHandleMouseEvents)
25        self.failUnlessArgHasType(TestNSInputServerHelper.activeConversationWillChange_fromOldConversation_, 1, objc._C_NSInteger)
26        self.failUnlessArgHasType(TestNSInputServerHelper.activeConversationChanged_toNewConversation_, 1, objc._C_NSInteger)
27
28        self.failUnlessResultIsBOOL(TestNSInputServerHelper.mouseDownOnCharacterIndex_atCoordinate_withModifier_client_)
29        self.failUnlessArgHasType(TestNSInputServerHelper.mouseDownOnCharacterIndex_atCoordinate_withModifier_client_, 0, objc._C_NSUInteger)
30        self.failUnlessArgHasType(TestNSInputServerHelper.mouseDownOnCharacterIndex_atCoordinate_withModifier_client_, 1, NSPoint.__typestr__)
31        self.failUnlessArgHasType(TestNSInputServerHelper.mouseDownOnCharacterIndex_atCoordinate_withModifier_client_, 2, objc._C_NSUInteger)
32
33        self.failUnlessResultIsBOOL(TestNSInputServerHelper.mouseDraggedOnCharacterIndex_atCoordinate_withModifier_client_)
34        self.failUnlessArgHasType(TestNSInputServerHelper.mouseDraggedOnCharacterIndex_atCoordinate_withModifier_client_, 0, objc._C_NSUInteger)
35        self.failUnlessArgHasType(TestNSInputServerHelper.mouseDownOnCharacterIndex_atCoordinate_withModifier_client_, 1, NSPoint.__typestr__)
36        self.failUnlessArgHasType(TestNSInputServerHelper.mouseDownOnCharacterIndex_atCoordinate_withModifier_client_, 2, objc._C_NSUInteger)
37
38        self.failUnlessResultHasType(TestNSInputServerHelper.mouseUpOnCharacterIndex_atCoordinate_withModifier_client_, 'v')
39        self.failUnlessArgHasType(TestNSInputServerHelper.mouseUpOnCharacterIndex_atCoordinate_withModifier_client_, 0, objc._C_NSUInteger)
40        self.failUnlessArgHasType(TestNSInputServerHelper.mouseUpOnCharacterIndex_atCoordinate_withModifier_client_, 1, NSPoint.__typestr__)
41        self.failUnlessArgHasType(TestNSInputServerHelper.mouseUpOnCharacterIndex_atCoordinate_withModifier_client_, 2, objc._C_NSUInteger)
42
43
44
45if __name__ == "__main__":
46    main()
47