- void configure(const xmlNode* ptr = 0) {
- m_ptr = ptr;
-
- BOOST_CHECK_EQUAL (ptr->type, XML_ELEMENT_NODE);
- BOOST_CHECK_EQUAL(std::string((const char *) ptr->name), "filter");
-
- const struct _xmlAttr *attr;
-
- for (attr = ptr->properties; attr; attr = attr->next)
- {
- BOOST_CHECK_EQUAL( std::string((const char *)attr->name), "type");
- const xmlNode *val = attr->children;
- BOOST_CHECK_EQUAL(val->type, XML_TEXT_NODE);
- BOOST_CHECK_EQUAL(std::string((const char *)val->content), "constant");
- }
- const xmlNode *p = ptr->children;
- for (; p; p = p->next)
- {
- if (p->type != XML_ELEMENT_NODE)
- continue;
-
- BOOST_CHECK_EQUAL (p->type, XML_ELEMENT_NODE);
- BOOST_CHECK_EQUAL(std::string((const char *) p->name), "value");
-
- const xmlNode *val = p->children;
- BOOST_CHECK(val);
- if (!val)
- continue;
-
- BOOST_CHECK_EQUAL(val->type, XML_TEXT_NODE);
- BOOST_CHECK_EQUAL(std::string((const char *)val->content), "2");
- }
- }
-private:
- bool parse_xml_text(const xmlNode *xml_ptr, bool &val);
- bool parse_xml_text(const xmlNode *xml_ptr, std::string &val);