1from PyObjCTools.TestSupport import *
2from CoreFoundation import *
3
4try:
5    unicode
6except NameError:
7    unicode = str
8
9
10try:
11    long
12except NameError:
13    long = int
14
15
16class TestXMLParser (TestCase):
17    # Note: This doesn't actually test the API
18
19    def testTypes(self):
20        self.assertIsCFType(CFXMLParserRef)
21
22    def testTypeID(self):
23        self.assertIsInstance(CFXMLParserGetTypeID(), (int, long))
24
25    def testConstants(self):
26        self.assertEqual(kCFXMLParserValidateDocument , (1 << 0) )
27        self.assertEqual(kCFXMLParserSkipMetaData , (1 << 1) )
28        self.assertEqual(kCFXMLParserReplacePhysicalEntities , (1 << 2) )
29        self.assertEqual(kCFXMLParserSkipWhitespace , (1 << 3) )
30        self.assertEqual(kCFXMLParserResolveExternalEntities , (1 << 4) )
31        self.assertEqual(kCFXMLParserAddImpliedAttributes , (1 << 5) )
32        self.assertEqual(kCFXMLParserAllOptions , 0x00FFFFFF )
33        self.assertEqual(kCFXMLParserNoOptions , 0 )
34        self.assertEqual(kCFXMLStatusParseNotBegun , -2 )
35        self.assertEqual(kCFXMLStatusParseInProgress , -1 )
36        self.assertEqual(kCFXMLStatusParseSuccessful , 0 )
37        self.assertEqual(kCFXMLErrorUnexpectedEOF , 1 )
38        self.assertEqual(kCFXMLErrorUnknownEncoding , 2 )
39        self.assertEqual(kCFXMLErrorEncodingConversionFailure , 3 )
40        self.assertEqual(kCFXMLErrorMalformedProcessingInstruction , 4)
41        self.assertEqual(kCFXMLErrorMalformedDTD , 5 )
42        self.assertEqual(kCFXMLErrorMalformedName , 6 )
43        self.assertEqual(kCFXMLErrorMalformedCDSect , 7 )
44        self.assertEqual(kCFXMLErrorMalformedCloseTag , 8 )
45        self.assertEqual(kCFXMLErrorMalformedStartTag , 9 )
46        self.assertEqual(kCFXMLErrorMalformedDocument , 10 )
47        self.assertEqual(kCFXMLErrorElementlessDocument , 11 )
48        self.assertEqual(kCFXMLErrorMalformedComment , 12 )
49        self.assertEqual(kCFXMLErrorMalformedCharacterReference , 13 )
50        self.assertEqual(kCFXMLErrorMalformedParsedCharacterData , 14 )
51        self.assertEqual(kCFXMLErrorNoData , 15 )
52        self.assertIsInstance(kCFXMLTreeErrorDescription, unicode)
53        self.assertIsInstance(kCFXMLTreeErrorLineNumber, unicode)
54        self.assertIsInstance(kCFXMLTreeErrorLocation, unicode)
55        self.assertIsInstance(kCFXMLTreeErrorStatusCode, unicode)
56
57    @expectedFailure
58    def testMissingWrappers(self):
59        self.fail("Missing manual wrappers for CFXMLParser (low prio)")
60
61if __name__ == "__main__":
62    main()
63