1
2from PyObjCTools.TestSupport import *
3from AppKit import *
4
5class TestNSAttributedString (TestCase):
6    def testConstants(self):
7        self.assertIsInstance(NSFontAttributeName, unicode)
8        self.assertIsInstance(NSParagraphStyleAttributeName, unicode)
9        self.assertIsInstance(NSForegroundColorAttributeName, unicode)
10        self.assertIsInstance(NSSuperscriptAttributeName, unicode)
11        self.assertIsInstance(NSBackgroundColorAttributeName, unicode)
12        self.assertIsInstance(NSLigatureAttributeName, unicode)
13        self.assertIsInstance(NSBaselineOffsetAttributeName, unicode)
14        self.assertIsInstance(NSKernAttributeName, unicode)
15        self.assertIsInstance(NSLinkAttributeName, unicode)
16
17        self.assertIsInstance(NSStrokeWidthAttributeName, unicode)
18        self.assertIsInstance(NSStrokeColorAttributeName, unicode)
19        self.assertIsInstance(NSUnderlineColorAttributeName, unicode)
20        self.assertIsInstance(NSStrikethroughStyleAttributeName, unicode)
21        self.assertIsInstance(NSStrikethroughColorAttributeName, unicode)
22        self.assertIsInstance(NSShadowAttributeName, unicode)
23        self.assertIsInstance(NSExpansionAttributeName, unicode)
24        self.assertIsInstance(NSToolTipAttributeName, unicode)
25
26        self.assertIsInstance(NSCharacterShapeAttributeName, unicode)
27        self.assertIsInstance(NSGlyphInfoAttributeName, unicode)
28        self.assertIsInstance(NSMarkedClauseSegmentAttributeName, unicode)
29
30        self.assertEqual(NSUnderlineStyleNone, 0x00)
31        self.assertEqual(NSUnderlineStyleSingle, 0x01)
32        self.assertEqual(NSUnderlineStyleThick, 0x02)
33        self.assertEqual(NSUnderlineStyleDouble, 0x09)
34
35        self.assertEqual(NSUnderlinePatternSolid, 0x0000)
36        self.assertEqual(NSUnderlinePatternDot, 0x0100)
37        self.assertEqual(NSUnderlinePatternDash, 0x0200)
38        self.assertEqual(NSUnderlinePatternDashDot, 0x0300)
39        self.assertEqual(NSUnderlinePatternDashDotDot, 0x0400)
40
41        self.assertIsInstance(NSUnderlineByWordMask, (int, long))
42
43        self.assertIsInstance(NSSpellingStateAttributeName, unicode)
44
45        self.assertEqual(NSSpellingStateSpellingFlag, (1 << 0))
46        self.assertEqual(NSSpellingStateGrammarFlag, (1 << 1))
47
48        self.assertIsInstance(NSPlainTextDocumentType, unicode)
49        self.assertIsInstance(NSRTFTextDocumentType, unicode)
50        self.assertIsInstance(NSRTFDTextDocumentType, unicode)
51        self.assertIsInstance(NSMacSimpleTextDocumentType, unicode)
52        self.assertIsInstance(NSHTMLTextDocumentType, unicode)
53        self.assertIsInstance(NSDocFormatTextDocumentType, unicode)
54        self.assertIsInstance(NSWordMLTextDocumentType, unicode)
55        self.assertIsInstance(NSWebArchiveTextDocumentType, unicode)
56        self.assertIsInstance(NSOfficeOpenXMLTextDocumentType, unicode)
57        self.assertIsInstance(NSOpenDocumentTextDocumentType, unicode)
58
59        self.assertIsInstance(NSPaperSizeDocumentAttribute, unicode)
60        self.assertIsInstance(NSLeftMarginDocumentAttribute, unicode)
61        self.assertIsInstance(NSRightMarginDocumentAttribute, unicode)
62        self.assertIsInstance(NSTopMarginDocumentAttribute, unicode)
63        self.assertIsInstance(NSBottomMarginDocumentAttribute, unicode)
64        self.assertIsInstance(NSViewSizeDocumentAttribute, unicode)
65        self.assertIsInstance(NSViewZoomDocumentAttribute, unicode)
66        self.assertIsInstance(NSViewModeDocumentAttribute, unicode)
67        self.assertIsInstance(NSDocumentTypeDocumentAttribute, unicode)
68        self.assertIsInstance(NSReadOnlyDocumentAttribute, unicode)
69        self.assertIsInstance(NSConvertedDocumentAttribute, unicode)
70        self.assertIsInstance(NSCocoaVersionDocumentAttribute, unicode)
71        self.assertIsInstance(NSBackgroundColorDocumentAttribute, unicode)
72        self.assertIsInstance(NSHyphenationFactorDocumentAttribute, unicode)
73        self.assertIsInstance(NSDefaultTabIntervalDocumentAttribute, unicode)
74        self.assertIsInstance(NSCharacterEncodingDocumentAttribute, unicode)
75        self.assertIsInstance(NSTitleDocumentAttribute, unicode)
76        self.assertIsInstance(NSAuthorDocumentAttribute, unicode)
77        self.assertIsInstance(NSKeywordsDocumentAttribute, unicode)
78        self.assertIsInstance(NSCommentDocumentAttribute, unicode)
79        self.assertIsInstance(NSCreationTimeDocumentAttribute, unicode)
80        self.assertIsInstance(NSModificationTimeDocumentAttribute, unicode)
81        self.assertIsInstance(NSExcludedElementsDocumentAttribute, unicode)
82        self.assertIsInstance(NSTextEncodingNameDocumentAttribute, unicode)
83        self.assertIsInstance(NSPrefixSpacesDocumentAttribute, unicode)
84
85        self.assertIsInstance(NSDocumentTypeDocumentOption, unicode)
86        self.assertIsInstance(NSDefaultAttributesDocumentOption, unicode)
87        self.assertIsInstance(NSCharacterEncodingDocumentOption, unicode)
88        self.assertIsInstance(NSTextEncodingNameDocumentOption, unicode)
89        self.assertIsInstance(NSBaseURLDocumentOption, unicode)
90        self.assertIsInstance(NSTimeoutDocumentOption, unicode)
91        self.assertIsInstance(NSWebPreferencesDocumentOption, unicode)
92        self.assertIsInstance(NSWebResourceLoadDelegateDocumentOption, unicode)
93        self.assertIsInstance(NSTextSizeMultiplierDocumentOption, unicode)
94
95        self.assertEqual(NSNoUnderlineStyle, 0)
96        self.assertEqual(NSSingleUnderlineStyle, 1)
97
98        self.assertIsInstance(NSUnderlineStrikethroughMask, (int, long))
99
100    def testMethods(self):
101        self.assertArgIsOut(NSAttributedString.initWithURL_options_documentAttributes_error_, 2)
102        self.assertArgIsOut(NSAttributedString.initWithURL_options_documentAttributes_error_, 3)
103        self.assertArgIsOut(NSAttributedString.initWithData_options_documentAttributes_error_, 2)
104        self.assertArgIsOut(NSAttributedString.initWithData_options_documentAttributes_error_, 3)
105        self.assertArgIsOut(NSAttributedString.initWithPath_documentAttributes_, 1)
106        self.assertArgIsOut(NSAttributedString.initWithURL_documentAttributes_, 1)
107        self.assertArgIsOut(NSAttributedString.initWithRTF_documentAttributes_, 1)
108        self.assertArgIsOut(NSAttributedString.initWithRTFD_documentAttributes_, 1)
109        self.assertArgIsOut(NSAttributedString.initWithHTML_documentAttributes_, 1)
110        self.assertArgIsOut(NSAttributedString.initWithHTML_baseURL_documentAttributes_, 2)
111        self.assertArgIsOut(NSAttributedString.initWithDocFormat_documentAttributes_, 1)
112        self.assertArgIsOut(NSAttributedString.initWithHTML_options_documentAttributes_, 2)
113        self.assertArgIsOut(NSAttributedString.initWithRTFDFileWrapper_documentAttributes_, 1)
114
115
116        self.assertResultIsBOOL(NSMutableAttributedString.readFromURL_options_documentAttributes_error_)
117        self.assertArgIsOut(NSMutableAttributedString.readFromURL_options_documentAttributes_error_, 2)
118        self.assertArgIsOut(NSMutableAttributedString.readFromURL_options_documentAttributes_error_, 3)
119
120        self.assertResultIsBOOL(NSMutableAttributedString.readFromData_options_documentAttributes_error_)
121        self.assertArgIsOut(NSMutableAttributedString.readFromData_options_documentAttributes_error_, 2)
122        self.assertArgIsOut(NSMutableAttributedString.readFromData_options_documentAttributes_error_, 3)
123
124        self.assertResultIsBOOL(NSMutableAttributedString.readFromURL_options_documentAttributes_)
125        self.assertArgIsOut(NSMutableAttributedString.readFromURL_options_documentAttributes_, 2)
126        self.assertResultIsBOOL(NSMutableAttributedString.readFromData_options_documentAttributes_)
127        self.assertArgIsOut(NSMutableAttributedString.readFromData_options_documentAttributes_, 2)
128
129        self.assertArgHasType(NSAttributedString.URLAtIndex_effectiveRange_, 1, b'o^' + NSRange.__typestr__)
130
131    @min_os_level('10.5')
132    def testConstants10_5(self):
133        self.assertIsInstance(NSManagerDocumentAttribute, unicode)
134
135    @min_os_level('10.6')
136    def testConstants10_6(self):
137        self.assertIsInstance(NSWritingDirectionAttributeName, unicode)
138        self.assertIsInstance(NSFileTypeDocumentAttribute, unicode)
139        self.assertIsInstance(NSCategoryDocumentAttribute, unicode)
140        self.assertIsInstance(NSFileTypeDocumentOption, unicode)
141
142
143
144if __name__ == "__main__":
145    main()
146