Return to serialize.py CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / python / tests |
1.1 ! misho 1: #!/usr/bin/python -u ! 2: import sys ! 3: import libxml2 ! 4: ! 5: # Memory debug specific ! 6: libxml2.debugMemory(1) ! 7: ! 8: # ! 9: # Testing XML document serialization ! 10: # ! 11: doc = libxml2.parseDoc("""<root><foo>hello</foo></root>""") ! 12: str = doc.serialize() ! 13: if str != """<?xml version="1.0"?> ! 14: <root><foo>hello</foo></root> ! 15: """: ! 16: print "error serializing XML document 1" ! 17: sys.exit(1) ! 18: str = doc.serialize("iso-8859-1") ! 19: if str != """<?xml version="1.0" encoding="iso-8859-1"?> ! 20: <root><foo>hello</foo></root> ! 21: """: ! 22: print "error serializing XML document 2" ! 23: sys.exit(1) ! 24: str = doc.serialize(format=1) ! 25: if str != """<?xml version="1.0"?> ! 26: <root> ! 27: <foo>hello</foo> ! 28: </root> ! 29: """: ! 30: print "error serializing XML document 3" ! 31: sys.exit(1) ! 32: str = doc.serialize("iso-8859-1", 1) ! 33: if str != """<?xml version="1.0" encoding="iso-8859-1"?> ! 34: <root> ! 35: <foo>hello</foo> ! 36: </root> ! 37: """: ! 38: print "error serializing XML document 4" ! 39: sys.exit(1) ! 40: ! 41: # ! 42: # Test serializing a subnode ! 43: # ! 44: root = doc.getRootElement() ! 45: str = root.serialize() ! 46: if str != """<root><foo>hello</foo></root>""": ! 47: print "error serializing XML root 1" ! 48: sys.exit(1) ! 49: str = root.serialize("iso-8859-1") ! 50: if str != """<root><foo>hello</foo></root>""": ! 51: print "error serializing XML root 2" ! 52: sys.exit(1) ! 53: str = root.serialize(format=1) ! 54: if str != """<root> ! 55: <foo>hello</foo> ! 56: </root>""": ! 57: print "error serializing XML root 3" ! 58: sys.exit(1) ! 59: str = root.serialize("iso-8859-1", 1) ! 60: if str != """<root> ! 61: <foo>hello</foo> ! 62: </root>""": ! 63: print "error serializing XML root 4" ! 64: sys.exit(1) ! 65: doc.freeDoc() ! 66: ! 67: # ! 68: # Testing HTML document serialization ! 69: # ! 70: doc = libxml2.htmlParseDoc("""<html><head><title>Hello</title><body><p>hello</body></html>""", None) ! 71: str = doc.serialize() ! 72: if str != """<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> ! 73: <html><head><title>Hello</title></head><body><p>hello</p></body></html> ! 74: """: ! 75: print "error serializing HTML document 1" ! 76: sys.exit(1) ! 77: str = doc.serialize("ISO-8859-1") ! 78: if str != """<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> ! 79: <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Hello</title></head><body><p>hello</p></body></html> ! 80: """: ! 81: print "error serializing HTML document 2" ! 82: sys.exit(1) ! 83: str = doc.serialize(format=1) ! 84: if str != """<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> ! 85: <html> ! 86: <head> ! 87: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> ! 88: <title>Hello</title> ! 89: </head> ! 90: <body><p>hello</p></body> ! 91: </html> ! 92: """: ! 93: print "error serializing HTML document 3" ! 94: sys.exit(1) ! 95: str = doc.serialize("iso-8859-1", 1) ! 96: if str != """<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> ! 97: <html> ! 98: <head> ! 99: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ! 100: <title>Hello</title> ! 101: </head> ! 102: <body><p>hello</p></body> ! 103: </html> ! 104: """: ! 105: print "error serializing HTML document 4" ! 106: sys.exit(1) ! 107: ! 108: # ! 109: # Test serializing a subnode ! 110: # ! 111: doc.htmlSetMetaEncoding(None) ! 112: root = doc.getRootElement() ! 113: str = root.serialize() ! 114: if str != """<html><head><title>Hello</title></head><body><p>hello</p></body></html>""": ! 115: print "error serializing HTML root 1" ! 116: sys.exit(1) ! 117: str = root.serialize("ISO-8859-1") ! 118: if str != """<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Hello</title></head><body><p>hello</p></body></html>""": ! 119: print "error serializing HTML root 2" ! 120: sys.exit(1) ! 121: str = root.serialize(format=1) ! 122: if str != """<html> ! 123: <head> ! 124: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> ! 125: <title>Hello</title> ! 126: </head> ! 127: <body><p>hello</p></body> ! 128: </html>""": ! 129: print "error serializing HTML root 3" ! 130: sys.exit(1) ! 131: str = root.serialize("iso-8859-1", 1) ! 132: if str != """<html> ! 133: <head> ! 134: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ! 135: <title>Hello</title> ! 136: </head> ! 137: <body><p>hello</p></body> ! 138: </html>""": ! 139: print "error serializing HTML root 4" ! 140: sys.exit(1) ! 141: ! 142: doc.freeDoc() ! 143: ! 144: # Memory debug specific ! 145: libxml2.cleanupParser() ! 146: if libxml2.debugMemory(1) == 0: ! 147: print "OK" ! 148: else: ! 149: print "Memory leak %d bytes" % (libxml2.debugMemory(1)) ! 150: libxml2.dumpMemory()