--- /dev/null
+;;;; -*- 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")))