aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2020-10-03 19:03:22 +0200
committerLoïc Hoguin <[email protected]>2020-10-03 19:03:22 +0200
commit37bf8c409ae341fdebdc062a33cd7fce7ac1f5b5 (patch)
treec980ff2e91a18671ba0ba8d2853e21ce77932f8a /test
parent2f42047d6cec210186d703e31e5fd970b1ea4e33 (diff)
downloadgun-37bf8c409ae341fdebdc062a33cd7fce7ac1f5b5.tar.gz
gun-37bf8c409ae341fdebdc062a33cd7fce7ac1f5b5.tar.bz2
gun-37bf8c409ae341fdebdc062a33cd7fce7ac1f5b5.zip
Fix test suites failing due to previous breaking changes
Diffstat (limited to 'test')
-rw-r--r--test/rfc7231_SUITE.erl29
-rw-r--r--test/socks_SUITE.erl4
2 files changed, 12 insertions, 21 deletions
diff --git a/test/rfc7231_SUITE.erl b/test/rfc7231_SUITE.erl
index 5ef37bd..b1941c6 100644
--- a/test/rfc7231_SUITE.erl
+++ b/test/rfc7231_SUITE.erl
@@ -95,16 +95,6 @@ do_proxy_init(Parent, Transport, Status, ConnectRespHeaders, Delay) ->
inet:setopts(OriginSocket, [{active, true}]),
do_proxy_loop(Transport, ClientSocket, OriginSocket);
true ->
- %% We send a 501 to the subsequent request.
- {ok, _} = case Transport of
- gun_tcp ->
- gen_tcp:recv(ClientSocket, 0, 1000);
- gun_tls ->
- ssl:recv(ClientSocket, 0, 1000)
- end,
- ok = Transport:send(ClientSocket, <<
- "HTTP/1.1 501 Not Implemented\r\n"
- "content-length: 0\r\n\r\n">>),
timer:sleep(2000)
end.
@@ -171,7 +161,7 @@ do_connect_http(OriginScheme, OriginTransport, ProxyTransport) ->
%% @todo Do we still need these handshake_completed messages?
handshake_completed = receive_from(OriginPid),
{up, http} = gun:await(ConnPid, StreamRef),
- _ = gun:get(ConnPid, "/proxied"),
+ _ = gun:get(ConnPid, "/proxied", [], #{tunnel => StreamRef}),
Data = receive_from(OriginPid),
Lines = binary:split(Data, <<"\r\n">>, [global]),
[<<"host: ", Authority/bits>>] = [L || <<"host: ", _/bits>> = L <- Lines],
@@ -226,7 +216,7 @@ do_connect_h2(OriginScheme, OriginTransport, ProxyTransport) ->
{response, fin, 200, _} = gun:await(ConnPid, StreamRef),
handshake_completed = receive_from(OriginPid),
{up, http2} = gun:await(ConnPid, StreamRef),
- _ = gun:get(ConnPid, "/proxied"),
+ _ = gun:get(ConnPid, "/proxied", [], #{tunnel => StreamRef}),
<<_:24, 1:8, _/bits>> = receive_from(OriginPid),
#{
transport := OriginTransport,
@@ -282,7 +272,7 @@ do_connect_through_multiple_proxies(OriginScheme, OriginTransport, ProxiesTransp
{response, fin, 200, _} = gun:await(ConnPid, StreamRef2),
handshake_completed = receive_from(OriginPid),
{up, http} = gun:await(ConnPid, StreamRef2),
- _ = gun:get(ConnPid, "/proxied"),
+ _ = gun:get(ConnPid, "/proxied", [], #{tunnel => StreamRef2}),
Data = receive_from(OriginPid),
Lines = binary:split(Data, <<"\r\n">>, [global]),
[<<"host: ", Authority2/bits>>] = [L || <<"host: ", _/bits>> = L <- Lines],
@@ -323,7 +313,7 @@ connect_delay(_) ->
{response, fin, 201, _} = gun:await(ConnPid, StreamRef),
handshake_completed = receive_from(OriginPid),
{up, http} = gun:await(ConnPid, StreamRef),
- _ = gun:get(ConnPid, "/proxied"),
+ _ = gun:get(ConnPid, "/proxied", [], #{tunnel => StreamRef}),
Data = receive_from(OriginPid),
Lines = binary:split(Data, <<"\r\n">>, [global]),
[<<"host: ", Authority/bits>>] = [L || <<"host: ", _/bits>> = L <- Lines],
@@ -358,7 +348,7 @@ connect_response_201(_) ->
{response, fin, 201, _} = gun:await(ConnPid, StreamRef),
handshake_completed = receive_from(OriginPid),
{up, http} = gun:await(ConnPid, StreamRef),
- _ = gun:get(ConnPid, "/proxied"),
+ _ = gun:get(ConnPid, "/proxied", [], #{tunnel => StreamRef}),
Data = receive_from(OriginPid),
Lines = binary:split(Data, <<"\r\n">>, [global]),
[<<"host: ", Authority/bits>>] = [L || <<"host: ", _/bits>> = L <- Lines],
@@ -405,8 +395,9 @@ do_connect_failure(Status) ->
}),
{request, <<"CONNECT">>, Authority, 'HTTP/1.1', _} = receive_from(ProxyPid),
{response, fin, Status, Headers} = gun:await(ConnPid, StreamRef),
- FailedStreamRef = gun:get(ConnPid, "/proxied"),
- {response, fin, 501, _} = gun:await(ConnPid, FailedStreamRef),
+ %% We cannot do a request because the StreamRef is not a tunnel.
+ FailedStreamRef = gun:get(ConnPid, "/proxied", [], #{tunnel => StreamRef}),
+ {error, {stream_error, {badstate, _}}} = gun:await(ConnPid, FailedStreamRef),
#{
transport := tcp,
protocol := http,
@@ -500,7 +491,7 @@ connect_response_ignore_transfer_encoding(_) ->
{response, fin, 200, Headers} = gun:await(ConnPid, StreamRef),
handshake_completed = receive_from(OriginPid),
{up, http} = gun:await(ConnPid, StreamRef),
- _ = gun:get(ConnPid, "/proxied"),
+ _ = gun:get(ConnPid, "/proxied", [], #{tunnel => StreamRef}),
Data = receive_from(OriginPid),
Lines = binary:split(Data, <<"\r\n">>, [global]),
[<<"host: ", Authority/bits>>] = [L || <<"host: ", _/bits>> = L <- Lines],
@@ -523,7 +514,7 @@ connect_response_ignore_content_length(_) ->
{response, fin, 200, Headers} = gun:await(ConnPid, StreamRef),
handshake_completed = receive_from(OriginPid),
{up, http} = gun:await(ConnPid, StreamRef),
- _ = gun:get(ConnPid, "/proxied"),
+ _ = gun:get(ConnPid, "/proxied", [], #{tunnel => StreamRef}),
Data = receive_from(OriginPid),
Lines = binary:split(Data, <<"\r\n">>, [global]),
[<<"host: ", Authority/bits>>] = [L || <<"host: ", _/bits>> = L <- Lines],
diff --git a/test/socks_SUITE.erl b/test/socks_SUITE.erl
index f912256..f6686a3 100644
--- a/test/socks_SUITE.erl
+++ b/test/socks_SUITE.erl
@@ -390,7 +390,7 @@ do_socks5_through_connect_proxy(OriginScheme, OriginTransport, ProxyTransport) -
{connect, <<"localhost">>, OriginPort} = receive_from(Proxy2Pid),
handshake_completed = receive_from(OriginPid),
Authority2 = iolist_to_binary(["localhost:", integer_to_binary(OriginPort)]),
- _ = gun:get(ConnPid, "/proxied"),
+ _ = gun:get(ConnPid, "/proxied", [], #{tunnel => StreamRef}),
Data = receive_from(OriginPid),
Lines = binary:split(Data, <<"\r\n">>, [global]),
[<<"host: ", Authority2/bits>>] = [L || <<"host: ", _/bits>> = L <- Lines],
@@ -476,7 +476,7 @@ do_socks5_through_h2_connect_proxy(_OriginScheme, OriginTransport, ProxyScheme,
state := running,
tunnel := #{
transport := ProxyTransport,
- protocol := http,
+ protocol := socks,
%% @todo They're not necessarily the origin. Should be named scheme/host/port.
origin_scheme := ProxyScheme,
origin_host := "localhost",