File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / python / tests / serialize.py
Revision 1.1.1.3 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Sun Jun 15 19:53:34 2014 UTC (10 years, 3 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, HEAD
libxml2 2.9.1

    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>