aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
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'/>");