diff options
author | Daniel Veillard <veillard@src.gnome.org> | 2003-01-03 01:18:43 +0000 |
---|---|---|
committer | Daniel Veillard <veillard@src.gnome.org> | 2003-01-03 01:18:43 +0000 |
commit | 1fdfd115e522b45ead8ee1576c8a863483f767e1 (patch) | |
tree | 131e284135d60e6df3140a21f392e38a5f76f2fc /python/tests | |
parent | dab8ea9b83b22ecd48d97dd13fe5035cf392d3fd (diff) | |
download | android_external_libxml2-1fdfd115e522b45ead8ee1576c8a863483f767e1.tar.gz android_external_libxml2-1fdfd115e522b45ead8ee1576c8a863483f767e1.tar.bz2 android_external_libxml2-1fdfd115e522b45ead8ee1576c8a863483f767e1.zip |
Fixing some more mess with validation and recursive entities while using
* xmlreader.c python/tests/reader2py: Fixing some more mess
with validation and recursive entities while using the
reader interface, it's getting a bit messy...
Daniel
Diffstat (limited to 'python/tests')
-rwxr-xr-x | python/tests/reader2.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/python/tests/reader2.py b/python/tests/reader2.py index 2be89e27..2488820e 100755 --- a/python/tests/reader2.py +++ b/python/tests/reader2.py @@ -145,6 +145,59 @@ if err != "": sys.exit(1) # +# Another test for recursive entity parsing, validation, and replacement of +# entities, making sure the entity ref node doesn't show up in that case +# + +s = """<!DOCTYPE test [ +<!ELEMENT test (x, x)> +<!ELEMENT x (y)> +<!ELEMENT y (#PCDATA)> +<!ENTITY x "<x>&y;</x>"> +<!ENTITY y "<y>yyy</y>"> +]> +<test> + &x; + &x; +</test>""" +expect="""1 test 0 +3 #text 1 +1 x 1 +1 y 2 +3 #text 3 +15 y 2 +15 x 1 +3 #text 1 +1 x 1 +1 y 2 +3 #text 3 +15 y 2 +15 x 1 +3 #text 1 +15 test 0 +""" +res="" +err="" + +input = libxml2.inputBuffer(StringIO.StringIO(s)) +reader = input.newTextReader("test4") +reader.SetParserProp(libxml2.PARSER_LOADDTD,1) +reader.SetParserProp(libxml2.PARSER_DEFAULTATTRS,1) +reader.SetParserProp(libxml2.PARSER_SUBST_ENTITIES,1) +reader.SetParserProp(libxml2.PARSER_VALIDATE,1) +while reader.Read() == 1: + res = res + "%s %s %d\n" % (reader.NodeType(),reader.Name(),reader.Depth()) + +if res != expect: + print "test4 failed: unexpected output" + print res + sys.exit(1) +if err != "": + print "test4 failed: validation error found" + print err + sys.exit(1) + +# # cleanup # del input |