]> gitweb.factorcode.org Git - factor.git/blob - extra/furnace/furnace-tests.factor
223b20455d644280099728a7ecbde47a6897fecd
[factor.git] / extra / furnace / furnace-tests.factor
1 IN: furnace.tests
2 USING: http.server.dispatchers http.server.responses
3 http.server furnace tools.test kernel namespaces accessors
4 io.streams.string ;
5 TUPLE: funny-dispatcher < dispatcher ;
6
7 : <funny-dispatcher> funny-dispatcher new-dispatcher ;
8
9 TUPLE: base-path-check-responder ;
10
11 C: <base-path-check-responder> base-path-check-responder
12
13 M: base-path-check-responder call-responder*
14     2drop
15     "$funny-dispatcher" resolve-base-path
16     "text/plain" <content> ;
17
18 [ ] [
19     <dispatcher>
20         <dispatcher>
21             <funny-dispatcher>
22                 <base-path-check-responder> "c" add-responder
23             "b" add-responder
24         "a" add-responder
25     main-responder set
26 ] unit-test
27
28 [ "/a/b/" ] [
29     V{ } responder-nesting set
30     "a/b/c" split-path main-responder get call-responder body>>
31 ] unit-test
32
33 [ "<input type='hidden' name='foo' value='&amp;&amp;&amp;'/>" ]
34 [ [ "&&&" "foo" hidden-form-field ] with-string-writer ]
35 unit-test