aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2013-03-15 20:13:04 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2013-03-15 20:13:04 +0200
commit707387b10340c7b95db35c8b791e57a2d02ccbaf (patch)
tree6b2a84c2c2b5e4d49a22f02d8d2c9d3d37085d24 /tests
parent927b97baaaf69e318ff7a0ce76d096375ec09da2 (diff)
Make attribute map valid throughout at "element level"
Diffstat (limited to 'tests')
-rw-r--r--tests/xml/parser/driver.cxx21
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'/>");