1
2from PyObjCTools.TestSupport import *
3from AppKit import *
4
5class TestNSTextHelper (NSObject):
6    def textShouldBeginEditing_(self, t): return 1
7    def textShouldEndEditing_(self, t): return 1
8
9class TestNSText (TestCase):
10    def testConstants(self):
11        self.failUnlessEqual(NSEnterCharacter, unichr(0x0003))
12        self.failUnlessEqual(NSBackspaceCharacter, unichr(0x0008))
13        self.failUnlessEqual(NSTabCharacter, unichr(0x0009))
14        self.failUnlessEqual(NSNewlineCharacter, unichr(0x000a))
15        self.failUnlessEqual(NSFormFeedCharacter, unichr(0x000c))
16        self.failUnlessEqual(NSCarriageReturnCharacter, unichr(0x000d))
17        self.failUnlessEqual(NSBackTabCharacter, unichr(0x0019))
18        self.failUnlessEqual(NSDeleteCharacter,  unichr(0x007f))
19        self.failUnlessEqual(NSLineSeparatorCharacter, unichr(0x2028))
20        self.failUnlessEqual(NSParagraphSeparatorCharacter, unichr(0x2029))
21        self.failUnlessEqual(NSLeftTextAlignment, 0)
22        self.failUnlessEqual(NSRightTextAlignment, 1)
23        self.failUnlessEqual(NSCenterTextAlignment, 2)
24        self.failUnlessEqual(NSJustifiedTextAlignment, 3)
25        self.failUnlessEqual(NSNaturalTextAlignment, 4)
26
27        self.failUnlessEqual(NSWritingDirectionNatural, -1)
28        self.failUnlessEqual(NSWritingDirectionLeftToRight, 0)
29        self.failUnlessEqual(NSWritingDirectionRightToLeft, 1)
30
31        self.failUnlessEqual(NSIllegalTextMovement, 0)
32        self.failUnlessEqual(NSReturnTextMovement, 0x10)
33        self.failUnlessEqual(NSTabTextMovement, 0x11)
34        self.failUnlessEqual(NSBacktabTextMovement, 0x12)
35        self.failUnlessEqual(NSLeftTextMovement, 0x13)
36        self.failUnlessEqual(NSRightTextMovement, 0x14)
37        self.failUnlessEqual(NSUpTextMovement, 0x15)
38        self.failUnlessEqual(NSDownTextMovement, 0x16)
39        self.failUnlessEqual(NSCancelTextMovement, 0x17)
40        self.failUnlessEqual(NSOtherTextMovement, 0)
41
42        self.failUnlessIsInstance(NSTextDidBeginEditingNotification, unicode)
43        self.failUnlessIsInstance(NSTextDidEndEditingNotification, unicode)
44        self.failUnlessIsInstance(NSTextDidChangeNotification, unicode)
45
46    def testMehods(self):
47        self.failUnlessResultIsBOOL(NSText.writeRTFDToFile_atomically_)
48        self.failUnlessArgIsBOOL(NSText.writeRTFDToFile_atomically_, 1)
49        self.failUnlessResultIsBOOL(NSText.readRTFDFromFile_)
50        self.failUnlessResultIsBOOL(NSText.isEditable)
51        self.failUnlessArgIsBOOL(NSText.setEditable_, 0)
52        self.failUnlessResultIsBOOL(NSText.isSelectable)
53        self.failUnlessArgIsBOOL(NSText.setSelectable_, 0)
54        self.failUnlessResultIsBOOL(NSText.isRichText)
55        self.failUnlessArgIsBOOL(NSText.setRichText_, 0)
56        self.failUnlessResultIsBOOL(NSText.importsGraphics)
57        self.failUnlessArgIsBOOL(NSText.setImportsGraphics_, 0)
58        self.failUnlessResultIsBOOL(NSText.isFieldEditor)
59        self.failUnlessArgIsBOOL(NSText.setFieldEditor_, 0)
60        self.failUnlessResultIsBOOL(NSText.usesFontPanel)
61        self.failUnlessArgIsBOOL(NSText.setUsesFontPanel_, 0)
62        self.failUnlessResultIsBOOL(NSText.drawsBackground)
63        self.failUnlessArgIsBOOL(NSText.setDrawsBackground_, 0)
64        self.failUnlessResultIsBOOL(NSText.isRulerVisible)
65        self.failUnlessResultIsBOOL(NSText.isHorizontallyResizable)
66        self.failUnlessArgIsBOOL(NSText.setHorizontallyResizable_, 0)
67        self.failUnlessResultIsBOOL(NSText.isVerticallyResizable)
68        self.failUnlessArgIsBOOL(NSText.setVerticallyResizable_, 0)
69
70    def testProtocols(self):
71        self.failUnlessResultIsBOOL(TestNSTextHelper.textShouldBeginEditing_)
72        self.failUnlessResultIsBOOL(TestNSTextHelper.textShouldEndEditing_)
73
74if __name__ == "__main__":
75    main()
76