summary refs log tree commit diff stats
path: root/tests/xml/ttree_insert.nim
diff options
context:
space:
mode:
authorMichael Voronin <survivor.mail@gmail.com>2022-12-22 10:32:12 +0300
committerGitHub <noreply@github.com>2022-12-22 08:32:12 +0100
commit7931bdac956cb3ad6734eab91c62920f4e80f919 (patch)
tree08f275175573391aa327587198a30fbb685343cf /tests/xml/ttree_insert.nim
parent93b59da4902886cd68dd7df1dce09a1b455a06dc (diff)
downloadNim-7931bdac956cb3ad6734eab91c62920f4e80f919.tar.gz
Feature/xmltree additions (#20988)
* [change] add/insert/delete family of xmltree expanded with several variations. Added replace methods family

* [change] Lifted child limitations on insert methods (consulted with @araq)

* [tests] add/insert/replace/delete of xmltree XmlNodes tests added
Diffstat (limited to 'tests/xml/ttree_insert.nim')
-rw-r--r--tests/xml/ttree_insert.nim53
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/xml/ttree_insert.nim b/tests/xml/ttree_insert.nim
new file mode 100644
index 000000000..b2941395b
--- /dev/null
+++ b/tests/xml/ttree_insert.nim
@@ -0,0 +1,53 @@
+discard """
+  output: '''
+<body>
+  <div>Some text in body</div>
+  <div>Some more text in body </div>
+</body>
+<xml>
+  <head>
+    <div>Some text</div>
+    <div>Some more text </div>
+  </head>
+  <body>
+    <div>Some text in body</div>
+    <div>Some more text in body </div>
+  </body>
+</xml>
+'''
+"""
+
+# Test xmltree add/insert/delete/replace operations
+import xmlparser
+import xmltree
+var baseDocHead = """
+<xml>
+  <head>
+    <div>Some text</div>
+    <div>Some more text </div>
+  </head>
+</xml>
+"""
+var baseDocHeadTree = parseXml(baseDocHead)
+var baseDocBody = """
+<body>
+  <div>Some text in body</div>
+  <div>Some more text in body </div>
+</body>
+"""
+var baseDocBodyTree = parseXml(baseDocBody)
+
+proc test_insert() =
+  var testDoc = baseDocHeadTree
+  var newBody = newElement("body")
+  var bodyItems: seq[XmlNode] = @[]
+  for item in baseDocBodyTree.items():
+    bodyItems.insert(item, len(bodyItems))
+  newBody.insert(bodyItems, 1)
+  
+  echo $newBody
+  
+  testDoc.insert(newBody, 1)
+  echo $testDoc
+
+test_insert()