diff options
-rw-r--r-- | test/old_http_SUITE.erl | 47 | ||||
-rw-r--r-- | test/rfc7230_SUITE.erl | 16 |
2 files changed, 16 insertions, 47 deletions
diff --git a/test/old_http_SUITE.erl b/test/old_http_SUITE.erl index 6d7c2c8..ff0d4b2 100644 --- a/test/old_http_SUITE.erl +++ b/test/old_http_SUITE.erl @@ -102,14 +102,6 @@ init_dispatch(_) -> %% Convenience functions. -do_raw(Data, Config) -> - Client = raw_open(Config), - ok = raw_send(Client, Data), - case catch raw_recv_head(Client) of - {'EXIT', _} -> closed; - Resp -> element(2, cow_http:parse_status_line(Resp)) - end. - do_get(Path, Config) -> ConnPid = gun_open(Config), Ref = gun:get(ConnPid, Path), @@ -135,34 +127,6 @@ error_init_after_reply(Config) -> {response, nofin, 200, _} = gun:await(ConnPid, Ref), ok. -keepalive_nl(Config) -> - ConnPid = gun_open(Config), - Refs = [begin - Ref = gun:get(ConnPid, "/", [{<<"connection">>, <<"keep-alive">>}]), - dbg_send_raw(ConnPid, <<"\r\n">>), - Ref - end || _ <- lists:seq(1, 10)], - _ = [begin - {response, nofin, 200, Headers} = gun:await(ConnPid, Ref), - false = lists:keymember(<<"connection">>, 1, Headers) - end || Ref <- Refs], - ok. - -keepalive_stream_loop(Config) -> - ConnPid = gun_open(Config), - Refs = [begin - Ref = gun:post(ConnPid, "/loop_stream_recv", - [{<<"content-type">>, <<"application/octet-stream">>}]), - _ = [gun:data(ConnPid, Ref, nofin, << ID:32 >>) - || ID <- lists:seq(1, 250)], - gun:data(ConnPid, Ref, fin, <<>>), - Ref - end || _ <- lists:seq(1, 10)], - _ = [begin - {response, fin, 200, _} = gun:await(ConnPid, Ref) - end || Ref <- Refs], - ok. - rest_param_all(Config) -> ConnPid = gun_open(Config), %% Accept without param. @@ -361,14 +325,3 @@ rest_resource_etags_if_none_match(Config) -> [{<<"if-none-match">>, ETag}]), {Ret, Type} end || {Status, ETag, Type} <- Tests]. - -dbg_send_raw(ConnPid, Data) -> - #{ - socket := Socket, - transport := Transport - } = gun:info(ConnPid), - _ = case Transport of - tcp -> gen_tcp:send(Socket, Data); - tls -> ssl:send(Socket, Data) - end, - ok. diff --git a/test/rfc7230_SUITE.erl b/test/rfc7230_SUITE.erl index fbf4da9..6aefd8e 100644 --- a/test/rfc7230_SUITE.erl +++ b/test/rfc7230_SUITE.erl @@ -1459,6 +1459,22 @@ limit_requests_keepalive(Config) -> {_, <<"close">>} = lists:keyfind(<<"connection">>, 1, RespHeaders), gun_down(ConnPid). +accept_at_least_1_empty_line_keepalive(Config) -> + doc("A configurable number of empty lines (CRLF) preceding the request " + "must be ignored. At least 1 empty line must be ignored. (RFC7230 3.5)"), + #{code := 200, client := Client} = do_raw(Config, + "GET / HTTP/1.1\r\n" + "Host: localhost\r\n" + "\r\n" + %% We send an extra CRLF that must be ignored. + "\r\n"), + ok = raw_send(Client, + "GET / HTTP/1.1\r\n" + "Host: localhost\r\n" + "\r\n"), + {'HTTP/1.1', 200, _, _} = cow_http:parse_status_line(raw_recv_head(Client)), + ok. + %skip_request_body_by_closing_connection(Config) -> %%A server that doesn't want to read the entire body of a message %%must close the connection, if possible after sending the "close" |