62 lines
2.1 KiB
Scheme
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")))))
|
|
|
|
)
|
|
|
|
)
|