Annotation of embedaddon/libxml2/python/tests/serialize.py, revision 1.1.1.3
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: """:
1.1.1.3 ! misho 16: print("error serializing XML document 1")
1.1 misho 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: """:
1.1.1.3 ! misho 22: print("error serializing XML document 2")
1.1 misho 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: """:
1.1.1.3 ! misho 30: print("error serializing XML document 3")
1.1 misho 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: """:
1.1.1.3 ! misho 38: print("error serializing XML document 4")
1.1 misho 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>""":
1.1.1.3 ! misho 47: print("error serializing XML root 1")
1.1 misho 48: sys.exit(1)
49: str = root.serialize("iso-8859-1")
50: if str != """<root><foo>hello</foo></root>""":
1.1.1.3 ! misho 51: print("error serializing XML root 2")
1.1 misho 52: sys.exit(1)
53: str = root.serialize(format=1)
54: if str != """<root>
55: <foo>hello</foo>
56: </root>""":
1.1.1.3 ! misho 57: print("error serializing XML root 3")
1.1 misho 58: sys.exit(1)
59: str = root.serialize("iso-8859-1", 1)
60: if str != """<root>
61: <foo>hello</foo>
62: </root>""":
1.1.1.3 ! misho 63: print("error serializing XML root 4")
1.1 misho 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: """:
1.1.1.3 ! misho 75: print("error serializing HTML document 1")
1.1 misho 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: """:
1.1.1.3 ! misho 81: print("error serializing HTML document 2")
1.1 misho 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: """:
1.1.1.3 ! misho 93: print("error serializing HTML document 3")
1.1 misho 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>
1.1.1.2 misho 99: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
1.1 misho 100: <title>Hello</title>
101: </head>
102: <body><p>hello</p></body>
103: </html>
104: """:
1.1.1.3 ! misho 105: print("error serializing HTML document 4")
1.1 misho 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>""":
1.1.1.3 ! misho 115: print("error serializing HTML root 1")
1.1 misho 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>""":
1.1.1.3 ! misho 119: print("error serializing HTML root 2")
1.1 misho 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>""":
1.1.1.3 ! misho 129: print("error serializing HTML root 3")
1.1 misho 130: sys.exit(1)
131: str = root.serialize("iso-8859-1", 1)
132: if str != """<html>
133: <head>
1.1.1.2 misho 134: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
1.1 misho 135: <title>Hello</title>
136: </head>
137: <body><p>hello</p></body>
138: </html>""":
1.1.1.3 ! misho 139: print("error serializing HTML root 4")
1.1 misho 140: sys.exit(1)
141:
142: doc.freeDoc()
143:
144: # Memory debug specific
145: libxml2.cleanupParser()
146: if libxml2.debugMemory(1) == 0:
1.1.1.3 ! misho 147: print("OK")
1.1 misho 148: else:
1.1.1.3 ! misho 149: print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
1.1 misho 150: libxml2.dumpMemory()
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>