+void FilterConstant::configure(const xmlNode* ptr, bool test_only,
+ const char *path)
+{
+ 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");
+
+ m_constant = atoi((const char *) val->content);
+ }
+}
+
+// This filter dose not have a configure function
+
+class FilterDouble: public mp::filter::Base {