;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-WHO-TEST; Base: 10 -*-
;;; $Header: /usr/local/cvsrep/cl-who/test/simple,v 1.4 2009/01/26 11:10:52 edi Exp $
;;; some simple tests for CL-WHO - entered manually and to be read
;;; in the CL-WHO-TEST package; all forms are expected to return a
;;; true value on success when EVALuated
;;; 1
(string= (with-output-to-string (out)
(with-html-output (out)
(loop for (link . title) in '(("http://zappa.com/" . "Frank Zappa")
("http://marcusmiller.com/" . "Marcus Miller")
("http://www.milesdavis.com/" . "Miles Davis"))
do (htm (:a :href link
(:b (str title)))
:br))))
"Frank Zappa
Marcus Miller
Miles Davis
")
;;; 2
(string= (with-output-to-string (out)
(with-html-output (out nil)
(loop for (link . title) in '(("http://zappa.com/" . "Frank Zappa")
("http://marcusmiller.com/" . "Marcus Miller")
("http://www.milesdavis.com/" . "Miles Davis"))
do (htm (:a :href link
(:b (str title)))
:br))))
"Frank Zappa
Marcus Miller
Miles Davis
")
;;; 3
(string= (with-output-to-string (foo)
(with-html-output (out foo)
(loop for (link . title) in '(("http://zappa.com/" . "Frank Zappa")
("http://marcusmiller.com/" . "Marcus Miller")
("http://www.milesdavis.com/" . "Miles Davis"))
do (htm (:a :href link
(:b (str title)))
:br))))
"Frank Zappa
Marcus Miller
Miles Davis
")
;;; 4
(string= (with-html-output-to-string (out)
(loop for (link . title) in '(("http://zappa.com/" . "Frank Zappa")
("http://marcusmiller.com/" . "Marcus Miller")
("http://www.milesdavis.com/" . "Miles Davis"))
do (htm (:a :href link
(:b (str title)))
:br)))
"Frank Zappa
Marcus Miller
Miles Davis
")
;;; 5
(string= (with-html-output-to-string (out nil)
(loop for (link . title) in '(("http://zappa.com/" . "Frank Zappa")
("http://marcusmiller.com/" . "Marcus Miller")
("http://www.milesdavis.com/" . "Miles Davis"))
do (htm (:a :href link
(:b (str title)))
:br)))
"Frank Zappa
Marcus Miller
Miles Davis
")
;;; 6
(string= (with-html-output-to-string (out nil :prologue nil)
(loop for (link . title) in '(("http://zappa.com/" . "Frank Zappa")
("http://marcusmiller.com/" . "Marcus Miller")
("http://www.milesdavis.com/" . "Miles Davis"))
do (htm (:a :href link
(:b (str title)))
:br)))
"Frank Zappa
Marcus Miller
Miles Davis
")
;;; 7
(eq (array-element-type
(with-html-output-to-string (out nil :element-type 'base-char)
(:br)))
'base-char)
;;; 8
(string= (let ((*attribute-quote-char* #\"))
(with-html-output-to-string (out)
(loop for (link . title) in '(("http://zappa.com/" . "Frank Zappa")
("http://marcusmiller.com/" . "Marcus Miller")
("http://www.milesdavis.com/" . "Miles Davis"))
do (htm (:a :href link
(:b (str title)))
:br))))
"Frank Zappa
Marcus Miller
Miles Davis
")
;;; 9
(string= (with-html-output-to-string (out nil :prologue t)
(loop for (link . title) in '(("http://zappa.com/" . "Frank Zappa")
("http://marcusmiller.com/" . "Marcus Miller")
("http://www.milesdavis.com/" . "Miles Davis"))
do (htm (:a :href link
(:b (str title)))
:br)))
"
Frank Zappa
Marcus Miller
Miles Davis
")
;;; 10
(string= (with-html-output-to-string
(out nil :prologue "")
(:apply (:factorial) (:cn "3")))
"
Marcus Miller
Miles Davis
")
;;; 13
(string= (with-html-output-to-string (out nil :indent 0)
(loop for (link . title) in '(("http://zappa.com/" . "Frank Zappa")
("http://marcusmiller.com/" . "Marcus Miller")
("http://www.milesdavis.com/" . "Miles Davis"))
do (htm (:a :href link
(:b (str title)))
:br)))
"
Frank Zappa
Marcus Miller
Miles Davis
")
;;; 14
(string= (with-html-output-to-string (out nil :indent 3)
(loop for (link . title) in '(("http://zappa.com/" . "Frank Zappa")
("http://marcusmiller.com/" . "Marcus Miller")
("http://www.milesdavis.com/" . "Miles Davis"))
do (htm (:a :href link
(:b (str title)))
:br)))
"
Frank Zappa
Marcus Miller
Miles Davis
")
;;; 15
(string= (with-html-output-to-string (out)
(:table :border 0 :cellpadding 4
(loop for i below 25 by 5
do (htm
(:tr :align "right"
(loop for j from i below (+ i 5)
do (htm
(:td :bgcolor (if (oddp j)
"pink"
"green")
(fmt "~@R" (1+ j))))))))))
"
I | II | III | IV | V |
VI | VII | VIII | IX | X |
XI | XII | XIII | XIV | XV |
XVI | XVII | XVIII | XIX | XX |
XXI | XXII | XXIII | XXIV | XXV |
Fête
Sørensen
naïve
Hühner
Straße
") ;;; 17 (flet ((checkbox (stream name checked &optional value) (with-html-output (stream) (:input :type "checkbox" :name name :checked checked :value value)))) (and (string= (with-output-to-string (s) (checkbox s "foo" t)) "") (string= (with-output-to-string (s) (checkbox s "foo" nil)) "") (string= (with-output-to-string (s) (checkbox s "foo" nil "bar")) "") (string= (with-output-to-string (s) (checkbox s "foo" t "bar")) ""))) ;;; 18 (string= (with-html-output-to-string (out) (:p)) "") ;;; 19 (string= (let ((cl-who:*html-empty-tag-aware-p* nil)) (eval `(with-html-output-to-string (out) (:p)))) "") ;;; 20 (string= (let ((*html-empty-tag-aware-p* t) (*html-empty-tags* '(:p))) (eval `(with-html-output-to-string (out) (:p)))) "") ;;; 21 (string= (with-html-output-to-string (out) (:|Foo| :bar 42)) "Foo
Foo
Bar
Bar