Просмотр исходного кода

Move one more old HTTP test case

Loïc Hoguin 6 лет назад
Родитель
Сommit
84e474d212
2 измененных файлов с 16 добавлено и 47 удалено
  1. 0 47
      test/old_http_SUITE.erl
  2. 16 0
      test/rfc7230_SUITE.erl

+ 0 - 47
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.

+ 16 - 0
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"