aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorTuan Anh Tran <me@tuananh.org>2019-09-18 10:18:41 +0700
committerArseny Kapoulkine <arseny.kapoulkine@gmail.com>2019-09-17 20:18:41 -0700
commitfd7326fb9153807bc415d960ef33f2041ac722c7 (patch)
treecb645a9c9cfe503b46c0a3013cebed11883086d3 /tests
parentccb63a91865b59d3a4c1dde61fecf12ec085c089 (diff)
downloadpugixml-fd7326fb9153807bc415d960ef33f2041ac722c7.zip
pugixml-fd7326fb9153807bc415d960ef33f2041ac722c7.tar.gz
pugixml-fd7326fb9153807bc415d960ef33f2041ac722c7.tar.bz2
feat: add remove_attributes() and remove_children() (#296)
These functions remove all attributes / child nodes in bulk which is faster than removing them one at a time.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_dom_modify.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/test_dom_modify.cpp b/tests/test_dom_modify.cpp
index 9696827..d2f1a3c 100644
--- a/tests/test_dom_modify.cpp
+++ b/tests/test_dom_modify.cpp
@@ -492,6 +492,19 @@ TEST_XML(dom_node_remove_attribute, "<node a1='v1' a2='v2' a3='v3'><child a4='v4
CHECK_NODE(doc, STR("<node a2=\"v2\"><child/></node>"));
}
+TEST_XML(dom_node_remove_attributes, "<node a1='v1' a2='v2' a3='v3'><child a4='v4'/></node>")
+{
+ CHECK(!xml_node().remove_attributes());
+ xml_node node = doc.child(STR("node"));
+ xml_node child = node.child(STR("child"));
+
+ CHECK(child.remove_attributes());
+ CHECK_NODE(child, STR("<child/>"));
+
+ CHECK(node.remove_attributes());
+ CHECK_NODE(node, STR("<node><child/></node>"));
+}
+
TEST_XML(dom_node_prepend_child, "<node>foo<child/></node>")
{
CHECK(xml_node().prepend_child() == xml_node());
@@ -707,6 +720,19 @@ TEST_XML(dom_node_remove_child, "<node><n1/><n2/><n3/><child><n4/></child></node
CHECK_NODE(doc, STR("<node><n2/><child/></node>"));
}
+TEST_XML(dom_node_remove_children, "<node><n1/><n2/><n3/><child><n4/></child></node>")
+{
+ CHECK(!xml_node().remove_children());
+ xml_node node = doc.child(STR("node"));
+ xml_node child = node.child(STR("child"));
+
+ CHECK(child.remove_children());
+ CHECK_NODE(child, STR("<child/>"));
+
+ CHECK(node.remove_children());
+ CHECK_NODE(node, STR("<node/>"));
+}
+
TEST_XML(dom_node_remove_child_complex, "<node id='1'><n1 id1='1' id2='2'/><n2/><n3/><child><n4/></child></node>")
{
CHECK(doc.child(STR("node")).remove_child(STR("n1")));