diff options
author | Googler <noreply@google.com> | 2017-08-04 21:23:57 +0200 |
---|---|---|
committer | Jakob Buchgraber <buchgr@google.com> | 2017-08-07 11:22:16 +0200 |
commit | 583fa511a1916b81aeeaa0c31126986a382c718b (patch) | |
tree | 41037cab50fb1b46f80b744212a9a5972cc824f9 /src/test | |
parent | 4928abff40ca37271973589489dc5015e44c88c0 (diff) |
fix for bazel 303 redirect bug: https://github.com/bazelbuild/bazel/issues/3343
manually turn off HTTP internal reconnection so HTTP can utilize MAX_REDIRECTS, etc.
RELNOTES: None.
PiperOrigin-RevId: 164294282
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/bazel/repository/downloader/HttpConnectorTest.java | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/repository/downloader/HttpConnectorTest.java b/src/test/java/com/google/devtools/build/lib/bazel/repository/downloader/HttpConnectorTest.java index d6a1c77975..e151340a13 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/repository/downloader/HttpConnectorTest.java +++ b/src/test/java/com/google/devtools/build/lib/bazel/repository/downloader/HttpConnectorTest.java @@ -355,7 +355,30 @@ public class HttpConnectorTest { } @Test - public void redirectToDifferentPath_works() throws Exception { + public void pathRedirect_301() throws Exception { + redirectToDifferentPath_works("301"); + } + + @Test + public void serverRedirect_301() throws Exception { + redirectToDifferentServer_works("301"); + } + + /* + * Also tests behavior for 302 and 307 codes. + */ + @Test + public void pathRedirect_303() throws Exception { + redirectToDifferentPath_works("303"); + } + + @Test + public void serverRedirects_303() throws Exception { + redirectToDifferentServer_works("303"); + } + + public void redirectToDifferentPath_works(String code) throws Exception { + String redirectCode = "HTTP/1.1 " + code + " Redirect"; final Map<String, String> headers1 = new ConcurrentHashMap<>(); final Map<String, String> headers2 = new ConcurrentHashMap<>(); try (ServerSocket server = new ServerSocket(0, 1, InetAddress.getByName(null))) { @@ -369,7 +392,7 @@ public class HttpConnectorTest { readHttpRequest(socket.getInputStream(), headers1); sendLines( socket, - "HTTP/1.1 301 Redirect", + redirectCode, "Date: Fri, 31 Dec 1999 23:59:59 GMT", "Connection: close", "Location: /doodle.tar.gz", @@ -406,8 +429,8 @@ public class HttpConnectorTest { assertThat(headers2).containsEntry("x-request-uri", "/doodle.tar.gz"); } - @Test - public void redirectToDifferentServer_works() throws Exception { + public void redirectToDifferentServer_works(String code) throws Exception { + String redirectCode = "HTTP/1.1 " + code + " Redirect"; try (ServerSocket server1 = new ServerSocket(0, 1, InetAddress.getByName(null)); ServerSocket server2 = new ServerSocket(0, 1, InetAddress.getByName(null))) { @SuppressWarnings("unused") @@ -420,7 +443,7 @@ public class HttpConnectorTest { readHttpRequest(socket.getInputStream()); sendLines( socket, - "HTTP/1.1 301 Redirect", + redirectCode, "Date: Fri, 31 Dec 1999 23:59:59 GMT", "Connection: close", String.format( |