Imported Upstream version 2.8.0
[platform/upstream/libxml2.git] / python / tests / pushSAXhtml.py
1 #!/usr/bin/python -u
2 import sys
3 import libxml2
4
5 # Memory debug specific
6 libxml2.debugMemory(1)
7
8 log = ""
9
10 class callback:
11     def startDocument(self):
12         global log
13         log = log + "startDocument:"
14
15     def endDocument(self):
16         global log
17         log = log + "endDocument:"
18
19     def startElement(self, tag, attrs):
20         global log
21         log = log + "startElement %s %s:" % (tag, attrs)
22
23     def endElement(self, tag):
24         global log
25         log = log + "endElement %s:" % (tag)
26
27     def characters(self, data):
28         global log
29         log = log + "characters: %s:" % (data)
30
31     def warning(self, msg):
32         global log
33         log = log + "warning: %s:" % (msg)
34
35     def error(self, msg):
36         global log
37         log = log + "error: %s:" % (msg)
38
39     def fatalError(self, msg):
40         global log
41         log = log + "fatalError: %s:" % (msg)
42
43 handler = callback()
44
45 ctxt = libxml2.htmlCreatePushParser(handler, "<foo", 4, "test.xml")
46 chunk = " url='tst'>b"
47 ctxt.htmlParseChunk(chunk, len(chunk), 0)
48 chunk = "ar</foo>"
49 ctxt.htmlParseChunk(chunk, len(chunk), 1)
50 ctxt=None
51
52 reference = """startDocument:startElement html None:startElement body None:startElement foo {'url': 'tst'}:error: Tag foo invalid
53 :characters: bar:endElement foo:endElement body:endElement html:endDocument:"""
54 if log != reference:
55     print "Error got: %s" % log
56     print "Exprected: %s" % reference
57     sys.exit(1)
58
59 # Memory debug specific
60 libxml2.cleanupParser()
61 if libxml2.debugMemory(1) == 0:
62     print "OK"
63 else:
64     print "Memory leak %d bytes" % (libxml2.debugMemory(1))
65     libxml2.dumpMemory()