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>