racket/collects/web-server/tools/test-send-assertions.ss
2005-05-27 18:56:37 +00:00

62 lines
2.1 KiB
Scheme

(module test-send-assertions mzscheme
(require (lib "test.ss" "schemeunit")
(lib "servlet.ss" "web-server")
"send-assertions.ss"
)
(provide test-send-assertions)
(define test-send-assertions
(make-test-suite
"Test the test suite that tests send/*"
(make-test-case
"Test send/finish"
(assert-output-response/suspended
(lambda () (send/finish '(p "The output")))
'()
'(p () "The output")))
(make-test-case
"Test send/suspend and send/finish"
(assert-output-response/suspended
(lambda ()
(let ((num (extract-binding/single
'num
(request-bindings
(send/suspend
(lambda (k-url)
`(form ((action ,k-url)) (input ((name "num"))))))))))
(send/finish `(p ,num))))
(list (cons (lambda (x) (cadr (car (cadr x))))
(list (cons 'num "5"))))
'(p () "5")))
(make-test-case
"Test send/suspend/callback once"
(assert-output-response/suspended
(lambda ()
(send/suspend/callback
`(p () (a ((href ,(lambda (req) (send/finish '(p "Finished")))))
"Next"))))
(list (cons (lambda (x) (cadr (car (cadr (caddr x)))))
'()))
'(p () "Finished")))
(make-test-case
"Test mutual send/suspend/callbacks"
(assert-output-response/suspended
(lambda ()
(letrec ((p1 `(p () (a ((href ,(lambda (req) (send/suspend/callback p2))))
"Next")))
(p2 `(p () (a ((href ,(lambda (req) (send/suspend/callback p1))))
"Previous"))))
(send/suspend/callback p1)))
(list (cons (lambda (x) (cadr (car (cadr (caddr x))))) '())
(cons (lambda (x) (cadr (car (cadr (caddr x))))) '()))
`(p () (a ((href ,(make-unknown))) "Next")))))
)
)