aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile5
-rw-r--r--scratch.lisp1
-rw-r--r--src/package.lisp4
-rw-r--r--src/xfdf.lisp17
-rw-r--r--test/run.lisp3
-rw-r--r--test/xfdf.lisp37
-rw-r--r--xfdf-test.asd17
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)))