Annotation of embedaddon/libxml2/python/tests/serialize.py, revision 1.1.1.2
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>
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: """:
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>
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>""":
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()
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>