void test2() { Arabica::DOM::Element<string_type, string_adaptor> root; { Arabica::DOM::Document<string_type, string_adaptor> 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); Arabica::DOM::ProcessingInstruction<string_type, string_adaptor> p = d.createProcessingInstruction(SA::construct_from_utf8("target"), SA::construct_from_utf8("data")); d.insertBefore(p, root); } Arabica::DOM::Node<string_type, string_adaptor> n = root.getPreviousSibling(); Arabica::DOM::ProcessingInstruction<string_type, string_adaptor> p = Arabica::DOM::ProcessingInstruction<string_type, string_adaptor>(n); assert(p.getTarget() == SA::construct_from_utf8("target")); assert(p.getData() == SA::construct_from_utf8("data")); } // test2
void test1() { Arabica::DOM::Document<string_type, string_adaptor> d = factory.createDocument(SA::construct_from_utf8(""), SA::construct_from_utf8(""), 0); Arabica::DOM::Element<string_type, string_adaptor> root = d.createElement(SA::construct_from_utf8("root")); d.appendChild(root); assert(root.getPreviousSibling() == 0); assert(root.getNextSibling() == 0); Arabica::DOM::ProcessingInstruction<string_type, string_adaptor> 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); Arabica::DOM::ProcessingInstruction<string_type, string_adaptor> 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