diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2014-05-08 17:02:55 -0700 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2014-05-08 17:02:55 -0700 |
commit | a6e24513d89067c16a3df214a7e2679e1f1675f1 (patch) | |
tree | b622213d673b73005bcd6002e67b121714c9c55b /tests | |
parent | 8234b273aea9a662b8675190d3e73c90ce159f1a (diff) |
Add helpers for parsing elements with simple content
Diffstat (limited to 'tests')
-rw-r--r-- | tests/parser/driver.cxx | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/parser/driver.cxx b/tests/parser/driver.cxx index a8230cd..84ab2fa 100644 --- a/tests/parser/driver.cxx +++ b/tests/parser/driver.cxx @@ -391,6 +391,64 @@ main () // cerr << e.what () << endl; } + // Test element with simple content helpers. + // + { + istringstream is ("<root>" + " <nested>X</nested>" + " <nested/>" + " <nested>123</nested>" + " <nested>Y</nested>" + " <t:nested xmlns:t='test'>Z</t:nested>" + " <nested>234</nested>" + " <t:nested xmlns:t='test'>345</t:nested>" + " <nested>A</nested>" + " <t:nested xmlns:t='test'>B</t:nested>" + " <nested1>A</nested1>" + " <t:nested1 xmlns:t='test'>B</t:nested1>" + " <nested>1</nested>" + " <t:nested xmlns:t='test'>2</t:nested>" + " <nested1>1</nested1>" + " <t:nested1 xmlns:t='test'>2</t:nested1>" + "</root>"); + parser p (is, "element"); + + p.next_expect (parser::start_element, "root", parser::complex); + + p.next_expect (parser::start_element, "nested"); + assert (p.element () == "X"); + + p.next_expect (parser::start_element, "nested"); + assert (p.element () == ""); + + p.next_expect (parser::start_element, "nested"); + assert (p.element<unsigned int> () == 123); + + assert (p.element ("nested") == "Y"); + assert (p.element (qname ("test", "nested")) == "Z"); + + assert (p.element<unsigned int> ("nested") == 234); + assert (p.element<unsigned int> (qname ("test", "nested")) == 345); + + assert (p.element ("nested", "a") == "A"); + assert (p.element (qname ("test", "nested"), "b") == "B"); + + assert (p.element ("nested", "a") == "a" && + p.element ("nested1") == "A"); + assert (p.element (qname ("test", "nested"), "b") == "b" && + p.element (qname ("test", "nested1")) == "B"); + + assert (p.element<unsigned int> ("nested", 10) == 1); + assert (p.element<unsigned int> (qname ("test", "nested"), 20) == 2); + + assert (p.element<unsigned int> ("nested", 10) == 10 && + p.element<unsigned int> ("nested1") == 1); + assert (p.element<unsigned int> (qname ("test", "nested"), 20) == 20 && + p.element<unsigned int> (qname ("test", "nested1")) == 2); + + p.next_expect (parser::end_element); + } + // Test the iterator interface. // { |