1from PyObjCTools.TestSupport import * 2 3from Foundation import * 4from AppKit import * 5import Foundation 6 7try: 8 unicode 9except NameError: 10 unicode = str 11 12 13try: 14 long 15except NameError: 16 long = int 17 18class TestNSAttributedString (TestCase): 19 def testOutput(self): 20 self.assertArgIsOut(NSAttributedString.attributesAtIndex_effectiveRange_, 1) 21 self.assertArgIsOut(NSAttributedString.attribute_atIndex_effectiveRange_, 2) 22 self.assertArgIsOut(NSAttributedString.attributesAtIndex_longestEffectiveRange_inRange_, 1) 23 self.assertArgIsOut(NSAttributedString.attribute_atIndex_longestEffectiveRange_inRange_, 2) 24 25 self.assertResultIsBOOL(NSAttributedString.isEqualToAttributedString_) 26 27 def testConstantsAppKit(self): 28 self.assertIsInstance(NSFontAttributeName, unicode) 29 self.assertIsInstance(NSParagraphStyleAttributeName, unicode) 30 self.assertIsInstance(NSForegroundColorAttributeName, unicode) 31 self.assertIsInstance(NSUnderlineStyleAttributeName, unicode) 32 self.assertIsInstance(NSSuperscriptAttributeName, unicode) 33 self.assertIsInstance(NSBackgroundColorAttributeName, unicode) 34 self.assertIsInstance(NSAttachmentAttributeName, unicode) 35 self.assertIsInstance(NSLigatureAttributeName, unicode) 36 self.assertIsInstance(NSBaselineOffsetAttributeName, unicode) 37 self.assertIsInstance(NSKernAttributeName, unicode) 38 self.assertIsInstance(NSLinkAttributeName, unicode) 39 self.assertIsInstance(NSStrokeWidthAttributeName, unicode) 40 self.assertIsInstance(NSStrokeColorAttributeName, unicode) 41 self.assertIsInstance(NSUnderlineColorAttributeName, unicode) 42 self.assertIsInstance(NSStrikethroughStyleAttributeName, unicode) 43 self.assertIsInstance(NSStrikethroughColorAttributeName, unicode) 44 self.assertIsInstance(NSShadowAttributeName, unicode) 45 self.assertIsInstance(NSObliquenessAttributeName, unicode) 46 self.assertIsInstance(NSExpansionAttributeName, unicode) 47 self.assertIsInstance(NSCursorAttributeName, unicode) 48 self.assertIsInstance(NSToolTipAttributeName, unicode) 49 self.assertIsInstance(NSCharacterShapeAttributeName, unicode) 50 self.assertIsInstance(NSGlyphInfoAttributeName, unicode) 51 self.assertIsInstance(NSMarkedClauseSegmentAttributeName, unicode) 52 self.assertIsInstance(NSSpellingStateAttributeName, unicode) 53 54 self.assertEqual(NSUnderlineStyleNone, 0x00) 55 self.assertEqual(NSUnderlineStyleSingle, 0x01) 56 self.assertEqual(NSUnderlineStyleThick, 0x02) 57 self.assertEqual(NSUnderlineStyleDouble, 0x09) 58 self.assertEqual(NSUnderlinePatternSolid, 0x0000) 59 self.assertEqual(NSUnderlinePatternDot, 0x0100) 60 self.assertEqual(NSUnderlinePatternDash, 0x0200) 61 self.assertEqual(NSUnderlinePatternDashDot, 0x0300) 62 self.assertEqual(NSUnderlinePatternDashDotDot, 0x0400) 63 64 self.assertEqual(NSSpellingStateSpellingFlag, 1) 65 self.assertEqual(NSSpellingStateGrammarFlag, 2) 66 67 self.assertIsInstance(NSPlainTextDocumentType, unicode) 68 self.assertIsInstance(NSRTFTextDocumentType, unicode) 69 self.assertIsInstance(NSRTFDTextDocumentType, unicode) 70 self.assertIsInstance(NSMacSimpleTextDocumentType, unicode) 71 self.assertIsInstance(NSHTMLTextDocumentType, unicode) 72 self.assertIsInstance(NSDocFormatTextDocumentType, unicode) 73 self.assertIsInstance(NSWordMLTextDocumentType, unicode) 74 self.assertIsInstance(NSWebArchiveTextDocumentType, unicode) 75 self.assertIsInstance(NSOfficeOpenXMLTextDocumentType, unicode) 76 self.assertIsInstance(NSOpenDocumentTextDocumentType, unicode) 77 self.assertIsInstance(NSPaperSizeDocumentAttribute, unicode) 78 self.assertIsInstance(NSLeftMarginDocumentAttribute, unicode) 79 self.assertIsInstance(NSRightMarginDocumentAttribute, unicode) 80 self.assertIsInstance(NSTopMarginDocumentAttribute, unicode) 81 self.assertIsInstance(NSBottomMarginDocumentAttribute, unicode) 82 self.assertIsInstance(NSViewSizeDocumentAttribute, unicode) 83 self.assertIsInstance(NSViewZoomDocumentAttribute, unicode) 84 self.assertIsInstance(NSViewModeDocumentAttribute, unicode) 85 self.assertIsInstance(NSDocumentTypeDocumentAttribute, unicode) 86 self.assertIsInstance(NSReadOnlyDocumentAttribute, unicode) 87 self.assertIsInstance(NSConvertedDocumentAttribute, unicode) 88 self.assertIsInstance(NSCocoaVersionDocumentAttribute, unicode) 89 self.assertIsInstance(NSBackgroundColorDocumentAttribute, unicode) 90 self.assertIsInstance(NSHyphenationFactorDocumentAttribute, unicode) 91 self.assertIsInstance(NSDefaultTabIntervalDocumentAttribute, unicode) 92 self.assertIsInstance(NSCharacterEncodingDocumentAttribute, unicode) 93 self.assertIsInstance(NSTitleDocumentAttribute, unicode) 94 self.assertIsInstance(NSCompanyDocumentAttribute, unicode) 95 self.assertIsInstance(NSCopyrightDocumentAttribute, unicode) 96 self.assertIsInstance(NSSubjectDocumentAttribute, unicode) 97 self.assertIsInstance(NSAuthorDocumentAttribute, unicode) 98 self.assertIsInstance(NSKeywordsDocumentAttribute, unicode) 99 self.assertIsInstance(NSCommentDocumentAttribute, unicode) 100 self.assertIsInstance(NSEditorDocumentAttribute, unicode) 101 self.assertIsInstance(NSCreationTimeDocumentAttribute, unicode) 102 self.assertIsInstance(NSModificationTimeDocumentAttribute, unicode) 103 self.assertIsInstance(NSExcludedElementsDocumentAttribute, unicode) 104 self.assertIsInstance(NSTextEncodingNameDocumentAttribute, unicode) 105 self.assertIsInstance(NSPrefixSpacesDocumentAttribute, unicode) 106 self.assertIsInstance(NSDocumentTypeDocumentOption, unicode) 107 self.assertIsInstance(NSDefaultAttributesDocumentOption, unicode) 108 self.assertIsInstance(NSCharacterEncodingDocumentOption, unicode) 109 self.assertIsInstance(NSTextEncodingNameDocumentOption, unicode) 110 self.assertIsInstance(NSBaseURLDocumentOption, unicode) 111 self.assertIsInstance(NSTimeoutDocumentOption, unicode) 112 self.assertIsInstance(NSWebPreferencesDocumentOption, unicode) 113 self.assertIsInstance(NSWebResourceLoadDelegateDocumentOption, unicode) 114 self.assertIsInstance(NSTextSizeMultiplierDocumentOption, unicode) 115 116 self.assertEqual(NSNoUnderlineStyle, 0) 117 self.assertEqual(NSSingleUnderlineStyle, 1) 118 self.assertIsInstance(NSUnderlineStrikethroughMask, (int, long)) 119 120 def testMethodsAppKit(self): 121 self.assertResultIsBOOL(NSAttributedString.containsAttachments) 122 self.assertArgIsBOOL(NSAttributedString.nextWordFromIndex_forward_, 1) 123 self.assertArgIsOut(NSAttributedString.URLAtIndex_effectiveRange_, 1) 124 125 self.assertArgIsOut(NSAttributedString.initWithURL_options_documentAttributes_error_, 2) 126 self.assertArgIsOut(NSAttributedString.initWithURL_options_documentAttributes_error_, 3) 127 128 self.assertArgIsOut(NSAttributedString.initWithData_options_documentAttributes_error_, 2) 129 self.assertArgIsOut(NSAttributedString.initWithData_options_documentAttributes_error_, 3) 130 131 self.assertArgIsOut(NSAttributedString.initWithPath_documentAttributes_, 1) 132 self.assertArgIsOut(NSAttributedString.initWithURL_documentAttributes_, 1) 133 self.assertArgIsOut(NSAttributedString.initWithRTF_documentAttributes_, 1) 134 self.assertArgIsOut(NSAttributedString.initWithRTFD_documentAttributes_, 1) 135 self.assertArgIsOut(NSAttributedString.initWithHTML_documentAttributes_, 1) 136 self.assertArgIsOut(NSAttributedString.initWithHTML_options_documentAttributes_, 2) 137 self.assertArgIsOut(NSAttributedString.initWithHTML_baseURL_documentAttributes_, 2) 138 self.assertArgIsOut(NSAttributedString.initWithRTFDFileWrapper_documentAttributes_, 1) 139 140 self.assertArgIsOut(NSAttributedString.dataFromRange_documentAttributes_error_, 2) 141 self.assertArgIsOut(NSAttributedString.fileWrapperFromRange_documentAttributes_error_, 2) 142 143 self.assertResultIsBOOL(NSMutableAttributedString.readFromURL_options_documentAttributes_error_) 144 self.assertArgIsOut(NSMutableAttributedString.readFromURL_options_documentAttributes_error_, 2) 145 self.assertArgIsOut(NSMutableAttributedString.readFromURL_options_documentAttributes_error_, 3) 146 147 self.assertResultIsBOOL(NSMutableAttributedString.readFromData_options_documentAttributes_error_) 148 self.assertArgIsOut(NSMutableAttributedString.readFromData_options_documentAttributes_error_, 2) 149 self.assertArgIsOut(NSMutableAttributedString.readFromData_options_documentAttributes_error_, 3) 150 151 self.assertResultIsBOOL(NSMutableAttributedString.readFromURL_options_documentAttributes_) 152 self.assertArgIsOut(NSMutableAttributedString.readFromURL_options_documentAttributes_, 2) 153 154 self.assertResultIsBOOL(NSMutableAttributedString.readFromData_options_documentAttributes_) 155 self.assertArgIsOut(NSMutableAttributedString.readFromData_options_documentAttributes_, 2) 156 157 @min_os_level('10.6') 158 def testConstants10_6(self): 159 self.assertEqual(NSAttributedStringEnumerationReverse, 1<<1) 160 self.assertEqual(NSAttributedStringEnumerationLongestEffectiveRangeNotRequired, 1<<20) 161 162 self.assertIsInstance(NSWritingDirectionAttributeName, unicode) 163 self.assertIsInstance(NSFileTypeDocumentAttribute, unicode) 164 self.assertIsInstance(NSCategoryDocumentAttribute, unicode) 165 self.assertIsInstance(NSFileTypeDocumentOption, unicode) 166 167 @min_os_level('10.7') 168 def testConstants10_7(self): 169 self.assertIsInstance(NSVerticalGlyphFormAttributeName, unicode) 170 self.assertIsInstance(NSTextLayoutSectionOrientation, unicode) 171 self.assertIsInstance(NSTextLayoutSectionRange, unicode) 172 self.assertIsInstance(NSTextLayoutSectionsAttribute, unicode) 173 174 @min_os_level('10.6') 175 def testMethods10_6(self): 176 self.assertArgHasType(NSAttributedString.enumerateAttributesInRange_options_usingBlock_, 0, NSRange.__typestr__) 177 self.assertArgIsBlock(NSAttributedString.enumerateAttributesInRange_options_usingBlock_, 2, b'v@'+NSRange.__typestr__+b'o^'+objc._C_NSBOOL) 178 179 self.assertArgHasType(NSAttributedString.enumerateAttribute_inRange_options_usingBlock_, 1, NSRange.__typestr__) 180 self.assertArgIsBlock(NSAttributedString.enumerateAttribute_inRange_options_usingBlock_, 3, b'v@'+NSRange.__typestr__+b'o^'+objc._C_NSBOOL) 181 182if __name__ == '__main__': 183 main() 184