Annotation of embedaddon/libxml2/python/tests/serialize.py, revision 1.1

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()

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>