summary refs log tree commit diff stats
path: root/tests/stdlib/thtmlparser.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/stdlib/thtmlparser.nim')
-rw-r--r--tests/stdlib/thtmlparser.nim41
1 files changed, 31 insertions, 10 deletions
diff --git a/tests/stdlib/thtmlparser.nim b/tests/stdlib/thtmlparser.nim
index 0457585d0..853a1c0cc 100644
--- a/tests/stdlib/thtmlparser.nim
+++ b/tests/stdlib/thtmlparser.nim
@@ -1,14 +1,18 @@
 discard """
+  matrix: "--mm:refc; --mm:orc"
+  targets: "c js"
   output: '''
-@[]
 true
+https://example.com/test?format=jpg&name=orig##
+https://example.com/test?format=jpg&name=orig##text
+https://example.com/test?format=jpg##text
 '''
 """
 import htmlparser
 import xmltree
 import strutils
 from streams import newStringStream
-
+import std/assertions
 
 block t2813:
   const
@@ -37,14 +41,14 @@ block t2813:
     """
   var errors: seq[string] = @[]
   let tree = parseHtml(newStringStream(html), "test.html", errors)
-  echo errors # Errors: </thead> expected,...
+  doAssert errors.len == 0 # Errors: </thead> expected,...
 
   var len = tree.findAll("tr").len # len = 6
   var rows: seq[XmlNode] = @[]
   for n in tree.findAll("table"):
     n.findAll("tr", rows)  # len = 2
     break
-  assert tree.findAll("tr").len == rows.len
+  doAssert tree.findAll("tr").len == rows.len
 
 
 block t2814:
@@ -107,21 +111,21 @@ block t6154:
   doAssert ps[0].attrsLen == 2
   doAssert ps[0].attr("class") == "foo"
   doAssert ps[0].attr("id") == "bar"
-  doassert ps[0].len == 0
+  doAssert ps[0].len == 0
 
   doAssert ps[1].attrsLen == 1
   doAssert ps[1].attr("something") == "\tfoo\tbar²"
-  doassert ps[1].len == 0
+  doAssert ps[1].len == 0
 
   doAssert ps[2].attrsLen == 2
   doAssert ps[2].attr("something") == "\tfoo\tbar²"
   doAssert ps[2].attr("foo") == "bloo"
-  doassert ps[2].len == 0
+  doAssert ps[2].len == 0
 
   doAssert ps[3].attrsLen == 2
   doAssert ps[3].attr("class") == "foo2"
   doAssert ps[3].attr("id") == "bar2"
-  doassert ps[3].len == 0
+  doAssert ps[3].len == 0
 
   doAssert ps[4].attrsLen == 1
   doAssert ps[4].attr("wrong") == ""
@@ -130,9 +134,26 @@ block t6154:
   doAssert ps[5].attr("data-foo") == ""
   doAssert ps[5].attr("data-bar") == "correct!"
   doAssert ps[5].attr("enabled") == ""
-  doassert ps[5].len == 0
+  doAssert ps[5].len == 0
 
   doAssert ps[6].attrsLen == 2
   doAssert ps[6].attr("quux") == ""
   doAssert ps[6].attr("whatever") == ""
-  doassert ps[6].len == 0
+  doAssert ps[6].len == 0
+
+# bug #11713, #1034
+var content = """
+# with &
+<img src="https://example.com/test?format=jpg&name=orig" alt="">
+<img src="https://example.com/test?format=jpg&name=orig" alt="text">
+
+# without &
+<img src="https://example.com/test?format=jpg" alt="text">
+"""
+
+var
+  stream = newStringStream(content)
+  body = parseHtml(stream)
+
+for y in body.findAll("img"):
+  echo y.attr("src"), "##", y.attr("alt")