diff options
author | Loïc Hoguin <[email protected]> | 2013-04-12 14:16:59 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2013-04-12 14:32:37 +0200 |
commit | 2aabc73045daa1c06d73c76ffc442ee7ebe38d14 (patch) | |
tree | 507f2cef335e141227a02a36c933d6567c87b95d /test | |
parent | 1eb2bda3041ccc87690d74087011074db6699147 (diff) | |
download | cowboy-2aabc73045daa1c06d73c76ffc442ee7ebe38d14.tar.gz cowboy-2aabc73045daa1c06d73c76ffc442ee7ebe38d14.tar.bz2 cowboy-2aabc73045daa1c06d73c76ffc442ee7ebe38d14.zip |
Ensure we can fetch the body in the info/3 function of loop handlers
Diffstat (limited to 'test')
-rw-r--r-- | test/http_SUITE.erl | 3 | ||||
-rw-r--r-- | test/http_handler_loop_recv.erl | 18 |
2 files changed, 21 insertions, 0 deletions
diff --git a/test/http_SUITE.erl b/test/http_SUITE.erl index 14bba9c..34a7be1 100644 --- a/test/http_SUITE.erl +++ b/test/http_SUITE.erl @@ -367,6 +367,7 @@ init_dispatch(Config) -> {"/patch", rest_patch_resource, []}, {"/resetags", rest_resource_etags, []}, {"/rest_expires", rest_expires, []}, + {"/loop_recv", http_handler_loop_recv, []}, {"/loop_timeout", http_handler_loop_timeout, []}, {"/", http_handler, []} ]} @@ -466,6 +467,8 @@ The document has moved "Set-Cookie: ", HugeCookie, "\r\n\r\n"]}, {200, "\r\n\r\n\r\n\r\n\r\nGET / HTTP/1.1\r\nHost: localhost\r\n\r\n"}, {200, "GET http://proxy/ HTTP/1.1\r\nHost: localhost\r\n\r\n"}, + {200, <<"POST /loop_recv HTTP/1.1\r\nHost: localhost\r\n" + "Content-Length: 100000\r\n\r\n", 0:100000/unit:8 >>}, {400, "\n"}, {400, "Garbage\r\n\r\n"}, {400, "\r\n\r\n\r\n\r\n\r\n\r\n"}, diff --git a/test/http_handler_loop_recv.erl b/test/http_handler_loop_recv.erl new file mode 100644 index 0000000..4d0a321 --- /dev/null +++ b/test/http_handler_loop_recv.erl @@ -0,0 +1,18 @@ +%% Feel free to use, reuse and abuse the code in this file. + +-module(http_handler_loop_recv). +-behaviour(cowboy_loop_handler). +-export([init/3, info/3, terminate/3]). + +init({_, http}, Req, _) -> + self() ! recv_timeout, + {loop, Req, undefined, 500, hibernate}. + +info(recv_timeout, Req, State) -> + {ok, Body, Req1} = cowboy_req:body(Req), + 100000 = byte_size(Body), + {ok, Req2} = cowboy_req:reply(200, Req1), + {ok, Req2, State}. + +terminate({normal, shutdown}, _, _) -> + ok. |