parameterised the DOM tests

This commit is contained in:
jez_higgins 2005-10-31 12:07:30 +00:00
parent ac043e277a
commit 0185a7f9dd
25 changed files with 373 additions and 341 deletions

View file

@ -27,7 +27,7 @@ void TestRunner::printBanner ()
cout << "Usage: driver [ -wait ] testName, where name is the name of a test case class" << endl; cout << "Usage: driver [ -wait ] testName, where name is the name of a test case class" << endl;
} // printBanner } // printBanner
void TestRunner::run(int ac, char **av) void TestRunner::run(int ac, const char **av)
{ {
string testCase; string testCase;
int numberOfTests = 0; int numberOfTests = 0;

View file

@ -14,7 +14,7 @@ public:
TestRunner() : m_wait(false) {} TestRunner() : m_wait(false) {}
~TestRunner(); ~TestRunner();
void run(int ac, char **av); void run(int ac, const char **av);
void addTest(std::string name, Test *test) void addTest(std::string name, Test *test)
{ m_mappings.push_back(std::make_pair(name, test)); } { m_mappings.push_back(std::make_pair(name, test)); }

View file

@ -142,6 +142,9 @@
<Filter <Filter
Name="Source Files" Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"> Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
<File
RelativePath=".\dom_test_suite.hpp">
</File>
<File <File
RelativePath=".\main.cpp"> RelativePath=".\main.cpp">
</File> </File>
@ -149,46 +152,6 @@
<Filter <Filter
Name="Header Files" Name="Header Files"
Filter="h;hpp;hxx;hm;inl"> Filter="h;hpp;hxx;hm;inl">
<File
RelativePath=".\test_Attribute.h">
</File>
<File
RelativePath=".\test_CDATA.hpp">
</File>
<File
RelativePath=".\test_CharacterData.hpp">
</File>
<File
RelativePath=".\test_Document.h">
</File>
<File
RelativePath=".\test_DocumentFragment.h">
</File>
<File
RelativePath=".\test_DocumentType.h">
</File>
<File
RelativePath=".\test_DOMImplementation.h">
</File>
<File
RelativePath=".\test_Element.h">
</File>
<File
RelativePath=".\test_ProcessingInstruction.h">
</File>
<File
RelativePath=".\test_SAX.h">
</File>
<File
RelativePath=".\test_Siblings.h">
</File>
<File
RelativePath=".\test_Text.hpp">
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
</Filter> </Filter>
<Filter <Filter
Name="Libs"> Name="Libs">

View file

@ -1,5 +1,6 @@
-include ../../Makefile.header -include ../../Makefile.header
-include ../../Makefile.common
###################################### ######################################
# ADDITIONAL BUILD FLAGS # ADDITIONAL BUILD FLAGS
@ -12,16 +13,27 @@ DYNAMIC_LIBS += -lArabica
###################################### ######################################
# SOURCE FILES # SOURCE FILES
DOMTEST_SRCS = main.cpp DOMTEST_SRCS = main.cpp
DOMTEST_HDRS = $(patsubst %.cpp,%.h,$(DOMTEST_SRCS))
DOMTEST_OBJS = $(patsubst %.cpp,%.o,$(DOMTEST_SRCS)) DOMTEST_OBJS = $(patsubst %.cpp,%.o,$(DOMTEST_SRCS))
DOMTEST_TESTS = dom_test_suite.hpp \
test_Attribute.h \
test_CDATA.hpp \
test_CharacterData.hpp \
test_DOMImplementation.h \
test_Document.h \
test_DocumentFragment.h \
test_DocumentType.h \
test_Element.h \
test_ProcessingInstruction.h \
test_Siblings.h \
test_Text.hpp
###################################### ######################################
# High level rules # High level rules
all : sax2dom_test all : dom_test
dom_test : $(DOMTEST_OBJS) $(CPPUNIT_OBJS) dom_test : $(DOMTEST_OBJS) $(CPPUNIT_OBJS)
$(LD) $(LDFLAGS) -o $@ $(DOMTEST_OBJS) $(CPPUNIT_OBJS) $(LIBS_DIRS) $(STATIC_LIBS) $(DYNAMIC_LIBS) $(LD) $(LDFLAGS) -o $@ $(DOMTEST_OBJS) $(CPPUNIT_OBJS) $(LIBS_DIRS) $(STATIC_LIBS) $(DYNAMIC_LIBS)
$(COPY) sax2dom_test$(EXESUFFIX) ../../bin $(COPY) dom_test$(EXESUFFIX) ../../bin
###################### ######################

View file

@ -0,0 +1,41 @@
#ifndef ARABICA_DOM_TEST_SUITE_HPP
#define ARABICA_DOM_TEST_SUITE_HPP
#include "../CppUnit/TestRunner.hpp"
#include "../CppUnit/framework/Test.h"
#include "../CppUnit/framework/TestSuite.h"
#include "test_DOMImplementation.h"
#include "test_DocumentType.h"
#include "test_Document.h"
#include "test_ProcessingInstruction.h"
#include "test_Siblings.h"
#include "test_Element.h"
#include "test_DocumentFragment.h"
#include "test_Attribute.h"
#include "test_Text.hpp"
#include "test_CDATA.hpp"
#include "test_CharacterData.hpp"
template<class string_type, class string_adaptor>
void DOM_test_suite(int argc, const char** argv)
{
TestRunner runner;
runner.addTest("DOMImplementationTest", DOMImplementationTest_suite<string_type, string_adaptor >());
runner.addTest("DocumentTypeTest", DocumentTypeTest_suite<string_type, string_adaptor >());
runner.addTest("DocumentTest", DocumentTest_suite<string_type, string_adaptor >());
runner.addTest("SiblingsTest", SiblingsTest_suite<string_type, string_adaptor >());
runner.addTest("ElementTest", ElementTest_suite<string_type, string_adaptor >());
runner.addTest("AttributeTest", AttrTest_suite<string_type, string_adaptor >());
runner.addTest("ProcessingInstructionTest", ProcessingInstructionTest_suite<string_type, string_adaptor >());
runner.addTest("TextTest", TextTest_suite<string_type, string_adaptor >());
runner.addTest("CDATATest", CDATATest_suite<string_type, string_adaptor >());
runner.addTest("CharacterDataText", CharacterDataTest_suite<string_type, string_adaptor >());
runner.addTest("DocumentFragmentTest", DocumentFragmentTest_suite<string_type, string_adaptor >());
runner.run(argc, argv);
} // main
#endif

View file

@ -1,46 +1,13 @@
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning(disable: 4786 4250 4503) #pragma warning(disable: 4786 4250 4503)
#endif #endif
#include <iostream>
#include <string>
#include <iostream> #include "dom_test_suite.hpp"
#include <vector>
#include <map>
#include "../CppUnit/TestRunner.hpp"
#include "../CppUnit/framework/Test.h"
#include "../CppUnit/framework/TestSuite.h"
#include "test_DOMImplementation.h"
#include "test_DocumentType.h"
#include "test_Document.h"
#include "test_ProcessingInstruction.h"
#include "test_Siblings.h"
#include "test_Element.h"
#include "test_DocumentFragment.h"
#include "test_Attribute.h"
#include "test_Text.hpp"
#include "test_CDATA.hpp"
#include "test_CharacterData.hpp"
//////////////////////////////////////////////// ////////////////////////////////////////////////
int main(int argc, char* argv[]) int main(int argc, const char* argv[])
{ {
TestRunner runner; DOM_test_suite<std::string, Arabica::default_string_adaptor<std::string> >(argc, argv);
runner.addTest("DOMImplementationTest", DOMImplementationTest_suite<std::string, Arabica::default_string_adaptor<std::string> >());
runner.addTest("DocumentTypeTest", DocumentTypeTest_suite<std::string, Arabica::default_string_adaptor<std::string> >());
runner.addTest("DocumentTest", DocumentTest_suite<std::string, Arabica::default_string_adaptor<std::string> >());
runner.addTest("SiblingsTest", SiblingsTest_suite<std::string, Arabica::default_string_adaptor<std::string> >());
runner.addTest("ElementTest", ElementTest_suite<std::string, Arabica::default_string_adaptor<std::string> >());
runner.addTest("AttributeTest", AttrTest_suite<std::string, Arabica::default_string_adaptor<std::string> >());
runner.addTest("ProcessingInstructionTest", ProcessingInstructionTest_suite<std::string, Arabica::default_string_adaptor<std::string> >());
runner.addTest("TextTest", TextTest_suite<std::string, Arabica::default_string_adaptor<std::string> >());
runner.addTest("CDATATest", CDATATest_suite<std::string, Arabica::default_string_adaptor<std::string> >());
runner.addTest("CharacterDataText", CharacterDataTest_suite<std::string, Arabica::default_string_adaptor<std::string> >());
runner.addTest("DocumentFragmentTest", DocumentFragmentTest_suite<std::string, Arabica::default_string_adaptor<std::string> >());
runner.run(argc, argv);
return 0; return 0;
} // main } // main

View file

@ -21,7 +21,7 @@ class CDATATest : public TestCase
void setUp() void setUp()
{ {
factory = SimpleDOM::DOMImplementation<string_type>::getDOMImplementation(); factory = SimpleDOM::DOMImplementation<string_type, string_adaptor>::getDOMImplementation();
} // setUp } // setUp
void testNull() void testNull()
@ -150,3 +150,4 @@ TestSuite* CDATATest_suite()
#endif #endif

View file

@ -21,7 +21,7 @@ class CharacterDataTest : public TestCase
void setUp() void setUp()
{ {
factory = SimpleDOM::DOMImplementation<string_type>::getDOMImplementation(); factory = SimpleDOM::DOMImplementation<string_type, string_adaptor>::getDOMImplementation();
} // setUp } // setUp
void testNull() void testNull()
@ -158,3 +158,4 @@ TestSuite* CharacterDataTest_suite()
} // CharacterDataTest_suite } // CharacterDataTest_suite
#endif #endif

View file

@ -11,6 +11,8 @@ template<class string_type, class string_adaptor>
class DocumentTest : public TestCase class DocumentTest : public TestCase
{ {
DOM::DOMImplementation<string_type> factory; DOM::DOMImplementation<string_type> factory;
typedef string_adaptor SA;
public: public:
DocumentTest(std::string name) : DocumentTest(std::string name) :
@ -20,7 +22,7 @@ class DocumentTest : public TestCase
void setUp() void setUp()
{ {
factory = SimpleDOM::DOMImplementation<string_type>::getDOMImplementation(); factory = SimpleDOM::DOMImplementation<string_type, string_adaptor>::getDOMImplementation();
} // setUp } // setUp
void testNull() void testNull()
@ -34,10 +36,10 @@ class DocumentTest : public TestCase
void testAssignment() void testAssignment()
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
assert(d != 0); assert(d != 0);
assert(d.getNodeName() == "#document"); assert(d.getNodeName() == SA::construct_from_utf8("#document"));
assert(d.getNodeValue() == ""); assert(d.getNodeValue() == SA::construct_from_utf8(""));
DOM::Node<string_type> n; DOM::Node<string_type> n;
assert(n == 0); assert(n == 0);
@ -55,7 +57,7 @@ class DocumentTest : public TestCase
assert(d == d2); assert(d == d2);
assert(d2 == d); assert(d2 == d);
DOM::Document<string_type> d3 = factory.createDocument("","", 0); DOM::Document<string_type> d3 = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
assert(d != d3); assert(d != d3);
assert(d3!= d); assert(d3!= d);
d3 = d; d3 = d;
@ -65,11 +67,11 @@ class DocumentTest : public TestCase
void testDocElem() void testDocElem()
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
DOM::NodeList<string_type> nl = d.getChildNodes(); DOM::NodeList<string_type> nl = d.getChildNodes();
assert(nl.getLength() == 0); assert(nl.getLength() == 0);
DOM::Element<string_type> elem = d.createElement("root"); DOM::Element<string_type> elem = d.createElement(SA::construct_from_utf8("root"));
assert(elem.getParentNode() == 0); assert(elem.getParentNode() == 0);
assert(elem.getOwnerDocument() == d); assert(elem.getOwnerDocument() == d);
@ -82,7 +84,7 @@ class DocumentTest : public TestCase
assert(d.getFirstChild() == elem); assert(d.getFirstChild() == elem);
assert(nl.item(0) == elem); assert(nl.item(0) == elem);
DOM::Element<string_type> elem2 = d.createElement("root1"); DOM::Element<string_type> elem2 = d.createElement(SA::construct_from_utf8("root1"));
try try
{ {
d.appendChild(elem2); d.appendChild(elem2);
@ -108,11 +110,11 @@ class DocumentTest : public TestCase
void test4() void test4()
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
d.appendChild(d.createElement("root")); d.appendChild(d.createElement(SA::construct_from_utf8("root")));
d.getFirstChild().appendChild(d.createElement("child")); d.getFirstChild().appendChild(d.createElement(SA::construct_from_utf8("child")));
d.getFirstChild().appendChild(d.createElement("child2")); d.getFirstChild().appendChild(d.createElement(SA::construct_from_utf8("child2")));
d.getFirstChild().appendChild(d.createElement("child3")); d.getFirstChild().appendChild(d.createElement(SA::construct_from_utf8("child3")));
DOM::Document<string_type> clone = DOM::Document<string_type>(d.cloneNode(false)); DOM::Document<string_type> clone = DOM::Document<string_type>(d.cloneNode(false));
assert(clone.getFirstChild() == 0); assert(clone.getFirstChild() == 0);
@ -120,25 +122,25 @@ class DocumentTest : public TestCase
void test5() void test5()
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
d.appendChild(d.createElement("root")); d.appendChild(d.createElement(SA::construct_from_utf8("root")));
d.getFirstChild().appendChild(d.createElement("child")); d.getFirstChild().appendChild(d.createElement(SA::construct_from_utf8("child")));
d.getFirstChild().appendChild(d.createElement("child2")); d.getFirstChild().appendChild(d.createElement(SA::construct_from_utf8("child2")));
d.getFirstChild().appendChild(d.createElement("child3")); d.getFirstChild().appendChild(d.createElement(SA::construct_from_utf8("child3")));
DOM::Document<string_type> clone = DOM::Document<string_type>(d.cloneNode(true)); DOM::Document<string_type> clone = DOM::Document<string_type>(d.cloneNode(true));
assert(clone.getFirstChild().getNodeName() == "root"); assert(clone.getFirstChild().getNodeName() == SA::construct_from_utf8("root"));
assert(clone.getFirstChild().getFirstChild().getNodeName() == "child"); assert(clone.getFirstChild().getFirstChild().getNodeName() == SA::construct_from_utf8("child"));
assert(clone.getFirstChild().getLastChild().getNodeName() == "child3"); assert(clone.getFirstChild().getLastChild().getNodeName() == SA::construct_from_utf8("child3"));
} // test5 } // test5
void test6() void test6()
{ {
DOM::Document<string_type> d1 = factory.createDocument("","", 0); DOM::Document<string_type> d1 = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
DOM::Document<string_type> d2 = factory.createDocument("","", 0); DOM::Document<string_type> d2 = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
DOM::Attr<string_type> a1 = d1.createAttribute("attr"); DOM::Attr<string_type> a1 = d1.createAttribute(SA::construct_from_utf8("attr"));
a1.setNodeValue("value"); a1.setNodeValue(SA::construct_from_utf8("value"));
DOM::Node<string_type> a2 = d2.importNode(a1, true); DOM::Node<string_type> a2 = d2.importNode(a1, true);
assert(a2.getNodeType() == DOM::Node<string_type>::ATTRIBUTE_NODE); assert(a2.getNodeType() == DOM::Node<string_type>::ATTRIBUTE_NODE);
@ -146,7 +148,7 @@ class DocumentTest : public TestCase
assert(a2.getNodeValue() == a1.getNodeValue()); assert(a2.getNodeValue() == a1.getNodeValue());
assert(a2.getOwnerDocument() == d2); assert(a2.getOwnerDocument() == d2);
assert(a2.getChildNodes().getLength() == 1); assert(a2.getChildNodes().getLength() == 1);
assert(a2.getFirstChild().getNodeValue() == "value"); assert(a2.getFirstChild().getNodeValue() == SA::construct_from_utf8("value"));
DOM::Attr<string_type> asAttr = DOM::Attr<string_type>(a2); DOM::Attr<string_type> asAttr = DOM::Attr<string_type>(a2);
assert(asAttr.getSpecified()); assert(asAttr.getSpecified());
assert(asAttr.getOwnerElement() == 0); assert(asAttr.getOwnerElement() == 0);
@ -154,18 +156,18 @@ class DocumentTest : public TestCase
void test7() void test7()
{ {
DOM::Document<string_type> d1 = factory.createDocument("","", 0); DOM::Document<string_type> d1 = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
DOM::Document<string_type> d2 = factory.createDocument("","", 0); DOM::Document<string_type> d2 = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
DOM::DocumentFragment<string_type> df1 = d1.createDocumentFragment(); DOM::DocumentFragment<string_type> df1 = d1.createDocumentFragment();
df1.appendChild(d1.createElement("c1")); df1.appendChild(d1.createElement(SA::construct_from_utf8("c1")));
df1.appendChild(d1.createElement("c2")); df1.appendChild(d1.createElement(SA::construct_from_utf8("c2")));
df1.appendChild(d1.createElement("c3")); df1.appendChild(d1.createElement(SA::construct_from_utf8("c3")));
df1.appendChild(d1.createElement("c4")); df1.appendChild(d1.createElement(SA::construct_from_utf8("c4")));
df1.getFirstChild().appendChild(d1.createElement("sc1")); df1.getFirstChild().appendChild(d1.createElement(SA::construct_from_utf8("sc1")));
df1.getFirstChild().appendChild(d1.createElement("sc2")); df1.getFirstChild().appendChild(d1.createElement(SA::construct_from_utf8("sc2")));
df1.getFirstChild().appendChild(d1.createElement("sc3")); df1.getFirstChild().appendChild(d1.createElement(SA::construct_from_utf8("c3")));
df1.getFirstChild().appendChild(d1.createElement("sc4")); df1.getFirstChild().appendChild(d1.createElement(SA::construct_from_utf8("c4")));
DOM::Node<string_type> df2nc = d2.importNode(df1, false); DOM::Node<string_type> df2nc = d2.importNode(df1, false);
assert(df2nc.getOwnerDocument() == d2); assert(df2nc.getOwnerDocument() == d2);
@ -177,116 +179,116 @@ class DocumentTest : public TestCase
assert(df2.getChildNodes().getLength() == 4); assert(df2.getChildNodes().getLength() == 4);
assert(df2.getFirstChild().getChildNodes().getLength() == 4); assert(df2.getFirstChild().getChildNodes().getLength() == 4);
DOM::NodeList<string_type> c = df2.getChildNodes(); DOM::NodeList<string_type> c = df2.getChildNodes();
assert(c.item(0).getNodeName() == "c1"); assert(c.item(0).getNodeName() == SA::construct_from_utf8("c1"));
assert(c.item(1).getNodeName() == "c2"); assert(c.item(1).getNodeName() == SA::construct_from_utf8("c2"));
assert(c.item(2).getNodeName() == "c3"); assert(c.item(2).getNodeName() == SA::construct_from_utf8("c3"));
assert(c.item(3).getNodeName() == "c4"); assert(c.item(3).getNodeName() == SA::construct_from_utf8("c4"));
assert(c.item(0).getChildNodes().getLength() == 4); assert(c.item(0).getChildNodes().getLength() == 4);
assert(c.item(1).getChildNodes().getLength() == 0); assert(c.item(1).getChildNodes().getLength() == 0);
assert(c.item(2).getChildNodes().getLength() == 0); assert(c.item(2).getChildNodes().getLength() == 0);
assert(c.item(3).getChildNodes().getLength() == 0); assert(c.item(3).getChildNodes().getLength() == 0);
c = df2.getFirstChild().getChildNodes(); c = df2.getFirstChild().getChildNodes();
assert(c.item(0).getNodeName() == "sc1"); assert(c.item(0).getNodeName() == SA::construct_from_utf8("sc1"));
assert(c.item(1).getNodeName() == "sc2"); assert(c.item(1).getNodeName() == SA::construct_from_utf8("sc2"));
assert(c.item(2).getNodeName() == "sc3"); assert(c.item(2).getNodeName() == SA::construct_from_utf8("c3"));
assert(c.item(3).getNodeName() == "sc4"); assert(c.item(3).getNodeName() == SA::construct_from_utf8("c4"));
} // test7 } // test7
void test8() void test8()
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
d.appendChild(d.createElement("root")); d.appendChild(d.createElement(SA::construct_from_utf8("root")));
d.getFirstChild().appendChild(d.createElement("child")); d.getFirstChild().appendChild(d.createElement(SA::construct_from_utf8("child")));
d.getFirstChild().appendChild(d.createElement("child")); d.getFirstChild().appendChild(d.createElement(SA::construct_from_utf8("child")));
d.getFirstChild().appendChild(d.createElement("child")); d.getFirstChild().appendChild(d.createElement(SA::construct_from_utf8("child")));
assert(d.getElementsByTagName("boots").getLength() == 0); assert(d.getElementsByTagName(SA::construct_from_utf8("boots")).getLength() == 0);
assert(d.getElementsByTagName("root").getLength() == 1); assert(d.getElementsByTagName(SA::construct_from_utf8("root")).getLength() == 1);
assert(d.getElementsByTagName("*").getLength() == 4); assert(d.getElementsByTagName(SA::construct_from_utf8("*")).getLength() == 4);
assert(d.getElementsByTagNameNS("*", "*").getLength() == 4); assert(d.getElementsByTagNameNS(SA::construct_from_utf8("*"), SA::construct_from_utf8("*")).getLength() == 4);
DOM::NodeList<string_type> children = d.getElementsByTagName("child"); DOM::NodeList<string_type> children = d.getElementsByTagName(SA::construct_from_utf8("child"));
assert(children.getLength() == 3); assert(children.getLength() == 3);
assert(children.item(0) == d.getFirstChild().getFirstChild()); assert(children.item(0) == d.getFirstChild().getFirstChild());
d.getFirstChild().getFirstChild().appendChild(d.createElement("donkey")); d.getFirstChild().getFirstChild().appendChild(d.createElement(SA::construct_from_utf8("donkey")));
d.getFirstChild().getFirstChild().appendChild(d.createElement("child")); d.getFirstChild().getFirstChild().appendChild(d.createElement(SA::construct_from_utf8("child")));
d.getFirstChild().getFirstChild().appendChild(d.createElement("donkey")); d.getFirstChild().getFirstChild().appendChild(d.createElement(SA::construct_from_utf8("donkey")));
d.getFirstChild().getLastChild().appendChild(d.createElement("donkey")); d.getFirstChild().getLastChild().appendChild(d.createElement(SA::construct_from_utf8("donkey")));
d.getFirstChild().getLastChild().appendChild(d.createElement("child")); d.getFirstChild().getLastChild().appendChild(d.createElement(SA::construct_from_utf8("child")));
d.getFirstChild().getLastChild().appendChild(d.createElement("donkey")); d.getFirstChild().getLastChild().appendChild(d.createElement(SA::construct_from_utf8("donkey")));
assert(children.getLength() == 5); assert(children.getLength() == 5);
assert(DOM::Element<string_type>(d.getFirstChild().getFirstChild()).getElementsByTagName("donkey").getLength() == 2); assert(DOM::Element<string_type>(d.getFirstChild().getFirstChild()).getElementsByTagName(SA::construct_from_utf8("donkey")).getLength() == 2);
assert(DOM::Element<string_type>(d.getFirstChild()).getElementsByTagName("donkey").getLength() == 4); assert(DOM::Element<string_type>(d.getFirstChild()).getElementsByTagName(SA::construct_from_utf8("donkey")).getLength() == 4);
} // test8 } // test8
void test9() void test9()
{ {
DOM::Document<string_type> d = factory.createDocument("","root", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8("root"), 0);
assert(d.getFirstChild().getNodeName() == "root"); assert(d.getFirstChild().getNodeName() == SA::construct_from_utf8("root"));
assert(d.getFirstChild().hasPrefix() == false); assert(d.getFirstChild().hasPrefix() == false);
assert(d.getFirstChild().hasNamespaceURI() == false); assert(d.getFirstChild().hasNamespaceURI() == false);
assert(d.getFirstChild().getLocalName() == "root"); assert(d.getFirstChild().getLocalName() == SA::construct_from_utf8("root"));
assert(d.getFirstChild().getPrefix() == ""); assert(d.getFirstChild().getPrefix() == SA::construct_from_utf8(""));
assert(d.getFirstChild().getNamespaceURI() == ""); assert(d.getFirstChild().getNamespaceURI() == SA::construct_from_utf8(""));
} // test9 } // test9
void test10() void test10()
{ {
DOM::Document<string_type> d = factory.createDocument("http://test/test","test:root", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8("http://test/test"), SA::construct_from_utf8("test:root"), 0);
assert(d.getFirstChild().getNodeName() == "test:root"); assert(d.getFirstChild().getNodeName() == SA::construct_from_utf8("test:root"));
assert(d.getFirstChild().hasPrefix() == true); assert(d.getFirstChild().hasPrefix() == true);
assert(d.getFirstChild().hasNamespaceURI() == true); assert(d.getFirstChild().hasNamespaceURI() == true);
assert(d.getFirstChild().getLocalName() == "root"); assert(d.getFirstChild().getLocalName() == SA::construct_from_utf8("root"));
assert(d.getFirstChild().getPrefix() == "test"); assert(d.getFirstChild().getPrefix() == SA::construct_from_utf8("test"));
assert(d.getFirstChild().getNamespaceURI() == "http://test/test"); assert(d.getFirstChild().getNamespaceURI() == SA::construct_from_utf8("http://test/test"));
} // test10 } // test10
void test11() void test11()
{ {
DOM::Document<string_type> d = factory.createDocument("http://test/test","root", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8("http://test/test"), SA::construct_from_utf8("root"), 0);
assert(d.getFirstChild().getNodeName() == "root"); assert(d.getFirstChild().getNodeName() == SA::construct_from_utf8("root"));
assert(d.getFirstChild().hasPrefix() == false); assert(d.getFirstChild().hasPrefix() == false);
assert(d.getFirstChild().hasNamespaceURI() == true); assert(d.getFirstChild().hasNamespaceURI() == true);
assert(d.getFirstChild().getLocalName() == "root"); assert(d.getFirstChild().getLocalName() == SA::construct_from_utf8("root"));
assert(d.getFirstChild().getPrefix() == ""); assert(d.getFirstChild().getPrefix() == SA::construct_from_utf8(""));
assert(d.getFirstChild().getNamespaceURI() == "http://test/test"); assert(d.getFirstChild().getNamespaceURI() == SA::construct_from_utf8("http://test/test"));
} // test11 } // test11
void test12() void test12()
{ {
DOM::Document<string_type> d = factory.createDocument("http://test/test","root", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8("http://test/test"), SA::construct_from_utf8("root"), 0);
assert(d.getFirstChild().getNodeName() == "root"); assert(d.getFirstChild().getNodeName() == SA::construct_from_utf8("root"));
assert(d.getFirstChild().hasPrefix() == false); assert(d.getFirstChild().hasPrefix() == false);
assert(d.getFirstChild().hasNamespaceURI() == true); assert(d.getFirstChild().hasNamespaceURI() == true);
assert(d.getFirstChild().getLocalName() == "root"); assert(d.getFirstChild().getLocalName() == SA::construct_from_utf8("root"));
assert(d.getFirstChild().getPrefix() == ""); assert(d.getFirstChild().getPrefix() == SA::construct_from_utf8(""));
assert(d.getFirstChild().getNamespaceURI() == "http://test/test"); assert(d.getFirstChild().getNamespaceURI() == SA::construct_from_utf8("http://test/test"));
d.getFirstChild().setPrefix("test"); d.getFirstChild().setPrefix(SA::construct_from_utf8("test"));
assert(d.getFirstChild().getNodeName() == "test:root"); assert(d.getFirstChild().getNodeName() == SA::construct_from_utf8("test:root"));
assert(d.getFirstChild().hasPrefix() == true); assert(d.getFirstChild().hasPrefix() == true);
assert(d.getFirstChild().hasNamespaceURI() == true); assert(d.getFirstChild().hasNamespaceURI() == true);
assert(d.getFirstChild().getLocalName() == "root"); assert(d.getFirstChild().getLocalName() == SA::construct_from_utf8("root"));
assert(d.getFirstChild().getPrefix() == "test"); assert(d.getFirstChild().getPrefix() == SA::construct_from_utf8("test"));
assert(d.getFirstChild().getNamespaceURI() == "http://test/test"); assert(d.getFirstChild().getNamespaceURI() == SA::construct_from_utf8("http://test/test"));
} // test12 } // test12
void test13() void test13()
{ {
DOM::Document<string_type> d = factory.createDocument("http://test/test","root", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8("http://test/test"), SA::construct_from_utf8("root"), 0);
DOM::Element<string_type> root = d.getDocumentElement(); DOM::Element<string_type> root = d.getDocumentElement();
root.appendChild(d.createTextNode("hello ")); root.appendChild(d.createTextNode(SA::construct_from_utf8("hello ")));
root.appendChild(d.createTextNode("mother, " )); root.appendChild(d.createTextNode(SA::construct_from_utf8("mother, ")));
root.appendChild(d.createTextNode("how ")); root.appendChild(d.createTextNode(SA::construct_from_utf8("how ")));
root.appendChild(d.createTextNode("are ")); root.appendChild(d.createTextNode(SA::construct_from_utf8("are ")));
root.appendChild(d.createTextNode("you?")); root.appendChild(d.createTextNode(SA::construct_from_utf8("you?")));
assert(root.getChildNodes().getLength() == 5); assert(root.getChildNodes().getLength() == 5);
root.normalize(); root.normalize();
assert(root.getChildNodes().getLength() == 1); assert(root.getChildNodes().getLength() == 1);
assert(root.getFirstChild().getNodeValue() == "hello mother, how are you?"); assert(root.getFirstChild().getNodeValue() == SA::construct_from_utf8("hello mother, how are you?"));
} // test13 } // test13
}; };

View file

@ -11,6 +11,7 @@ template<class string_type, class string_adaptor>
class DocumentFragmentTest : public TestCase class DocumentFragmentTest : public TestCase
{ {
DOM::DOMImplementation<string_type> factory; DOM::DOMImplementation<string_type> factory;
typedef string_adaptor SA;
public: public:
DocumentFragmentTest(std::string name) : DocumentFragmentTest(std::string name) :
@ -20,7 +21,7 @@ class DocumentFragmentTest : public TestCase
void setUp() void setUp()
{ {
factory = SimpleDOM::DOMImplementation<string_type>::getDOMImplementation(); factory = SimpleDOM::DOMImplementation<string_type, string_adaptor>::getDOMImplementation();
} // setUp } // setUp
void test1() void test1()
@ -34,67 +35,67 @@ class DocumentFragmentTest : public TestCase
void test2() void test2()
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
DOM::DocumentFragment<string_type> frag = d.createDocumentFragment(); DOM::DocumentFragment<string_type> frag = d.createDocumentFragment();
frag.appendChild(d.createElement("child")); frag.appendChild(d.createElement(SA::construct_from_utf8("child")));
frag.appendChild(d.createElement("child2")); frag.appendChild(d.createElement(SA::construct_from_utf8("child2")));
frag.appendChild(d.createElement("child3")); frag.appendChild(d.createElement(SA::construct_from_utf8("child3")));
assert(frag.getChildNodes().getLength() == 3); assert(frag.getChildNodes().getLength() == 3);
} // test2 } // test2
void test3() void test3()
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
DOM::DocumentFragment<string_type> frag = d.createDocumentFragment(); DOM::DocumentFragment<string_type> frag = d.createDocumentFragment();
frag.appendChild(d.createElement("child")); frag.appendChild(d.createElement(SA::construct_from_utf8("child")));
frag.appendChild(d.createElement("child2")); frag.appendChild(d.createElement(SA::construct_from_utf8("child2")));
frag.appendChild(d.createElement("child3")); frag.appendChild(d.createElement(SA::construct_from_utf8("child3")));
DOM::Element<string_type> elem = d.createElement("root"); DOM::Element<string_type> elem = d.createElement(SA::construct_from_utf8("root"));
elem.appendChild(frag); elem.appendChild(frag);
assert(elem.getChildNodes().getLength() == 3); assert(elem.getChildNodes().getLength() == 3);
assert(elem.getFirstChild().getNodeName() == "child"); assert(elem.getFirstChild().getNodeName() == SA::construct_from_utf8("child"));
assert(elem.getLastChild().getNodeName() == "child3"); assert(elem.getLastChild().getNodeName() == SA::construct_from_utf8("child3"));
assert(frag.getChildNodes().getLength() == 0); assert(frag.getChildNodes().getLength() == 0);
} // test3 } // test3
void test4() void test4()
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
DOM::DocumentFragment<string_type> frag = d.createDocumentFragment(); DOM::DocumentFragment<string_type> frag = d.createDocumentFragment();
frag.appendChild(d.createElement("child")); frag.appendChild(d.createElement(SA::construct_from_utf8("child")));
frag.appendChild(d.createElement("child2")); frag.appendChild(d.createElement(SA::construct_from_utf8("child2")));
frag.appendChild(d.createElement("child3")); frag.appendChild(d.createElement(SA::construct_from_utf8("child3")));
DOM::Element<string_type> elem = d.createElement("root"); DOM::Element<string_type> elem = d.createElement(SA::construct_from_utf8("root"));
elem.appendChild(d.createElement("t")); elem.appendChild(d.createElement(SA::construct_from_utf8("t")));
assert(elem.getChildNodes().getLength() == 1); assert(elem.getChildNodes().getLength() == 1);
elem.replaceChild(frag, elem.getFirstChild()); elem.replaceChild(frag, elem.getFirstChild());
assert(elem.getChildNodes().getLength() == 3); assert(elem.getChildNodes().getLength() == 3);
assert(elem.getFirstChild().getNodeName() == "child"); assert(elem.getFirstChild().getNodeName() == SA::construct_from_utf8("child"));
assert(elem.getLastChild().getNodeName() == "child3"); assert(elem.getLastChild().getNodeName() == SA::construct_from_utf8("child3"));
assert(frag.getChildNodes().getLength() == 0); assert(frag.getChildNodes().getLength() == 0);
} // test4 } // test4
void test5() void test5()
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
DOM::DocumentFragment<string_type> frag = d.createDocumentFragment(); DOM::DocumentFragment<string_type> frag = d.createDocumentFragment();
frag.appendChild(d.createElement("child")); frag.appendChild(d.createElement(SA::construct_from_utf8("child")));
frag.appendChild(d.createElement("child2")); frag.appendChild(d.createElement(SA::construct_from_utf8("child2")));
frag.appendChild(d.createElement("child3")); frag.appendChild(d.createElement(SA::construct_from_utf8("child3")));
DOM::Element<string_type> elem = d.createElement("root"); DOM::Element<string_type> elem = d.createElement(SA::construct_from_utf8("root"));
elem.appendChild(d.createElement("t")); elem.appendChild(d.createElement(SA::construct_from_utf8("t")));
assert(elem.getChildNodes().getLength() == 1); assert(elem.getChildNodes().getLength() == 1);
elem.insertBefore(frag, elem.getFirstChild()); elem.insertBefore(frag, elem.getFirstChild());
assert(elem.getChildNodes().getLength() == 4); assert(elem.getChildNodes().getLength() == 4);
assert(elem.getFirstChild().getNodeName() == "child"); assert(elem.getFirstChild().getNodeName() == SA::construct_from_utf8("child"));
assert(elem.getLastChild().getNodeName() == "t"); assert(elem.getLastChild().getNodeName() == SA::construct_from_utf8("t"));
assert(frag.getChildNodes().getLength() == 0); assert(frag.getChildNodes().getLength() == 0);
} // test5 } // test5
}; };

View file

@ -11,6 +11,7 @@ template<class string_type, class string_adaptor>
class ElementTest : public TestCase class ElementTest : public TestCase
{ {
DOM::DOMImplementation<string_type> factory; DOM::DOMImplementation<string_type> factory;
typedef string_adaptor SA;
public: public:
ElementTest(std::string name) : ElementTest(std::string name) :
@ -20,7 +21,7 @@ class ElementTest : public TestCase
void setUp() void setUp()
{ {
factory = SimpleDOM::DOMImplementation<string_type>::getDOMImplementation(); factory = SimpleDOM::DOMImplementation<string_type, string_adaptor>::getDOMImplementation();
} // setUp } // setUp
void test1() void test1()
@ -34,26 +35,26 @@ class ElementTest : public TestCase
void test2() void test2()
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
DOM::Element<string_type> elem = d.createElement("root"); DOM::Element<string_type> elem = d.createElement(SA::construct_from_utf8("root"));
assert(elem.getParentNode() == 0); assert(elem.getParentNode() == 0);
assert(elem.getOwnerDocument() == d); assert(elem.getOwnerDocument() == d);
d.appendChild(elem); d.appendChild(elem);
DOM::Element<string_type> child = d.createElement("child"); DOM::Element<string_type> child = d.createElement(SA::construct_from_utf8("child"));
elem.appendChild(child); elem.appendChild(child);
} // test2 } // test2
void test3() void test3()
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
DOM::Element<string_type> elem = d.createElement("root"); DOM::Element<string_type> elem = d.createElement(SA::construct_from_utf8("root"));
assert(elem.getParentNode() == 0); assert(elem.getParentNode() == 0);
assert(elem.getOwnerDocument() == d); assert(elem.getOwnerDocument() == d);
d.appendChild(elem); d.appendChild(elem);
DOM::Attr<string_type> attr = d.createAttribute("attr"); DOM::Attr<string_type> attr = d.createAttribute(SA::construct_from_utf8("attr"));
attr.setNodeValue("trousers"); attr.setNodeValue(SA::construct_from_utf8("trousers"));
try try
{ {
elem.appendChild(attr); elem.appendChild(attr);
@ -64,83 +65,83 @@ class ElementTest : public TestCase
void test4() void test4()
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
DOM::Element<string_type> elem = d.createElement("root"); DOM::Element<string_type> elem = d.createElement(SA::construct_from_utf8("root"));
assert(elem.getParentNode() == 0); assert(elem.getParentNode() == 0);
assert(elem.getOwnerDocument() == d); assert(elem.getOwnerDocument() == d);
d.appendChild(elem); d.appendChild(elem);
DOM::Attr<string_type> attr = d.createAttribute("attr"); DOM::Attr<string_type> attr = d.createAttribute(SA::construct_from_utf8("attr"));
elem.setAttributeNode(attr); elem.setAttributeNode(attr);
assert(elem.getAttributeNode("attr") == attr); assert(elem.getAttributeNode(SA::construct_from_utf8("attr")) == attr);
assert(elem.removeAttributeNode(attr) == attr); assert(elem.removeAttributeNode(attr) == attr);
} // test4 } // test4
void test5() void test5()
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
DOM::Element<string_type> elem = d.createElement("root"); DOM::Element<string_type> elem = d.createElement(SA::construct_from_utf8("root"));
assert(elem.getParentNode() == 0); assert(elem.getParentNode() == 0);
assert(elem.getOwnerDocument() == d); assert(elem.getOwnerDocument() == d);
d.appendChild(elem); d.appendChild(elem);
assert(elem.hasAttributes() == false); assert(elem.hasAttributes() == false);
assert(elem.hasAttribute("attr") == false); assert(elem.hasAttribute(SA::construct_from_utf8("attr")) == false);
elem.setAttribute("attr", "poop"); elem.setAttribute(SA::construct_from_utf8("attr"), SA::construct_from_utf8("poop"));
assert(elem.hasAttributes() == true); assert(elem.hasAttributes() == true);
assert(elem.hasAttribute("attr") == true); assert(elem.hasAttribute(SA::construct_from_utf8("attr")) == true);
DOM::Node<string_type> n = elem.getAttributeNode("attr"); DOM::Node<string_type> n = elem.getAttributeNode(SA::construct_from_utf8("attr"));
assert(n.getNodeValue() == "poop"); assert(n.getNodeValue() == SA::construct_from_utf8("poop"));
assert(elem.setAttributeNode(d.createAttribute("attr")) == n); assert(elem.setAttributeNode(d.createAttribute(SA::construct_from_utf8("attr"))) == n);
} // test5 } // test5
void test6() void test6()
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
DOM::Element<string_type> elem = d.createElement("root"); DOM::Element<string_type> elem = d.createElement(SA::construct_from_utf8("root"));
assert(elem.getParentNode() == 0); assert(elem.getParentNode() == 0);
assert(elem.getOwnerDocument() == d); assert(elem.getOwnerDocument() == d);
d.appendChild(elem); d.appendChild(elem);
assert(elem.hasAttributes() == false); assert(elem.hasAttributes() == false);
assert(elem.hasAttribute("attr") == false); assert(elem.hasAttribute(SA::construct_from_utf8("attr")) == false);
elem.setAttribute("attr", "poop"); elem.setAttribute(SA::construct_from_utf8("attr"), SA::construct_from_utf8("poop"));
assert(elem.hasAttributes() == true); assert(elem.hasAttributes() == true);
assert(elem.hasAttribute("attr") == true); assert(elem.hasAttribute(SA::construct_from_utf8("attr")) == true);
elem.removeAttribute("attr"); elem.removeAttribute(SA::construct_from_utf8("attr"));
assert(elem.hasAttributes() == false); assert(elem.hasAttributes() == false);
assert(elem.hasAttribute("attr") == false); assert(elem.hasAttribute(SA::construct_from_utf8("attr")) == false);
} // test6 } // test6
void test7() void test7()
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
DOM::Element<string_type> elem = d.createElement("root"); DOM::Element<string_type> elem = d.createElement(SA::construct_from_utf8("root"));
elem.setAttribute("attr", "poop"); elem.setAttribute(SA::construct_from_utf8("attr"), SA::construct_from_utf8("poop"));
elem.appendChild(d.createElement("child")); elem.appendChild(d.createElement(SA::construct_from_utf8("child")));
DOM::Element<string_type> e2 = DOM::Element<string_type>(elem.cloneNode(false)); DOM::Element<string_type> e2 = DOM::Element<string_type>(elem.cloneNode(false));
assert(e2.getOwnerDocument() == d); assert(e2.getOwnerDocument() == d);
assert(e2.getParentNode() == 0); assert(e2.getParentNode() == 0);
assert(e2.hasAttributes() == true); assert(e2.hasAttributes() == true);
assert(e2.getAttribute("attr") == "poop"); assert(e2.getAttribute(SA::construct_from_utf8("attr")) == SA::construct_from_utf8("poop"));
assert(e2.getFirstChild() == 0); assert(e2.getFirstChild() == 0);
} // test7 } // test7
void test8() void test8()
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
DOM::Element<string_type> elem = d.createElement("root"); DOM::Element<string_type> elem = d.createElement(SA::construct_from_utf8("root"));
elem.setAttribute("attr", "poop"); elem.setAttribute(SA::construct_from_utf8("attr"), SA::construct_from_utf8("poop"));
elem.appendChild(d.createElement("child")); elem.appendChild(d.createElement(SA::construct_from_utf8("child")));
DOM::Element<string_type> e2 = DOM::Element<string_type>(elem.cloneNode(true)); DOM::Element<string_type> e2 = DOM::Element<string_type>(elem.cloneNode(true));
assert(e2.getOwnerDocument() == d); assert(e2.getOwnerDocument() == d);
assert(e2.getParentNode() == 0); assert(e2.getParentNode() == 0);
assert(e2.hasAttributes() == true); assert(e2.hasAttributes() == true);
assert(e2.getAttribute("attr") == "poop"); assert(e2.getAttribute(SA::construct_from_utf8("attr")) == SA::construct_from_utf8("poop"));
assert(e2.getFirstChild().getNodeName() == "child"); assert(e2.getFirstChild().getNodeName() == SA::construct_from_utf8("child"));
} // test } // test
}; };

View file

@ -21,7 +21,7 @@ class PITest : public TestCase
void setUp() void setUp()
{ {
factory = SimpleDOM::DOMImplementation<string_type>::getDOMImplementation(); factory = SimpleDOM::DOMImplementation<string_type, string_adaptor>::getDOMImplementation();
} // setUp } // setUp
void testNull() void testNull()

View file

@ -11,6 +11,7 @@ template<class string_type, class string_adaptor>
class SiblingsTest : public TestCase class SiblingsTest : public TestCase
{ {
DOM::DOMImplementation<string_type> factory; DOM::DOMImplementation<string_type> factory;
typedef string_adaptor SA;
public: public:
SiblingsTest(std::string name) : SiblingsTest(std::string name) :
@ -20,19 +21,19 @@ class SiblingsTest : public TestCase
void setUp() void setUp()
{ {
factory = SimpleDOM::DOMImplementation<string_type>::getDOMImplementation(); factory = SimpleDOM::DOMImplementation<string_type, string_adaptor>::getDOMImplementation();
} // setUp } // setUp
void test1() void test1()
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
DOM::Element<string_type> root = d.createElement("root"); DOM::Element<string_type> root = d.createElement(SA::construct_from_utf8("root"));
d.appendChild(root); d.appendChild(root);
assert(root.getPreviousSibling() == 0); assert(root.getPreviousSibling() == 0);
assert(root.getNextSibling() == 0); assert(root.getNextSibling() == 0);
DOM::ProcessingInstruction<string_type> p = d.createProcessingInstruction("target", "data"); DOM::ProcessingInstruction<string_type> p = d.createProcessingInstruction(SA::construct_from_utf8("target"), SA::construct_from_utf8("data"));
d.insertBefore(p, root); d.insertBefore(p, root);
assert(d.getFirstChild() == p); assert(d.getFirstChild() == p);
assert(d.getLastChild() == root); assert(d.getLastChild() == root);
@ -41,7 +42,7 @@ class SiblingsTest : public TestCase
assert(root.getPreviousSibling() == p); assert(root.getPreviousSibling() == p);
assert(root.getNextSibling() == 0); assert(root.getNextSibling() == 0);
DOM::ProcessingInstruction<string_type> p2 = d.createProcessingInstruction("target", "data"); DOM::ProcessingInstruction<string_type> p2 = d.createProcessingInstruction(SA::construct_from_utf8("target"), SA::construct_from_utf8("data"));
d.insertBefore(p2, root); d.insertBefore(p2, root);
assert(d.getFirstChild() == p); assert(d.getFirstChild() == p);
assert(d.getLastChild() == root); assert(d.getLastChild() == root);
@ -107,21 +108,21 @@ class SiblingsTest : public TestCase
{ {
DOM::Element<string_type> root; DOM::Element<string_type> root;
{ {
DOM::Document<string_type> d = factory.createDocument("","", 0); DOM::Document<string_type> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0);
root = d.createElement("root"); root = d.createElement(SA::construct_from_utf8("root"));
d.appendChild(root); d.appendChild(root);
assert(root.getPreviousSibling() == 0); assert(root.getPreviousSibling() == 0);
assert(root.getNextSibling() == 0); assert(root.getNextSibling() == 0);
DOM::ProcessingInstruction<string_type> p = d.createProcessingInstruction("target", "data"); DOM::ProcessingInstruction<string_type> p = d.createProcessingInstruction(SA::construct_from_utf8("target"), SA::construct_from_utf8("data"));
d.insertBefore(p, root); d.insertBefore(p, root);
} }
DOM::Node<string_type> n = root.getPreviousSibling(); DOM::Node<string_type> n = root.getPreviousSibling();
DOM::ProcessingInstruction<string_type> p = DOM::ProcessingInstruction<string_type>(n); DOM::ProcessingInstruction<string_type> p = DOM::ProcessingInstruction<string_type>(n);
assert(p.getTarget() == "target"); assert(p.getTarget() == SA::construct_from_utf8("target"));
assert(p.getData() == "data"); assert(p.getData() == SA::construct_from_utf8("data"));
} // test2 } // test2
}; };

View file

@ -21,7 +21,7 @@ class TextTest : public TestCase
void setUp() void setUp()
{ {
factory = SimpleDOM::DOMImplementation<string_type>::getDOMImplementation(); factory = SimpleDOM::DOMImplementation<string_type, string_adaptor>::getDOMImplementation();
} // setUp } // setUp
void testNull() void testNull()
@ -118,3 +118,4 @@ TestSuite* TextTest_suite()
} // TextTest_suite } // TextTest_suite
#endif #endif

View file

@ -152,46 +152,12 @@
<Filter <Filter
Name="Header Files" Name="Header Files"
Filter="h;hpp;hxx;hm;inl"> Filter="h;hpp;hxx;hm;inl">
<File
RelativePath="..\Dom\dom_test_suite.hpp">
</File>
<File <File
RelativePath="..\silly_string\silly_string.hpp"> RelativePath="..\silly_string\silly_string.hpp">
</File> </File>
<File
RelativePath="..\Dom\test_Attribute.h">
</File>
<File
RelativePath="..\Dom\test_CDATA.hpp">
</File>
<File
RelativePath="..\Dom\test_CharacterData.hpp">
</File>
<File
RelativePath="..\Dom\test_Document.h">
</File>
<File
RelativePath="..\Dom\test_DocumentFragment.h">
</File>
<File
RelativePath="..\Dom\test_DocumentType.h">
</File>
<File
RelativePath="..\Dom\test_DOMImplementation.h">
</File>
<File
RelativePath="..\Dom\test_Element.h">
</File>
<File
RelativePath="..\Dom\test_ProcessingInstruction.h">
</File>
<File
RelativePath="..\Dom\test_Siblings.h">
</File>
<File
RelativePath="..\Dom\test_Text.hpp">
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
</Filter> </Filter>
<Filter <Filter
Name="Libs"> Name="Libs">

52
test/DOM_silly/Makefile Normal file
View file

@ -0,0 +1,52 @@
-include ../../Makefile.header
-include ../../Makefile.common
######################################
# ADDITIONAL BUILD FLAGS
INCS_DIRS += -I../..
LIBS_DIRS += -L../../bin
STATIC_LIBS +=
DYNAMIC_LIBS += -lArabica
######################################
# SOURCE FILES
DOMTEST_SRCS = main.cpp ../silly_string/silly_string.cpp
DOMTEST_OBJS = $(patsubst %.cpp,%.o,$(DOMTEST_SRCS))
DOMTEST_TESTS = ..\DOM\dom_test_suite.hpp \
..\DOM\test_Attribute.h \
..\DOM\test_CDATA.hpp \
..\DOM\test_CharacterData.hpp \
..\DOM\test_DOMImplementation.h \
..\DOM\test_Document.h \
..\DOM\test_DocumentFragment.h \
..\DOM\test_DocumentType.h \
..\DOM\test_Element.h \
..\DOM\test_ProcessingInstruction.h \
..\DOM\test_Siblings.h \
..\DOM\test_Text.hpp
######################################
# High level rules
all : dom_test_ss
dom_test_ss : $(DOMTEST_OBJS) $(CPPUNIT_OBJS)
$(LD) $(LDFLAGS) -o $@ $(DOMTEST_OBJS) $(CPPUNIT_OBJS) $(LIBS_DIRS) $(STATIC_LIBS) $(DYNAMIC_LIBS)
$(COPY) dom_test_ss$(EXESUFFIX) ../../bin
######################
# Compile rules
####
-include ../../Makefile.rules
######################
# Cleaning up
clean :
$(REMOVE) $(CPPUNIT_OBJS) \
$(DOMTEST_OBJS) \
dom_test_ss$(EXESUFFIX) \
../../bin/dom_test_ss$(EXESUFFIX)
# End of File

View file

@ -1,52 +1,16 @@
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning(disable: 4786 4250 4503) #pragma warning(disable: 4786 4250 4503)
#endif #endif
#include <iostream>
#include <string>
#include <iostream>
#include <vector>
#include <map>
#include "../CppUnit/TestRunner.hpp"
#include "../CppUnit/framework/Test.h"
#include "../CppUnit/framework/TestSuite.h"
#include "../DOM/test_DOMImplementation.h"
#include "../DOM/test_DocumentType.h"
//#include "test_Document.h"
#include "../DOM/test_ProcessingInstruction.h"
//#include "test_Siblings.h"
//#include "test_Element.h"
//#include "test_DocumentFragment.h"
#include "../DOM/test_Attribute.h"
#include "../DOM/test_Text.hpp"
#include "../DOM/test_CDATA.hpp"
#include "../DOM/test_CharacterData.hpp"
#include "../DOM/dom_test_suite.hpp"
#include "../silly_string/silly_string.hpp" #include "../silly_string/silly_string.hpp"
template<> class Arabica::default_string_adaptor<silly_string> : public silly_string_adaptor { }; //template<> class Arabica::default_string_adaptor<silly_string> : public silly_string_adaptor { };
//////////////////////////////////////////////// ////////////////////////////////////////////////
int main(int argc, char* argv[]) int main(int argc, const char* argv[])
{ {
TestRunner runner; DOM_test_suite<silly_string, silly_string_adaptor>(argc, argv);
runner.addTest("DOMImplementationTest", DOMImplementationTest_suite<silly_string, Arabica::default_string_adaptor<silly_string> >());
runner.addTest("DocumentTypeTest", DocumentTypeTest_suite<silly_string, Arabica::default_string_adaptor<silly_string> >());
//runner.addTest("DocumentTest", DocumentTest_suite<silly_string, Arabica::default_string_adaptor<silly_string> >());
//runner.addTest("SiblingsTest", SiblingsTest_suite<silly_string, Arabica::default_string_adaptor<silly_string> >());
//runner.addTest("ElementTest", ElementTest_suite<silly_string, Arabica::default_string_adaptor<silly_string> >());
runner.addTest("AttributeTest", AttrTest_suite<silly_string, Arabica::default_string_adaptor<silly_string> >());
runner.addTest("ProcessingInstructionTest", ProcessingInstructionTest_suite<silly_string, Arabica::default_string_adaptor<silly_string> >());
runner.addTest("TextTest", TextTest_suite<silly_string, Arabica::default_string_adaptor<silly_string> >());
runner.addTest("CDATATest", CDATATest_suite<silly_string, Arabica::default_string_adaptor<silly_string> >());
runner.addTest("CharacterDataText", CharacterDataTest_suite<silly_string, Arabica::default_string_adaptor<silly_string> >());
//runner.addTest("DocumentFragmentTest", DocumentFragmentTest_suite<silly_string, Arabica::default_string_adaptor<silly_string> >());
runner.run(argc, argv);
return 0; return 0;
} // main } // main

52
test/DOM_wide/Makefile Normal file
View file

@ -0,0 +1,52 @@
-include ../../Makefile.header
-include ../../Makefile.common
######################################
# ADDITIONAL BUILD FLAGS
INCS_DIRS += -I../..
LIBS_DIRS += -L../../bin
STATIC_LIBS +=
DYNAMIC_LIBS += -lArabica
######################################
# SOURCE FILES
DOMTEST_SRCS = main.cpp
DOMTEST_OBJS = $(patsubst %.cpp,%.o,$(DOMTEST_SRCS))
DOMTEST_TESTS = ..\DOM\dom_test_suite.hpp \
..\DOM\test_Attribute.h \
..\DOM\test_CDATA.hpp \
..\DOM\test_CharacterData.hpp \
..\DOM\test_DOMImplementation.h \
..\DOM\test_Document.h \
..\DOM\test_DocumentFragment.h \
..\DOM\test_DocumentType.h \
..\DOM\test_Element.h \
..\DOM\test_ProcessingInstruction.h \
..\DOM\test_Siblings.h \
..\DOM\test_Text.hpp
######################################
# High level rules
all : dom_test_wide
dom_test_wide : $(DOMTEST_OBJS) $(CPPUNIT_OBJS)
$(LD) $(LDFLAGS) -o $@ $(DOMTEST_OBJS) $(CPPUNIT_OBJS) $(LIBS_DIRS) $(STATIC_LIBS) $(DYNAMIC_LIBS)
$(COPY) dom_test_wide$(EXESUFFIX) ../../bin
######################
# Compile rules
####
-include ../../Makefile.rules
######################
# Cleaning up
clean :
$(REMOVE) $(CPPUNIT_OBJS) \
$(DOMTEST_OBJS) \
dom_test_wide$(EXESUFFIX) \
../../bin/dom_test_wide$(EXESUFFIX)
# End of File

View file

@ -2,6 +2,8 @@
all: all:
cd DOM; ${MAKE} cd DOM; ${MAKE}
cd DOM_wide; ${MAKE}
cd DOM_silly; ${MAKE}
cd SAX2DOM; ${MAKE} cd SAX2DOM; ${MAKE}
cd XPath; ${MAKE} cd XPath; ${MAKE}
cd XPath_wide; ${MAKE} cd XPath_wide; ${MAKE}
@ -9,6 +11,8 @@ all:
clean: clean:
cd DOM; ${MAKE} clean cd DOM; ${MAKE} clean
cd DOM_wide; ${MAKE} clean
cd DOM_silly; ${MAKE} clean
cd SAX2DOM; ${MAKE} clean cd SAX2DOM; ${MAKE} clean
cd XPath; ${MAKE} clean cd XPath; ${MAKE} clean
cd XPath_wide; ${MAKE} clean cd XPath_wide; ${MAKE} clean

View file

@ -17,7 +17,7 @@
#include "test_SAX.h" #include "test_SAX.h"
//////////////////////////////////////////////// ////////////////////////////////////////////////
int main(int argc, char* argv[]) int main(int argc, const char* argv[])
{ {
TestRunner runner; TestRunner runner;

View file

@ -7,7 +7,7 @@
#include "xpath_test_suite.hpp" #include "xpath_test_suite.hpp"
///////////////////////////////////////// /////////////////////////////////////////
int main(int argc, char** argv) int main(int argc, const char** argv)
{ {
std::cout << "Hello" << std::endl; std::cout << "Hello" << std::endl;

View file

@ -16,7 +16,7 @@
#include "execute_test.hpp" #include "execute_test.hpp"
template<class string_type, class string_adaptor> template<class string_type, class string_adaptor>
void XPath_test_suite(int argc, char** argv) void XPath_test_suite(int argc, const char** argv)
{ {
TestRunner runner; TestRunner runner;

View file

@ -11,7 +11,7 @@
template<> class Arabica::default_string_adaptor<silly_string> : public silly_string_adaptor { }; template<> class Arabica::default_string_adaptor<silly_string> : public silly_string_adaptor { };
///////////////////////////////////////// /////////////////////////////////////////
int main(int argc, char** argv) int main(int argc, const char** argv)
{ {
std::cout << "Hello" << std::endl; std::cout << "Hello" << std::endl;

View file

@ -7,7 +7,7 @@
#include "../XPath/xpath_test_suite.hpp" #include "../XPath/xpath_test_suite.hpp"
///////////////////////////////////////// /////////////////////////////////////////
int main(int argc, char** argv) int main(int argc, const char** argv)
{ {
std::cout << "Hello" << std::endl; std::cout << "Hello" << std::endl;

View file

@ -79,13 +79,16 @@ std::basic_ostream<CharType, Traits>& operator<<(std::basic_ostream<CharType, Tr
return os; return os;
} // operator<< } // operator<<
namespace std {
template<> template<>
struct std::less<silly_string> : public binary_function<silly_string, silly_string, bool> struct less<silly_string> : public binary_function<silly_string, silly_string, bool>
{ // functor for operator< { // functor for operator<
bool operator()(const silly_string& lhs, const silly_string& rhs) const bool operator()(const silly_string& lhs, const silly_string& rhs) const
{ // apply operator< to operands { // apply operator< to operands
return (silly_string_adaptor::asStdString(lhs) < silly_string_adaptor::asStdString(rhs)); return (silly_string_adaptor::asStdString(lhs) < silly_string_adaptor::asStdString(rhs));
} }
}; };
} // namespace std
#endif #endif