#ifndef test_Siblings_H #define test_Siblings_H #include "../CppUnit/framework/TestCase.h" #include "../CppUnit/framework/TestSuite.h" #include "../CppUnit/framework/TestCaller.h" #include template class SiblingsTest : public TestCase { DOM::DOMImplementation factory; typedef string_adaptor SA; public: SiblingsTest(std::string name) : TestCase(name) { } // SiblingsTest void setUp() { factory = SimpleDOM::DOMImplementation::getDOMImplementation(); } // setUp void test1() { DOM::Document d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0); DOM::Element root = d.createElement(SA::construct_from_utf8("root")); d.appendChild(root); assert(root.getPreviousSibling() == 0); assert(root.getNextSibling() == 0); DOM::ProcessingInstruction p = d.createProcessingInstruction(SA::construct_from_utf8("target"), SA::construct_from_utf8("data")); d.insertBefore(p, root); assert(d.getFirstChild() == p); assert(d.getLastChild() == root); assert(p.getPreviousSibling() == 0); assert(p.getNextSibling() == root); assert(root.getPreviousSibling() == p); assert(root.getNextSibling() == 0); DOM::ProcessingInstruction p2 = d.createProcessingInstruction(SA::construct_from_utf8("target"), SA::construct_from_utf8("data")); d.insertBefore(p2, root); assert(d.getFirstChild() == p); assert(d.getLastChild() == root); assert(p.getPreviousSibling() == 0); assert(p.getNextSibling() == p2); assert(p2.getPreviousSibling() == p); assert(p2.getNextSibling() == root); assert(root.getPreviousSibling() == p2); assert(root.getNextSibling() == 0); d.removeChild(p2); assert(d.getFirstChild() == p); assert(d.getLastChild() == root); assert(p.getPreviousSibling() == 0); assert(p.getNextSibling() == root); assert(p2.getPreviousSibling() == 0); assert(p2.getNextSibling() == 0); assert(root.getPreviousSibling() == p); assert(root.getNextSibling() == 0); d.insertBefore(p2, root); assert(d.getFirstChild() == p); assert(d.getLastChild() == root); assert(p.getPreviousSibling() == 0); assert(p.getNextSibling() == p2); assert(p2.getPreviousSibling() == p); assert(p2.getNextSibling() == root); assert(root.getPreviousSibling() == p2); assert(root.getNextSibling() == 0); d.removeChild(p); assert(d.getFirstChild() == p2); assert(d.getLastChild() == root); assert(p.getPreviousSibling() == 0); assert(p.getNextSibling() == 0); assert(p2.getPreviousSibling() == 0); assert(p2.getNextSibling() == root); assert(root.getPreviousSibling() == p2); assert(root.getNextSibling() == 0); d.replaceChild(p, p2); assert(d.getFirstChild() == p); assert(d.getLastChild() == root); assert(p.getPreviousSibling() == 0); assert(p.getNextSibling() == root); assert(p2.getPreviousSibling() == 0); assert(p2.getNextSibling() == 0); assert(root.getPreviousSibling() == p); assert(root.getNextSibling() == 0); d.appendChild(p2); assert(d.getFirstChild() == p); assert(d.getLastChild() == p2); assert(p.getPreviousSibling() == 0); assert(p.getNextSibling() == root); assert(root.getPreviousSibling() == p); assert(root.getNextSibling() == p2); assert(p2.getPreviousSibling() == root); assert(p2.getNextSibling() == 0); } // test1 void test2() { DOM::Element root; { DOM::Document d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0); root = d.createElement(SA::construct_from_utf8("root")); d.appendChild(root); assert(root.getPreviousSibling() == 0); assert(root.getNextSibling() == 0); DOM::ProcessingInstruction p = d.createProcessingInstruction(SA::construct_from_utf8("target"), SA::construct_from_utf8("data")); d.insertBefore(p, root); } DOM::Node n = root.getPreviousSibling(); DOM::ProcessingInstruction p = DOM::ProcessingInstruction(n); assert(p.getTarget() == SA::construct_from_utf8("target")); assert(p.getData() == SA::construct_from_utf8("data")); } // test2 }; template TestSuite* SiblingsTest_suite() { TestSuite *suiteOfTests = new TestSuite; suiteOfTests->addTest(new TestCaller >("test1", &SiblingsTest::test1)); suiteOfTests->addTest(new TestCaller >("test2", &SiblingsTest::test2)); return suiteOfTests; } // SiblingsTest_suite #endif