From 9269e24a4b67ac1ce31b8a9cfa07585ad6be77bd Mon Sep 17 00:00:00 2001 From: "arseny.kapoulkine@gmail.com" Date: Fri, 23 Mar 2012 03:40:30 +0000 Subject: tests: Added tests for xml_text mutation operations git-svn-id: http://pugixml.googlecode.com/svn/trunk@877 99668b35-9821-0410-8761-19e4c4f06640 --- tests/test_dom_text.cpp | 125 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 123 insertions(+), 2 deletions(-) diff --git a/tests/test_dom_text.cpp b/tests/test_dom_text.cpp index 84815d6..7b51a6b 100644 --- a/tests/test_dom_text.cpp +++ b/tests/test_dom_text.cpp @@ -21,7 +21,7 @@ TEST_XML(dom_text_bool_ops, "foo") generic_bool_ops_test(doc.child(STR("node")).text()); } -TEST_XML_FLAGS(dom_text_get, "foo", parse_default | parse_pi) +TEST_XML_FLAGS(dom_text_get, "foo", parse_default | parse_pi) { xml_node node = doc.child(STR("node")); @@ -29,7 +29,7 @@ TEST_XML_FLAGS(dom_text_get, "foo01true") +{ + xml_node node = doc.child(STR("node")); + xml_text t = node.text(); + + CHECK(!t); + CHECK(t.get() && *t.get() == 0); + CHECK(!node.first_child()); + + node.append_child(node_pcdata); + + CHECK(t); + CHECK_STRING(t.get(), STR("")); + + node.first_child().set_value(STR("test")); + + CHECK(t); + CHECK_STRING(t.get(), STR("test")); +} + +TEST_XML(dom_text_set, "") +{ + xml_node node = doc.child(STR("node")); + xml_text t = node.text(); + + t.set(STR("")); + CHECK(node.first_child().type() == node_pcdata); + CHECK_NODE(node, STR("")); + + t.set(STR("boo")); + CHECK(node.first_child().type() == node_pcdata); + CHECK(node.first_child() == node.last_child()); + CHECK_NODE(node, STR("boo")); + + t.set(STR("foobarfoobar")); + CHECK(node.first_child().type() == node_pcdata); + CHECK(node.first_child() == node.last_child()); + CHECK_NODE(node, STR("foobarfoobar")); +} + +TEST_XML(dom_text_assign, "") +{ + xml_node node = doc.child(STR("node")); + + node.append_child(STR("text1")).text() = STR("v1"); + xml_text() = STR("v1"); + + node.append_child(STR("text2")).text() = -2147483647; + node.append_child(STR("text3")).text() = -2147483647 - 1; + xml_text() = -2147483647 - 1; + + node.append_child(STR("text4")).text() = 4294967295u; + node.append_child(STR("text5")).text() = 4294967294u; + xml_text() = 2147483647; + + node.append_child(STR("text6")).text() = 0.5; + xml_text() = 0.5; + + node.append_child(STR("text7")).text() = true; + xml_text() = true; + + CHECK_NODE(node, STR("v1-2147483647-2147483648429496729542949672940.5true")); +} + +TEST_XML(dom_text_set_value, "") +{ + xml_node node = doc.child(STR("node")); + + CHECK(node.append_child(STR("text1")).text().set(STR("v1"))); + CHECK(!xml_text().set(STR("v1"))); + + CHECK(node.append_child(STR("text2")).text().set(-2147483647)); + CHECK(node.append_child(STR("text3")).text().set(-2147483647 - 1)); + CHECK(!xml_text().set(-2147483647 - 1)); + + CHECK(node.append_child(STR("text4")).text().set(4294967295u)); + CHECK(node.append_child(STR("text5")).text().set(4294967294u)); + CHECK(!xml_text().set(2147483647)); + + CHECK(node.append_child(STR("text6")).text().set(0.5)); + CHECK(!xml_text().set(0.5)); + + CHECK(node.append_child(STR("text7")).text().set(true)); + CHECK(!xml_text().set(true)); + + CHECK_NODE(node, STR("v1-2147483647-2147483648429496729542949672940.5true")); +} + +TEST_XML(dom_text_middle, "notthisonetext") +{ + xml_node node = doc.child(STR("node")); + xml_text t = node.text(); + + CHECK_STRING(t.get(), STR("text")); + t.set(STR("notext")); + + CHECK_NODE(node, STR("notthisonenotext")); + CHECK(node.remove_child(t.data())); + + CHECK(!t); + CHECK_NODE(node, STR("notthisone")); + + t.set(STR("yestext")); + + CHECK(t); + CHECK_NODE(node, STR("notthisoneyestext")); + CHECK(t.data() == node.last_child()); +} + +TEST_XML_FLAGS(dom_text_data, "foo", parse_default | parse_pi) +{ + xml_node node = doc.child(STR("node")); + + CHECK(node.child(STR("a")).text().data() == node.child(STR("a")).first_child()); + CHECK(node.child(STR("b")).text().data() == node.child(STR("b")).first_child()); + CHECK(!node.child(STR("c")).text().data()); + CHECK(!node.child(STR("d")).text().data()); + CHECK(!xml_text().data()); +} + -- cgit v1.2.3