factor/extra/http/server/server-tests.factor

54 lines
1.5 KiB
Factor
Raw Normal View History

2008-02-25 15:53:18 -05:00
USING: http.server tools.test kernel namespaces accessors
2008-02-29 01:57:38 -05:00
new-slots io http math sequences assocs ;
2008-03-01 17:00:45 -05:00
IN: http.server.tests
2007-09-20 18:09:08 -04:00
2008-02-29 01:57:38 -05:00
TUPLE: mock-responder path ;
2008-02-25 15:53:18 -05:00
2008-02-29 01:57:38 -05:00
C: <mock-responder> mock-responder
2008-02-25 15:53:18 -05:00
2008-02-29 01:57:38 -05:00
M: mock-responder call-responder
2008-02-25 15:53:18 -05:00
2nip
path>> on
"text/plain" <content> ;
: check-dispatch ( tag path -- ? )
over off
<request> swap default-host get call-responder
2008-02-29 01:57:38 -05:00
write-response get ;
2008-02-25 15:53:18 -05:00
[
2008-02-29 01:57:38 -05:00
<dispatcher>
"foo" <mock-responder> "foo" add-responder
"bar" <mock-responder> "bar" add-responder
<dispatcher>
"123" <mock-responder> "123" add-responder
2008-02-25 15:53:18 -05:00
"default" <mock-responder> >>default
2008-02-29 01:57:38 -05:00
"baz" add-responder
2008-02-25 15:53:18 -05:00
default-host set
2008-02-29 01:57:38 -05:00
[ "foo" ] [
"foo" default-host get find-responder path>> nip
] unit-test
[ "bar" ] [
"bar" default-host get find-responder path>> nip
] unit-test
2008-02-25 15:53:18 -05:00
[ t ] [ "foo" "foo" check-dispatch ] unit-test
[ f ] [ "foo" "bar" check-dispatch ] unit-test
[ t ] [ "bar" "bar" check-dispatch ] unit-test
[ t ] [ "default" "baz/xxx" check-dispatch ] unit-test
2008-02-29 01:57:38 -05:00
[ t ] [ "default" "baz/xxx//" check-dispatch ] unit-test
[ t ] [ "default" "/baz/xxx//" check-dispatch ] unit-test
2008-02-25 15:53:18 -05:00
[ t ] [ "123" "baz/123" check-dispatch ] unit-test
2008-02-29 01:57:38 -05:00
[ t ] [ "123" "baz///123" check-dispatch ] unit-test
2008-02-25 15:53:18 -05:00
[ t ] [
<request>
"baz" >>path
"baz" default-host get call-responder
dup code>> 300 399 between? >r
2008-02-29 01:57:38 -05:00
header>> "location" swap at "baz/" tail? r> and
2008-02-25 15:53:18 -05:00
] unit-test
] with-scope