From 707387b10340c7b95db35c8b791e57a2d02ccbaf Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 15 Mar 2013 20:13:04 +0200 Subject: Make attribute map valid throughout at "element level" --- tests/xml/parser/driver.cxx | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'tests/xml/parser') 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 (""); + 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 (""); -- cgit v1.1