diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2013-03-14 10:36:16 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2013-03-14 10:36:16 +0200 |
commit | 17ad2a3fd8933aa49bff4c8ea49963d15cc0db92 (patch) | |
tree | e848ab6a86aa64b0be987d0cdc61fe1940280cf6 /tests/xml | |
parent | ce3dfdff0d03697bf0c9e0cc9fb45dc6ef7c4ba9 (diff) |
Add support for peeking and getting current event in XML parser
Diffstat (limited to 'tests/xml')
-rw-r--r-- | tests/xml/parser/driver.cxx | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/xml/parser/driver.cxx b/tests/xml/parser/driver.cxx index 05c0f35..31d1e97 100644 --- a/tests/xml/parser/driver.cxx +++ b/tests/xml/parser/driver.cxx @@ -48,6 +48,51 @@ main () { } + // Test peeking and getting the current event. + // + { + istringstream is ("<root x='x'>x<nested/></root>"); + parser p (is, "peek"); + + assert (p.event () == parser::eof); + + assert (p.peek () == parser::start_element); + assert (p.next () == parser::start_element); + assert (p.event () == parser::start_element); + + assert (p.peek () == parser::start_attribute); + assert (p.event () == parser::start_attribute); + assert (p.next () == parser::start_attribute); + + assert (p.peek () == parser::characters && p.value () == "x"); + assert (p.next () == parser::characters && p.value () == "x"); + assert (p.event () == parser::characters && p.value () == "x"); + + assert (p.peek () == parser::end_attribute); + assert (p.event () == parser::end_attribute); + assert (p.next () == parser::end_attribute); + + assert (p.peek () == parser::characters && p.value () == "x"); + assert (p.next () == parser::characters && p.value () == "x"); + assert (p.event () == parser::characters && p.value () == "x"); + + assert (p.peek () == parser::start_element); + assert (p.next () == parser::start_element); + assert (p.event () == parser::start_element); + + assert (p.peek () == parser::end_element); + assert (p.next () == parser::end_element); + assert (p.event () == parser::end_element); + + assert (p.peek () == parser::end_element); + assert (p.next () == parser::end_element); + assert (p.event () == parser::end_element); + + assert (p.peek () == parser::eof); + assert (p.next () == parser::eof); + assert (p.event () == parser::eof); + } + // Test content processing. // |