#include "catch.hpp" #include #include #include // needed due to fwd declare in value_types.hpp TEST_CASE("xml parser") { SECTION("trims whitespace") { // simple and non-valid mapnik XML reduced from the empty_parameter2.xml // test case. this is to check that the xml parsing routine is trimming // whitespace from text nodes as part of the parsing operation. const std::string xml("" " " " " " " " " " " ""); mapnik::xml_tree tree; tree.set_filename("xml_datasource_parameter_trim.cpp"); REQUIRE_NOTHROW(read_xml_string(xml, tree.root(), "")); REQUIRE(tree.root().has_child("Map")); mapnik::xml_node const &map = tree.root().get_child("Map"); REQUIRE(map.has_child("Layer")); mapnik::xml_node const &layer = map.get_child("Layer"); REQUIRE(layer.has_child("Datasource")); mapnik::xml_node const &datasource = layer.get_child("Datasource"); REQUIRE(datasource.has_child("Parameter")); mapnik::xml_node const ¶meter = datasource.get_child("Parameter"); // parser should call mapnik::util::trim on the text content and // this should result in an empty text string in the parameter. REQUIRE(parameter.get_text() == ""); } }