From 17ad2a3fd8933aa49bff4c8ea49963d15cc0db92 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 14 Mar 2013 10:36:16 +0200 Subject: Add support for peeking and getting current event in XML parser --- tests/xml/parser/driver.cxx | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'tests/xml/parser/driver.cxx') 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 ("x"); + 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. // -- cgit v1.1