diff options
-rw-r--r-- | Makefile | 5 | ||||
-rw-r--r-- | scratch.lisp | 1 | ||||
-rw-r--r-- | src/package.lisp | 4 | ||||
-rw-r--r-- | src/xfdf.lisp | 17 | ||||
-rw-r--r-- | test/run.lisp | 3 | ||||
-rw-r--r-- | test/xfdf.lisp | 37 | ||||
-rw-r--r-- | xfdf-test.asd | 17 |
7 files changed, 81 insertions, 3 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..cc12c71 --- /dev/null +++ b/Makefile @@ -0,0 +1,5 @@ +LISP := sbcl + +.PHONY: test +test: + $(LISP) --load test/run.lisp diff --git a/scratch.lisp b/scratch.lisp new file mode 100644 index 0000000..7e2d577 --- /dev/null +++ b/scratch.lisp @@ -0,0 +1 @@ +(ql:quickload "xfdf-test") diff --git a/src/package.lisp b/src/package.lisp index d535a24..e914975 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -1,2 +1,4 @@ (defpackage :xfdf - (:use :cl)) + (:use :cl) + + (:export #:write-xfdf)) diff --git a/src/xfdf.lisp b/src/xfdf.lisp index 315c63c..a61fcdd 100644 --- a/src/xfdf.lisp +++ b/src/xfdf.lisp @@ -1,13 +1,26 @@ (in-package :xfdf) (defun write-xfdf (output-stream fields) - (format output-stream "<?xml version=\"1.0\" encoding=\"UTF-8\"?> + (format output-stream "~ +<?xml version=\"1.0\" encoding=\"UTF-8\"?> <xfdf xmlns=\"http://ns.adobe.com/xfdf/\" xml:space=\"preserve\"> <fields> ") ;; TODO ; (loop do) + (format output-stream " <field name=\"checkbox-on\"> + <value>Yes</value> + </field> + <field name=\"checkbox-off\"> + <value>Off</value> + </field> + <field name=\"text\"> + <value>123 Fake Street, Springfield</value> + </field> +") (format output-stream " </fields> -</xfdf>")) +</xfdf>") + + output-stream) diff --git a/test/run.lisp b/test/run.lisp new file mode 100644 index 0000000..067bcff --- /dev/null +++ b/test/run.lisp @@ -0,0 +1,3 @@ +(ql:quickload "xfdf-test") +(asdf:test-system :xfdf-test) +(quit) diff --git a/test/xfdf.lisp b/test/xfdf.lisp new file mode 100644 index 0000000..87accaf --- /dev/null +++ b/test/xfdf.lisp @@ -0,0 +1,37 @@ +(defpackage :xfdf-test + (:use :cl + :1am + :xfdf) + + ; (:export #:run) + ) + +(in-package :xfdf-test) + +; (defun run () +; (1am:run)) + +(test generates-xfdf-xml + (let ((xfdf-string + (with-output-to-string (xfdf-stream) + (xfdf:write-xfdf + xfdf-stream + '(("checkbox-on" . T) + ("checkbox-off" . nil) + ("text" . "123 Fake Street, Springfield")))))) + (is (string= + xfdf-string + "<?xml version=\"1.0\" encoding=\"UTF-8\"?> +<xfdf xmlns=\"http://ns.adobe.com/xfdf/\" xml:space=\"preserve\"> + <fields> + <field name=\"checkbox-on\"> + <value>Yes</value> + </field> + <field name=\"checkbox-off\"> + <value>Off</value> + </field> + <field name=\"text\"> + <value>123 Fake Street, Springfield</value> + </field> + </fields> +</xfdf>")))) diff --git a/xfdf-test.asd b/xfdf-test.asd new file mode 100644 index 0000000..9a5b0ab --- /dev/null +++ b/xfdf-test.asd @@ -0,0 +1,17 @@ +(asdf:defsystem xfdf-test + :description "Test suite for xfdf" + :version "0.0.1" + :license "GPL-3.0-or-later" + :author "Teddy Wing" + + :depends-on (:1am + :xfdf) + + :components ((:module "test" + :serial t + :components ((:file "xfdf")))) + + :perform (test-op + (op system) + ; (symbol-call :xfdf-test :run) + (symbol-call :1am :run))) |