diff options
author | Tuan Anh Tran <me@tuananh.org> | 2019-09-18 10:18:41 +0700 |
---|---|---|
committer | Arseny Kapoulkine <arseny.kapoulkine@gmail.com> | 2019-09-17 20:18:41 -0700 |
commit | fd7326fb9153807bc415d960ef33f2041ac722c7 (patch) | |
tree | cb645a9c9cfe503b46c0a3013cebed11883086d3 /tests | |
parent | ccb63a91865b59d3a4c1dde61fecf12ec085c089 (diff) | |
download | pugixml-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.cpp | 26 |
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"))); |