1
2from PyObjCTools.TestSupport import *
3from AppKit import *
4
5class TestNSGlyphGeneratorHelper (NSObject):
6    def insertGlyphs_length_forStartingGlyphAtIndex_characterIndex_(self, glyphs, length, glyphIndex, charIndex):
7        self.glyphs = (glyphs, length, glyphIndex, charIndex)
8
9    def setIntAttribute_value_forGlyphAtIndex_(self, a, v, g): pass
10
11
12class TestNSGlyphGenerator (TestCase):
13    def testConstants(self):
14        self.assertEqual(NSShowControlGlyphs, (1 << 0))
15        self.assertEqual(NSShowInvisibleGlyphs, (1 << 1))
16        self.assertEqual(NSWantsBidiLevels, (1 << 2))
17
18    def testProtocols(self):
19        self.assertArgHasType(TestNSGlyphGeneratorHelper.setIntAttribute_value_forGlyphAtIndex_, 0, objc._C_NSInteger)
20        self.assertArgHasType(TestNSGlyphGeneratorHelper.setIntAttribute_value_forGlyphAtIndex_, 1, objc._C_NSInteger)
21        self.assertArgHasType(TestNSGlyphGeneratorHelper.setIntAttribute_value_forGlyphAtIndex_, 2, objc._C_NSUInteger)
22
23        o = TestNSGlyphGeneratorHelper.alloc().init()
24        o.insertGlyphs_length_forStartingGlyphAtIndex_characterIndex_(
25                [0, 1, 2, 3, 4], 5, 3, 8)
26        self.assertEqual(o.glyphs, ([0, 1, 2, 3, 4], 5, 3, 8))
27        self.assertArgHasType(
28            TestNSGlyphGeneratorHelper.insertGlyphs_length_forStartingGlyphAtIndex_characterIndex_,
29            0, b'n^I')
30        self.assertArgSizeInArg(
31            TestNSGlyphGeneratorHelper.insertGlyphs_length_forStartingGlyphAtIndex_characterIndex_,
32            0, 1)
33        self.assertArgHasType(
34            TestNSGlyphGeneratorHelper.insertGlyphs_length_forStartingGlyphAtIndex_characterIndex_,
35            1, objc._C_NSUInteger)
36        self.assertArgHasType(
37            TestNSGlyphGeneratorHelper.insertGlyphs_length_forStartingGlyphAtIndex_characterIndex_,
38            2, objc._C_NSUInteger)
39        self.assertArgHasType(
40            TestNSGlyphGeneratorHelper.insertGlyphs_length_forStartingGlyphAtIndex_characterIndex_,
41            3, objc._C_NSUInteger)
42
43    def testMethods(self):
44        self.assertArgIsOut(
45                NSGlyphGenerator.generateGlyphsForGlyphStorage_desiredNumberOfCharacters_glyphIndex_characterIndex_, 2)
46        self.assertArgIsOut(
47                NSGlyphGenerator.generateGlyphsForGlyphStorage_desiredNumberOfCharacters_glyphIndex_characterIndex_, 3)
48
49
50if __name__ == "__main__":
51    main()
52