add a script for simple tests for selectors - webdump_tests - Testfiles for webdump
HTML git clone git://git.codemadness.org/webdump_tests
DIR Log
DIR Files
DIR Refs
DIR README
---
DIR commit 98bfa08046197a714af34f730a5d3662f83af8a9
DIR parent fb05ce8868101e919271f386c5ff9e901e5cd740
HTML Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Sat, 19 Sep 2026 18:15:13 +0200
add a script for simple tests for selectors
Diffstat:
A selector_tests.sh | 52 +++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+), 0 deletions(-)
---
DIR diff --git a/selector_tests.sh b/selector_tests.sh
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+webdump="./webdump"
+#webdump="webdump"
+
+testmatch() {
+ sel="$1"
+ input="$2"
+ output=$(printf '%s' "$input" | "$webdump" -s "$sel")
+ if test "$output" = " MATCH"; then
+ printf 'OK: %s\n' "$sel"
+ return 0
+ fi
+ echo "selector ${sel} does not match (it should have)" >&2
+ printf 'output:\n%s\n' "${output}" >&2
+ exit 1
+}
+
+testnomatch() {
+ sel="$1"
+ input="$2"
+ output=$(printf '%s' "$input" | "$webdump" -s "$sel")
+ if test "$output" = ""; then
+ printf 'OK: %s\n' "$sel"
+ return 0
+ fi
+ echo "selector ${sel} does not match (it should have)" >&2
+ printf 'output:\n%s\n' "${output}" >&2
+ exit 1
+}
+
+testmatch '#someid' '<span id="someid">MATCH</span><span>NO MATCH</span>'
+testmatch 'span#someid' '<span id="someid">MATCH</span><span>NO MATCH</span>'
+testmatch '.someclass' '<span class="someclass">MATCH</span><span>NO MATCH</span>'
+testmatch 'span.someclass' '<span class="someclass">MATCH</span><span>NO MATCH</span>'
+testmatch 'span@0' '<span class="someclass">MATCH</span><span>NO MATCH</span>'
+testmatch 'span.someclass@0' '<span class="someclass">MATCH</span><span>NO MATCH</span>'
+testmatch '@0' '<span class="someclass">MATCH</span><span>NO MATCH</span>'
+
+# nested
+testmatch '#someid' '<div class="main"><span id="someid">MATCH</span><span>NO MATCH</span></div>'
+testmatch 'div #someid' '<div class="main"><span id="someid">MATCH</span><span>NO MATCH</span></div>'
+testnomatch 'span #someid' '<div class="main"><span id="someid">MATCH</span><span>NO MATCH</span></div>'
+testmatch 'span #someid' '<div class="main"><span><span id="someid">MATCH</span><span>NO MATCH</span></span></div>'
+testmatch 'html nav a' '<html><nav><div class="main"><span><a id="someid">MATCH</a><span>NO MATCH</span></span></div></html>'
+testnomatch 'html body nav a' '<html><nav><div class="main"><span><a id="someid">MATCH</a><span>NO MATCH</span></span></div></html>'
+testnomatch 'html body nav ul a' '<html><nav><div class="main"><span><a id="someid">MATCH</a><span>NO MATCH</span></span></div></html>'
+testnomatch 'html body nav ul li a' '<html><nav><div class="main"><span><a id="someid">MATCH</a><span>NO MATCH</span></span></div></html>'
+
+# multiple classes
+testmatch '.someclass.anotherclass' '<span class="someclass anotherclass">MATCH</span><span>NO MATCH</span>'
+testnomatch '.someclass.anotherclass' '<span class="someclass anotherclass2">MATCH</span><span>NO MATCH</span>'