1from PyObjCTools.TestSupport import * 2from CoreFoundation import * 3 4 5try: 6 long 7except NameError: 8 long = int 9 10 11class TestXMLNode (TestCase): 12 # NOTE: This doesn't actually test the API 13 14 def testTypes(self): 15 self.assertIsCFType(CFXMLNodeRef) 16 17 def testConstants(self): 18 self.assertEqual(kCFXMLNodeCurrentVersion , 1 ) 19 20 self.assertEqual(kCFXMLNodeTypeDocument , 1 ) 21 self.assertEqual(kCFXMLNodeTypeElement , 2 ) 22 self.assertEqual(kCFXMLNodeTypeAttribute , 3 ) 23 self.assertEqual(kCFXMLNodeTypeProcessingInstruction , 4 ) 24 self.assertEqual(kCFXMLNodeTypeComment , 5 ) 25 self.assertEqual(kCFXMLNodeTypeText , 6 ) 26 self.assertEqual(kCFXMLNodeTypeCDATASection , 7 ) 27 self.assertEqual(kCFXMLNodeTypeDocumentFragment , 8 ) 28 self.assertEqual(kCFXMLNodeTypeEntity , 9 ) 29 self.assertEqual(kCFXMLNodeTypeEntityReference , 10 ) 30 self.assertEqual(kCFXMLNodeTypeDocumentType , 11 ) 31 self.assertEqual(kCFXMLNodeTypeWhitespace , 12 ) 32 self.assertEqual(kCFXMLNodeTypeNotation , 13 ) 33 self.assertEqual(kCFXMLNodeTypeElementTypeDeclaration , 14 ) 34 self.assertEqual(kCFXMLNodeTypeAttributeListDeclaration , 15 ) 35 36 self.assertEqual(kCFXMLEntityTypeParameter , 0 ) 37 self.assertEqual(kCFXMLEntityTypeParsedInternal , 1 ) 38 self.assertEqual(kCFXMLEntityTypeParsedExternal , 2 ) 39 self.assertEqual(kCFXMLEntityTypeUnparsed , 3 ) 40 self.assertEqual(kCFXMLEntityTypeCharacter , 4 ) 41 42 def testStructs(self): 43 return 44 45 o = CFXMLElementInfo() 46 self.assertHasAttr(o, 'attributes') 47 self.assertHasAttr(o, 'attributeOrder') 48 self.assertHasAttr(o, 'isEmpty') 49 self.assertHasAttr(o, '_reserved') 50 o = CFXMLProcessingInstructionInfo() 51 self.assertHasAttr(o, 'dataString') 52 o = CFXMLDocumentInfo() 53 self.assertHasAttr(o, 'sourceURL') 54 self.assertHasAttr(o, 'encoding') 55 o = CFXMLExternalID() 56 self.assertHasAttr(o, 'systemID') 57 self.assertHasAttr(o, 'publicID') 58 o = CFXMLDocumentTypeInfo() 59 self.assertHasAttr(o, 'externalID') 60 o = CFXMLNotationInfo() 61 self.assertHasAttr(o, 'externalID') 62 o = CFXMLElementTypeDeclarationInfo() 63 self.assertHasAttr(o, 'contentDescription') 64 o = CFXMLAttributeDeclarationInfo() 65 self.assertHasAttr(o, 'attributeName') 66 self.assertHasAttr(o, 'typeString') 67 self.assertHasAttr(o, 'defaultString') 68 o = CFXMLAttributeListDeclarationInfo() 69 self.assertHasAttr(o, 'numberOfAttributes') 70 self.assertHasAttr(o, 'attributes') 71 o = CFXMLEntityInfo() 72 self.assertHasAttr(o, 'entityType') 73 self.assertHasAttr(o, 'replacementText') 74 self.assertHasAttr(o, 'entityID') 75 self.assertHasAttr(o, 'notationName') 76 o = CFXMLEntityReferenceInfo() 77 self.assertHasAttr(o, 'entityType') 78 79 def testFunctions(self): 80 self.assertIsInstance(CFXMLNodeGetTypeID(), (int, long)) 81 82 # CFXMLNodeCreate: requires manual binding 83 # CFXMLNodeGetInfoPtr: likewise 84 # Add tests that create all valid types of nodes with there additional info and 85 # try to extract the information. 86 87 self.assertResultIsCFRetained(CFXMLNodeCreateCopy) 88 self.assertResultIsCFRetained(CFXMLTreeCreateWithNode) 89 90 @expectedFailure 91 def testMissingWrappers(self): 92 self.fail("CFXML requires manual wrappers (low prio)") 93 94if __name__ == "__main__": 95 main() 96