diff options
Diffstat (limited to 'chromium/net/http/http_proxy_client_socket_pool_unittest.cc')
-rw-r--r-- | chromium/net/http/http_proxy_client_socket_pool_unittest.cc | 61 |
1 files changed, 55 insertions, 6 deletions
diff --git a/chromium/net/http/http_proxy_client_socket_pool_unittest.cc b/chromium/net/http/http_proxy_client_socket_pool_unittest.cc index 2825f643022..51636757982 100644 --- a/chromium/net/http/http_proxy_client_socket_pool_unittest.cc +++ b/chromium/net/http/http_proxy_client_socket_pool_unittest.cc @@ -354,9 +354,6 @@ TEST_P(HttpProxyClientSocketPoolTest, HaveAuth) { // so we skip this test for SPDY if (GetParam() == SPDY) return; - std::string proxy_host_port = GetParam() == HTTP - ? (kHttpProxyHost + std::string(":80")) - : (kHttpsProxyHost + std::string(":443")); std::string request = "CONNECT www.google.com:443 HTTP/1.1\r\n" "Host: www.google.com:443\r\n" @@ -382,9 +379,6 @@ TEST_P(HttpProxyClientSocketPoolTest, HaveAuth) { } TEST_P(HttpProxyClientSocketPoolTest, AsyncHaveAuth) { - std::string proxy_host_port = GetParam() == HTTP - ? (kHttpProxyHost + std::string(":80")) - : (kHttpsProxyHost + std::string(":443")); std::string request = "CONNECT www.google.com:443 HTTP/1.1\r\n" "Host: www.google.com:443\r\n" @@ -892,6 +886,10 @@ TEST_P(HttpProxyClientSocketPoolTest, // returned underlying TCP sockets. #if defined(OS_ANDROID) TEST_P(HttpProxyClientSocketPoolTest, Tag) { + // Socket tagging only supports Android without data reduction proxy, so only + // HTTP proxies are supported. + if (GetParam() != HTTP) + return; Initialize(base::span<MockRead>(), base::span<MockWrite>(), base::span<MockRead>(), base::span<MockWrite>()); SocketTag tag1(SocketTag::UNSET_UID, 0x12345678); @@ -924,6 +922,57 @@ TEST_P(HttpProxyClientSocketPoolTest, Tag) { handle_.socket()->Disconnect(); handle_.Reset(); } + +TEST_P(HttpProxyClientSocketPoolTest, TagWithProxy) { + // Socket tagging only supports Android without data reduction proxy, so only + // HTTP proxies are supported. + if (GetParam() != HTTP) + return; + std::string request = + "CONNECT www.google.com:443 HTTP/1.1\r\n" + "Host: www.google.com:443\r\n" + "Proxy-Connection: keep-alive\r\n" + "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"; + MockWrite writes[] = { + MockWrite(SYNCHRONOUS, 0, request.c_str()), + }; + MockRead reads[] = { + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 Connection Established\r\n\r\n"), + }; + + Initialize(reads, writes, base::span<MockRead>(), base::span<MockWrite>()); + AddAuthToCache(); + + SocketTag tag1(SocketTag::UNSET_UID, 0x12345678); + SocketTag tag2(getuid(), 0x87654321); + + // Verify requested socket is tagged properly. + int rv = + handle_.Init("a", CreateTunnelParams(), LOW, tag1, + ClientSocketPool::RespectLimits::ENABLED, + CompletionOnceCallback(), pool_.get(), NetLogWithSource()); + EXPECT_THAT(rv, IsOk()); + EXPECT_TRUE(handle_.is_initialized()); + ASSERT_TRUE(handle_.socket()); + EXPECT_TRUE(handle_.socket()->IsConnected()); + EXPECT_EQ(socket_factory()->GetLastProducedTCPSocket()->tag(), tag1); + EXPECT_TRUE( + socket_factory()->GetLastProducedTCPSocket()->tagged_before_connected()); + + // Verify reused socket is retagged properly. + StreamSocket* socket = handle_.socket(); + handle_.Reset(); + rv = handle_.Init("a", CreateNoTunnelParams(), LOW, tag2, + ClientSocketPool::RespectLimits::ENABLED, + CompletionOnceCallback(), pool_.get(), NetLogWithSource()); + EXPECT_THAT(rv, IsOk()); + EXPECT_TRUE(handle_.socket()); + EXPECT_TRUE(handle_.socket()->IsConnected()); + EXPECT_EQ(handle_.socket(), socket); + EXPECT_EQ(socket_factory()->GetLastProducedTCPSocket()->tag(), tag2); + handle_.socket()->Disconnect(); + handle_.Reset(); +} #endif } // namespace net |