aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2023-10-21 16:58:44 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2023-10-21 16:58:44 +0200
commit3513efa939a3811f221ea82ff8d91467c9aea6c1 (patch)
treee6f1c6b26aafad94f651cbe84b707f644093ebc5 /tests
parentChange namespaced sxml to use new object system. (diff)
downloadcalp-3513efa939a3811f221ea82ff8d91467c9aea6c1.tar.gz
calp-3513efa939a3811f221ea82ff8d91467c9aea6c1.tar.xz
Add tests for sxml namespaced + fix 'root-element'.
* Removes on-root-element since it was never used * Handle the case of root-elemnt with no *TOP*
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/sxml/sxml-namespaced-util.scm42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/unit/sxml/sxml-namespaced-util.scm b/tests/unit/sxml/sxml-namespaced-util.scm
new file mode 100644
index 00000000..6f48105f
--- /dev/null
+++ b/tests/unit/sxml/sxml-namespaced-util.scm
@@ -0,0 +1,42 @@
+(define-module (test sxml-namespaced-util)
+ :use-module (srfi srfi-64)
+ :use-module (sxml namespaced)
+ :use-module (sxml namespaced util))
+
+(define ns (gensym "xmlns-"))
+
+(test-equal "XML Hash key"
+ (cons 'a ns)
+ (xml-element-hash-key (xml 'a ns)))
+
+(test-group "Find element"
+ (let ((el `(,(xml ns 'a))))
+ (test-eq "Found element is the source element"
+ el
+ (find-element
+ (car el)
+ `((,(xml ns 'b)) ,el (,(xml ns 'a))))))
+ ;; TODO Test "find" failure
+ )
+
+(test-group "Element Match"
+ (test-assert "Positive element match"
+ (element-matches? (xml 'a ns)
+ (list (xml 'a ns)
+ "Content here")))
+ (test-assert "Negative element match"
+ (not (element-matches? (xml 'a ns)
+ (list (xml 'b ns)
+ "Content here")))))
+
+(let ((el `(,(xml 'a) "Content")))
+ (test-group "root-element"
+ (test-equal "With PI"
+ el (root-element `(*TOP* ,(pi-element 'doctype "HTML") ,el)))
+ (test-equal "Without PI"
+ el (root-element `(*TOP* ,el)))
+
+ (test-equal "Bare"
+ el (root-element el))))
+
+'((sxml namespaced util))