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