1 2from PyObjCTools.TestSupport import * 3from AppKit import * 4 5class TestNSTypesetterHelper (NSTypesetter): 6 def willSetLineFragmentRect_forGlyphRange_usedRect_baselineOffset_(self, a, b, c, d): return 1 7 def getGlyphsInRange_glyphs_characterIndexes_glyphInscriptions_elasticBits_bidiLevels_(self, a, b, c, d, e, f): return 1 8 def getLineFragmentRect_usedRect_remainingRect_forStartingGlyphAtIndex_proposedRect_lineSpacing_paragraphSpacingBefore_paragraphSpacingAfter_(self, a, b, c, d, e, f, g, h): return 1 9 10class TestNSTypesetter (TestCase): 11 def testConstants(self): 12 self.failUnlessEqual(NSTypesetterZeroAdvancementAction, (1 << 0)) 13 self.failUnlessEqual(NSTypesetterWhitespaceAction, (1 << 1)) 14 self.failUnlessEqual(NSTypesetterHorizontalTabAction, (1 << 2)) 15 self.failUnlessEqual(NSTypesetterLineBreakAction, (1 << 3)) 16 self.failUnlessEqual(NSTypesetterParagraphBreakAction, (1 << 4)) 17 self.failUnlessEqual(NSTypesetterContainerBreakAction, (1 << 5)) 18 19 def testMethods(self): 20 self.failUnlessArgIsOut(NSTypesetter.characterRangeForGlyphRange_actualGlyphRange_, 1) 21 self.failUnlessArgIsOut(NSTypesetter.glyphRangeForCharacterRange_actualCharacterRange_, 1) 22 self.failUnlessArgHasType(NSTypesetter.setBidiLevels_forGlyphRange_, 0, 'n^' + objc._C_CHAR_AS_INT) 23 self.failUnlessArgSizeInArg(NSTypesetter.setBidiLevels_forGlyphRange_, 0, 1) 24 self.failUnlessArgIsIn(NSTypesetter.setLocation_withAdvancements_forStartOfGlyphRange_, 1) 25 self.failUnlessArgSizeInArg(NSTypesetter.setLocation_withAdvancements_forStartOfGlyphRange_, 1, 2) 26 self.failUnlessArgIsOut(NSTypesetter.layoutGlyphsInLayoutManager_startingAtGlyphIndex_maxNumberOfLineFragments_nextGlyphIndex_, 3) 27 self.failUnlessArgIsOut(NSTypesetter.getLineFragmentRect_usedRect_forParagraphSeparatorGlyphRange_atProposedOrigin_, 0) 28 self.failUnlessArgIsOut(NSTypesetter.getLineFragmentRect_usedRect_forParagraphSeparatorGlyphRange_atProposedOrigin_, 1) 29 30 self.failUnlessResultHasType(NSTypesetter.getGlyphsInRange_glyphs_characterIndexes_glyphInscriptions_elasticBits_bidiLevels_, objc._C_NSUInteger) 31 self.failUnlessArgHasType(NSTypesetter.getGlyphsInRange_glyphs_characterIndexes_glyphInscriptions_elasticBits_bidiLevels_, 0, NSRange.__typestr__) 32 33 self.failUnlessArgHasType(TestNSTypesetterHelper.willSetLineFragmentRect_forGlyphRange_usedRect_baselineOffset_, 0, 'N^' + NSRect.__typestr__) 34 self.failUnlessArgHasType(TestNSTypesetterHelper.willSetLineFragmentRect_forGlyphRange_usedRect_baselineOffset_, 1, NSRange.__typestr__) 35 self.failUnlessArgHasType(TestNSTypesetterHelper.willSetLineFragmentRect_forGlyphRange_usedRect_baselineOffset_, 2, 'N^' + NSRect.__typestr__) 36 self.failUnlessArgHasType(TestNSTypesetterHelper.willSetLineFragmentRect_forGlyphRange_usedRect_baselineOffset_, 3, 'N^' + objc._C_CGFloat) 37 38 39 self.failUnlessResultHasType(TestNSTypesetterHelper.getGlyphsInRange_glyphs_characterIndexes_glyphInscriptions_elasticBits_bidiLevels_, objc._C_NSUInteger) 40 self.failUnlessArgHasType(TestNSTypesetterHelper.getGlyphsInRange_glyphs_characterIndexes_glyphInscriptions_elasticBits_bidiLevels_, 0, NSRange.__typestr__) 41 self.failUnlessArgHasType(TestNSTypesetterHelper.getGlyphsInRange_glyphs_characterIndexes_glyphInscriptions_elasticBits_bidiLevels_, 1, 'o^I') 42 self.failUnlessArgSizeInArg(TestNSTypesetterHelper.getGlyphsInRange_glyphs_characterIndexes_glyphInscriptions_elasticBits_bidiLevels_, 1, 0) 43 44 self.failUnlessArgHasType(TestNSTypesetterHelper.getGlyphsInRange_glyphs_characterIndexes_glyphInscriptions_elasticBits_bidiLevels_, 2, 'o^' + objc._C_NSUInteger) 45 self.failUnlessArgSizeInArg(TestNSTypesetterHelper.getGlyphsInRange_glyphs_characterIndexes_glyphInscriptions_elasticBits_bidiLevels_, 2, 0) 46 self.failUnlessArgHasType(TestNSTypesetterHelper.getGlyphsInRange_glyphs_characterIndexes_glyphInscriptions_elasticBits_bidiLevels_, 3, 'o^' + objc._C_NSUInteger) 47 self.failUnlessArgSizeInArg(TestNSTypesetterHelper.getGlyphsInRange_glyphs_characterIndexes_glyphInscriptions_elasticBits_bidiLevels_, 3, 0) 48 self.failUnlessArgHasType(TestNSTypesetterHelper.getGlyphsInRange_glyphs_characterIndexes_glyphInscriptions_elasticBits_bidiLevels_, 4, 'o^' + objc._C_NSBOOL) 49 self.failUnlessArgSizeInArg(TestNSTypesetterHelper.getGlyphsInRange_glyphs_characterIndexes_glyphInscriptions_elasticBits_bidiLevels_, 4, 0) 50 self.failUnlessArgHasType(TestNSTypesetterHelper.getGlyphsInRange_glyphs_characterIndexes_glyphInscriptions_elasticBits_bidiLevels_, 5, 'o^' + objc._C_UCHR) 51 self.failUnlessArgSizeInArg(TestNSTypesetterHelper.getGlyphsInRange_glyphs_characterIndexes_glyphInscriptions_elasticBits_bidiLevels_, 5, 0) 52 53 self.failUnlessArgHasType(NSTypesetter.getLineFragmentRect_usedRect_remainingRect_forStartingGlyphAtIndex_proposedRect_lineSpacing_paragraphSpacingBefore_paragraphSpacingAfter_, 0, 'N^' + NSRect.__typestr__) 54 self.failUnlessArgHasType(NSTypesetter.getLineFragmentRect_usedRect_remainingRect_forStartingGlyphAtIndex_proposedRect_lineSpacing_paragraphSpacingBefore_paragraphSpacingAfter_, 1, 'N^' + NSRect.__typestr__) 55 self.failUnlessArgHasType(NSTypesetter.getLineFragmentRect_usedRect_remainingRect_forStartingGlyphAtIndex_proposedRect_lineSpacing_paragraphSpacingBefore_paragraphSpacingAfter_, 2, 'N^' + NSRect.__typestr__) 56 self.failUnlessArgHasType(NSTypesetter.getLineFragmentRect_usedRect_remainingRect_forStartingGlyphAtIndex_proposedRect_lineSpacing_paragraphSpacingBefore_paragraphSpacingAfter_, 3, objc._C_NSUInteger) 57 self.failUnlessArgHasType(NSTypesetter.getLineFragmentRect_usedRect_remainingRect_forStartingGlyphAtIndex_proposedRect_lineSpacing_paragraphSpacingBefore_paragraphSpacingAfter_, 4, NSRect.__typestr__) 58 self.failUnlessArgHasType(NSTypesetter.getLineFragmentRect_usedRect_remainingRect_forStartingGlyphAtIndex_proposedRect_lineSpacing_paragraphSpacingBefore_paragraphSpacingAfter_, 5, objc._C_CGFloat) 59 self.failUnlessArgHasType(NSTypesetter.getLineFragmentRect_usedRect_remainingRect_forStartingGlyphAtIndex_proposedRect_lineSpacing_paragraphSpacingBefore_paragraphSpacingAfter_, 6, objc._C_CGFloat) 60 self.failUnlessArgHasType(NSTypesetter.getLineFragmentRect_usedRect_remainingRect_forStartingGlyphAtIndex_proposedRect_lineSpacing_paragraphSpacingBefore_paragraphSpacingAfter_, 7, objc._C_CGFloat) 61 62 63 @min_os_level("10.5") 64 def testMethods10_5(self): 65 self.failUnlessArgHasType(NSTypesetter.printingAdjustmentInLayoutManager_forNominallySpacedGlyphRange_packedGlyphs_count_, 2, 'n^v') 66 self.failUnlessArgSizeInArg(NSTypesetter.printingAdjustmentInLayoutManager_forNominallySpacedGlyphRange_packedGlyphs_count_, 2, 3) 67 68 69 70if __name__ == "__main__": 71 main() 72