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