racket/collects/web-server/tests/private/mod-map-test.ss
Eli Barzilay 7d50e61c7f * Newlines at EOFs
* Another big chunk of v4-require-isms
* Allow `#lang framework/keybinding-lang' for keybinding files
* Move hierlist sources into "mrlib/hierlist", leave stub behind

svn: r10689
2008-07-09 07:18:06 +00:00

49 lines
1.8 KiB
Scheme

#lang scheme/base
(require (planet "test.ss" ("schematics" "schemeunit.plt" 2))
web-server/private/mod-map
mzlib/serialize
"../util.ss")
(provide mod-map-tests)
(define (simplify-unsimplify v)
(decompress-serial
(compress-serial
v)))
(define (cidentity v)
(deserialize
(simplify-unsimplify
(serialize v))))
(define the-dispatch
`(lambda (k*v)
(lambda (k*v)
((car k*v) k*v))))
(define m00 '(lib "mm00.ss" "web-server" "default-web-root" "htdocs" "lang-servlets"))
(define m01 '(lib "mm01.ss" "web-server" "default-web-root" "htdocs" "lang-servlets"))
(define mod-map-tests
(test-suite
"Module Map"
(test-suite
"(compose decompress-serial compress-serial) is identity"
(test-case "Integers" (check-equal? (cidentity 3) 3))
(test-case "Symbols" (check-equal? (cidentity 'foo) 'foo))
(test-case "Strings" (check-equal? (cidentity "Bar") "Bar"))
(test-case "Vectors" (check-equal? (cidentity (vector 3 1 4)) (vector 3 1 4))))
(test-case
"Use compress-serial and decompress-serial with lang.ss (1)"
(let-values ([(ev) (make-eval/mod-path m00)])
(let* ([k0 (simplify-unsimplify (ev '(serialize (dispatch-start start 'foo))))]
[k1 (simplify-unsimplify (ev `(serialize (dispatch ,the-dispatch (list (deserialize ',k0) 1)))))]
[k2 (simplify-unsimplify (ev `(serialize (dispatch ,the-dispatch (list (deserialize ',k1) 2)))))])
(check-true (= 6 (ev `(dispatch ,the-dispatch (list (deserialize ',k2) 3))))))))
(test-case
"Use compress-serial and decompress-serial with lang.ss (2)"
(let-values ([(ev) (make-eval/mod-path m01)])
(let* ([k0 (simplify-unsimplify (ev '(serialize (dispatch-start start 'foo))))])
(check-true (= 7 (ev `(dispatch ,the-dispatch (list (deserialize ',k0) 7))))))))))