diff options
Diffstat (limited to 'furnace/callbacks/callbacks-tests.factor')
-rw-r--r-- | furnace/callbacks/callbacks-tests.factor | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/furnace/callbacks/callbacks-tests.factor b/furnace/callbacks/callbacks-tests.factor new file mode 100644 index 0000000..f9302de --- /dev/null +++ b/furnace/callbacks/callbacks-tests.factor @@ -0,0 +1,67 @@ +USING: furnace furnace.actions furnace.callbacks accessors +http http.server http.server.responses tools.test +namespaces io fry sequences +splitting kernel hashtables continuations ; +IN: furnace.callbacks.tests + +[ 123 ] [ + [ + <request> "GET" >>method init-request + [ + exit-continuation set + { } + <action> [ [ "hello" print 123 ] show-final ] >>display + <callback-responder> + call-responder + ] callcc1 + ] with-scope +] unit-test + +[ + <action> [ + [ + "hello" print + <html-content> + ] show-page + "byebye" print + [ 123 ] show-final + ] >>display + <callback-responder> "r" set + + [ 123 ] [ + <request> init-request + + [ + exit-continuation set + <request> "GET" >>method init-request + { } "r" get call-responder + ] callcc1 + + body>> first + + <request> + "GET" >>method + dup url>> rot cont-id associate >>query drop + dup url>> "/" >>path drop + init-request + + [ + exit-continuation set + { } + "r" get call-responder + ] callcc1 + + ! get-post-get + <request> + "GET" >>method + dup url>> rot "location" header query>> >>query drop + dup url>> "/" >>path drop + init-request + + [ + exit-continuation set + { } + "r" get call-responder + ] callcc1 + ] unit-test +] with-scope |