diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2013-03-15 20:13:04 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2013-03-15 20:13:04 +0200 |
commit | 707387b10340c7b95db35c8b791e57a2d02ccbaf (patch) | |
tree | 6b2a84c2c2b5e4d49a22f02d8d2c9d3d37085d24 /tests/xml/parser | |
parent | 927b97baaaf69e318ff7a0ce76d096375ec09da2 (diff) |
Make attribute map valid throughout at "element level"
Diffstat (limited to 'tests/xml/parser')
-rw-r--r-- | tests/xml/parser/driver.cxx | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/xml/parser/driver.cxx b/tests/xml/parser/driver.cxx index 4c85b77..39d5994 100644 --- a/tests/xml/parser/driver.cxx +++ b/tests/xml/parser/driver.cxx @@ -98,6 +98,27 @@ main () p.next_expect (parser::end_element); } + { + istringstream is ("<root a='a'><nested a='A'><inner/></nested></root>"); + parser p (is, "test"); + p.next_expect (parser::start_element, "root"); + assert (p.attribute ("a") == "a"); + assert (p.peek () == parser::start_element && p.name () == "nested"); + assert (p.attribute ("a") == "a"); + p.next_expect (parser::start_element, "nested"); + assert (p.attribute ("a") == "A"); + p.next_expect (parser::start_element, "inner"); + assert (p.attribute ("a", "") == ""); + p.next_expect (parser::end_element); + assert (p.attribute ("a") == "A"); + assert (p.peek () == parser::end_element); + assert (p.attribute ("a") == "A"); // Still valid. + p.next_expect (parser::end_element); + assert (p.attribute ("a") == "a"); + p.next_expect (parser::end_element); + assert (p.attribute ("a", "") == ""); + } + try { istringstream is ("<root a='a' b='b'/>"); |