From 927b97baaaf69e318ff7a0ce76d096375ec09da2 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 15 Mar 2013 08:22:58 +0200 Subject: Add support for returning XML attributes as map --- tests/xml/parser/driver.cxx | 53 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 3 deletions(-) (limited to 'tests/xml/parser/driver.cxx') diff --git a/tests/xml/parser/driver.cxx b/tests/xml/parser/driver.cxx index 787da50..4c85b77 100644 --- a/tests/xml/parser/driver.cxx +++ b/tests/xml/parser/driver.cxx @@ -81,11 +81,56 @@ main () // cerr << e.what () << endl; } + // Test attribute maps. + // + { + istringstream is (""); + parser p (is, "test"); + p.next_expect (parser::start_element, "root"); + + assert (p.attribute ("a") == "a"); + assert (p.attribute ("b", "B") == "b"); + assert (p.attribute ("c", "C") == "C"); + assert (p.attribute ("d") == 123); + assert (p.attribute ("t") == true); + assert (p.attribute ("f", false) == false); + + p.next_expect (parser::end_element); + } + + try + { + istringstream is (""); + parser p (is, "test"); + p.next_expect (parser::start_element, "root"); + assert (p.attribute ("a") == "a"); + p.next_expect (parser::end_element); + assert (false); + } + catch (const xml::exception& e) + { + // cerr << e.what () << endl; + } + + try + { + istringstream is (""); + parser p (is, "test"); + p.next_expect (parser::start_element, "root"); + p.attribute ("a"); + assert (false); + } + catch (const xml::exception& e) + { + // cerr << e.what () << endl; + } + // Test peeking and getting the current event. // { istringstream is ("x"); - parser p (is, "peek"); + parser p (is, "peek", + parser::receive_default | parser::receive_attributes_event); assert (p.event () == parser::eof); @@ -133,7 +178,8 @@ main () // { istringstream is (" \n\t "); - parser p (is, "empty"); + parser p (is, "empty", + parser::receive_default | parser::receive_attributes_event); assert (p.next () == parser::start_element); p.content (parser::empty); @@ -197,7 +243,8 @@ main () " X \n" " \n" "\n"); - parser p (is, "complex"); + parser p (is, "complex", + parser::receive_default | parser::receive_attributes_event); assert (p.next () == parser::start_element); // root p.content (parser::complex); -- cgit v1.1