r5478: *** empty log message ***
[wol.git] / tests.lisp
diff --git a/tests.lisp b/tests.lisp
new file mode 100644 (file)
index 0000000..0ab814f
--- /dev/null
@@ -0,0 +1,48 @@
+;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
+;;;; *************************************************************************
+;;;; FILE IDENTIFICATION
+;;;;
+;;;; Id:      $Id: tests.lisp,v 1.1 2003/08/09 21:42:24 kevin Exp $
+;;;; Purpose: Self Test suite for WOL
+;;;;
+;;;; *************************************************************************
+
+(in-package #:cl-user)
+(defpackage #:wol-tests
+  (:use #:xlunit #:cl #:wol #:puri)
+  (:export #:do-tests))
+(in-package #:wol-tests)
+
+(import '(wol::req-recode-uri-sans-session-id wol::request-uri
+         wol::request-decoded-uri-path))
+
+;; Helper test fixture
+
+(defclass test-url (test-case)
+  ((req :accessor req)))
+
+(defmethod set-up ((self test-url))
+  (let ((uri (parse-uri "/~abcdefg~/index.html")))
+    (setf (req self) (make-instance 'wol::http-request
+                      :raw-uri uri
+                      :uri uri))))
+
+(def-test-method test-returned-session ((self test-url) :run nil)
+  (assert-equal "abcdefg" (req-recode-uri-sans-session-id (req self))))
+(def-test-method test-recomputed-uri ((self test-url) :run nil)
+  (req-recode-uri-sans-session-id (req self))
+  (assert-equal (render-uri (request-uri (req self)) nil)
+               "/index.html"))
+
+(def-test-method test-decoded-uri ((self test-url) :run nil)
+  (req-recode-uri-sans-session-id (req self))
+  (assert-equal (request-decoded-uri-path (req self))
+               "/index.html"))
+
+
+(textui-test-run (get-suite test-url))
+
+(defun do-tests ()
+  (or (was-successful (run (get-suite test-url)))
+      (error "Failed tests")))