From 630be2edb3110b9627718bd7b735348e4940fdd4 Mon Sep 17 00:00:00 2001 From: "arseny.kapoulkine" Date: Sun, 26 Sep 2010 19:01:36 +0000 Subject: tests: Added node_doctype and parse_doctype tests git-svn-id: http://pugixml.googlecode.com/svn/trunk@757 99668b35-9821-0410-8761-19e4c4f06640 --- tests/test_dom_modify.cpp | 65 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 62 insertions(+), 3 deletions(-) (limited to 'tests/test_dom_modify.cpp') diff --git a/tests/test_dom_modify.cpp b/tests/test_dom_modify.cpp index 46b0543..eefda58 100644 --- a/tests/test_dom_modify.cpp +++ b/tests/test_dom_modify.cpp @@ -514,13 +514,16 @@ TEST_XML(dom_node_copy_crossdoc, "") CHECK_NODE(newdoc, STR("")); } -TEST_XML_FLAGS(dom_node_copy_types, "pcdata", parse_default | parse_pi | parse_comments | parse_declaration) +TEST_XML_FLAGS(dom_node_copy_types, "pcdata", parse_full) { doc.append_copy(doc.child(STR("root"))); - CHECK_NODE(doc, STR("pcdatapcdata")); + CHECK_NODE(doc, STR("pcdatapcdata")); doc.insert_copy_before(doc.first_child(), doc.first_child()); - CHECK_NODE(doc, STR("pcdatapcdata")); + CHECK_NODE(doc, STR("pcdatapcdata")); + + doc.insert_copy_after(doc.first_child().next_sibling().next_sibling(), doc.first_child()); + CHECK_NODE(doc, STR("pcdatapcdata")); } TEST_XML(dom_attr_assign_large_number, "") @@ -549,6 +552,16 @@ TEST(dom_node_declaration_name) CHECK_NODE(doc, STR("")); } +TEST(dom_node_declaration_attributes) +{ + xml_document doc; + xml_node node = doc.append_child(node_declaration); + node.append_attribute(STR("version")) = STR("1.0"); + node.append_attribute(STR("encoding")) = STR("utf-8"); + + CHECK_NODE(doc, STR("")); +} + TEST(dom_node_declaration_top_level) { xml_document doc; @@ -677,3 +690,49 @@ TEST(dom_node_memory_limit) CHECK(doc.remove_child(doc.first_child())); } } + +TEST(dom_node_doctype_top_level) +{ + xml_document doc; + doc.append_child().set_name(STR("node")); + + xml_node node = doc.first_child(); + node.append_child(node_pcdata).set_value(STR("text")); + + CHECK(node.insert_child_before(node_doctype, node.first_child()) == xml_node()); + CHECK(node.insert_child_after(node_doctype, node.first_child()) == xml_node()); + CHECK(node.append_child(node_doctype) == xml_node()); + + CHECK_NODE(doc, STR("text")); + + CHECK(doc.insert_child_before(node_doctype, node)); + CHECK(doc.insert_child_after(node_doctype, node)); + CHECK(doc.append_child(node_doctype)); + + CHECK_NODE(doc, STR("text")); +} + +TEST(dom_node_doctype_copy) +{ + xml_document doc; + doc.append_child(node_doctype); + + doc.append_child().set_name(STR("node")); + + doc.last_child().append_copy(doc.first_child()); + + CHECK_NODE(doc, STR("")); +} + +TEST(dom_node_doctype_value) +{ + xml_document doc; + xml_node node = doc.append_child(node_doctype); + + CHECK(node.type() == node_doctype); + CHECK_STRING(node.value(), STR("")); + CHECK_NODE(node, STR("")); + + CHECK(node.set_value(STR("id [ foo ]"))); + CHECK_NODE(node, STR("")); +} -- cgit v1.2.3