| Index: net/http/http_network_transaction_unittest.cc
|
| diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc
|
| index e3d3a59641b7fef5a0a133d07fb718af7b4ddba7..439f13929d0861e0ddcff13d5387197e29178812 100644
|
| --- a/net/http/http_network_transaction_unittest.cc
|
| +++ b/net/http/http_network_transaction_unittest.cc
|
| @@ -92,17 +92,18 @@ const base::string16 kWrongPassword(ASCIIToUTF16("wrongpassword"));
|
|
|
| int GetIdleSocketCountInTransportSocketPool(net::HttpNetworkSession* session) {
|
| return session->GetTransportSocketPool(
|
| - net::HttpNetworkSession::NORMAL_SOCKET_POOL)->IdleSocketCount();
|
| + net::HttpNetworkSession::NORMAL_SOCKET_POOL)
|
| + ->IdleSocketCount();
|
| }
|
|
|
| int GetIdleSocketCountInSSLSocketPool(net::HttpNetworkSession* session) {
|
| - return session->GetSSLSocketPool(
|
| - net::HttpNetworkSession::NORMAL_SOCKET_POOL)->IdleSocketCount();
|
| + return session->GetSSLSocketPool(net::HttpNetworkSession::NORMAL_SOCKET_POOL)
|
| + ->IdleSocketCount();
|
| }
|
|
|
| bool IsTransportSocketPoolStalled(net::HttpNetworkSession* session) {
|
| return session->GetTransportSocketPool(
|
| - net::HttpNetworkSession::NORMAL_SOCKET_POOL)->IsStalled();
|
| + net::HttpNetworkSession::NORMAL_SOCKET_POOL)->IsStalled();
|
| }
|
|
|
| // Takes in a Value created from a NetLogHttpResponseParameter, and returns
|
| @@ -174,8 +175,7 @@ void TestLoadTimingReusedWithPac(const net::LoadTimingInfo& load_timing_info) {
|
| EXPECT_FALSE(load_timing_info.proxy_resolve_start.is_null());
|
| EXPECT_LE(load_timing_info.proxy_resolve_start,
|
| load_timing_info.proxy_resolve_end);
|
| - EXPECT_LE(load_timing_info.proxy_resolve_end,
|
| - load_timing_info.send_start);
|
| + EXPECT_LE(load_timing_info.proxy_resolve_end, load_timing_info.send_start);
|
| EXPECT_LE(load_timing_info.send_start, load_timing_info.send_end);
|
|
|
| // Set at a higher level.
|
| @@ -241,8 +241,7 @@ class HttpNetworkTransactionTest
|
| old_max_group_sockets_(ClientSocketPoolManager::max_sockets_per_group(
|
| HttpNetworkSession::NORMAL_SOCKET_POOL)),
|
| old_max_pool_sockets_(ClientSocketPoolManager::max_sockets_per_pool(
|
| - HttpNetworkSession::NORMAL_SOCKET_POOL)) {
|
| - }
|
| + HttpNetworkSession::NORMAL_SOCKET_POOL)) {}
|
|
|
| struct SimpleGetHelperResult {
|
| int rv;
|
| @@ -271,10 +270,10 @@ class HttpNetworkTransactionTest
|
|
|
| // This is the expected return from a current server advertising SPDY.
|
| std::string GetAlternateProtocolHttpHeader() {
|
| - return
|
| - std::string("Alternate-Protocol: 443:") +
|
| - AlternateProtocolToString(AlternateProtocolFromNextProto(GetParam())) +
|
| - "\r\n\r\n";
|
| + return std::string("Alternate-Protocol: 443:") +
|
| + AlternateProtocolToString(
|
| + AlternateProtocolFromNextProto(GetParam())) +
|
| + "\r\n\r\n";
|
| }
|
|
|
| // Either |write_failure| specifies a write failure or |read_failure|
|
| @@ -345,10 +344,13 @@ class HttpNetworkTransactionTest
|
| net::CapturingNetLog::CapturedEntryList entries;
|
| log.GetEntries(&entries);
|
| size_t pos = ExpectLogContainsSomewhere(
|
| - entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_REQUEST_HEADERS,
|
| + entries,
|
| + 0,
|
| + NetLog::TYPE_HTTP_TRANSACTION_SEND_REQUEST_HEADERS,
|
| NetLog::PHASE_NONE);
|
| ExpectLogContainsSomewhere(
|
| - entries, pos,
|
| + entries,
|
| + pos,
|
| NetLog::TYPE_HTTP_TRANSACTION_READ_RESPONSE_HEADERS,
|
| NetLog::PHASE_NONE);
|
|
|
| @@ -376,7 +378,7 @@ class HttpNetworkTransactionTest
|
| SimpleGetHelperResult SimpleGetHelper(MockRead data_reads[],
|
| size_t reads_count) {
|
| StaticSocketDataProvider reads(data_reads, reads_count, NULL, 0);
|
| - StaticSocketDataProvider* data[] = { &reads };
|
| + StaticSocketDataProvider* data[] = {&reads};
|
| return SimpleGetHelperForData(data, 1);
|
| }
|
|
|
| @@ -405,11 +407,12 @@ class HttpNetworkTransactionTest
|
| int old_max_pool_sockets_;
|
| };
|
|
|
| -INSTANTIATE_TEST_CASE_P(
|
| - NextProto,
|
| - HttpNetworkTransactionTest,
|
| - testing::Values(kProtoDeprecatedSPDY2,
|
| - kProtoSPDY3, kProtoSPDY31, kProtoSPDY4));
|
| +INSTANTIATE_TEST_CASE_P(NextProto,
|
| + HttpNetworkTransactionTest,
|
| + testing::Values(kProtoDeprecatedSPDY2,
|
| + kProtoSPDY3,
|
| + kProtoSPDY31,
|
| + kProtoSPDY4));
|
|
|
| namespace {
|
|
|
| @@ -440,8 +443,8 @@ void FillLargeHeadersString(std::string* str, int size) {
|
| const char* row =
|
| "SomeHeaderName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n";
|
| const int sizeof_row = strlen(row);
|
| - const int num_rows = static_cast<int>(
|
| - ceil(static_cast<float>(size) / sizeof_row));
|
| + const int num_rows =
|
| + static_cast<int>(ceil(static_cast<float>(size) / sizeof_row));
|
| const int sizeof_data = num_rows * sizeof_row;
|
| DCHECK(sizeof_data >= size);
|
| str->reserve(sizeof_data);
|
| @@ -453,9 +456,7 @@ void FillLargeHeadersString(std::string* str, int size) {
|
| // Alternative functions that eliminate randomness and dependency on the local
|
| // host name so that the generated NTLM messages are reproducible.
|
| void MockGenerateRandom1(uint8* output, size_t n) {
|
| - static const uint8 bytes[] = {
|
| - 0x55, 0x29, 0x66, 0x26, 0x6b, 0x9c, 0x73, 0x54
|
| - };
|
| + static const uint8 bytes[] = {0x55, 0x29, 0x66, 0x26, 0x6b, 0x9c, 0x73, 0x54};
|
| static size_t current_byte = 0;
|
| for (size_t i = 0; i < n; ++i) {
|
| output[i] = bytes[current_byte++];
|
| @@ -464,10 +465,8 @@ void MockGenerateRandom1(uint8* output, size_t n) {
|
| }
|
|
|
| void MockGenerateRandom2(uint8* output, size_t n) {
|
| - static const uint8 bytes[] = {
|
| - 0x96, 0x79, 0x85, 0xe7, 0x49, 0x93, 0x70, 0xa1,
|
| - 0x4e, 0xe7, 0x87, 0x45, 0x31, 0x5b, 0xd3, 0x1f
|
| - };
|
| + static const uint8 bytes[] = {0x96, 0x79, 0x85, 0xe7, 0x49, 0x93, 0x70, 0xa1,
|
| + 0x4e, 0xe7, 0x87, 0x45, 0x31, 0x5b, 0xd3, 0x1f};
|
| static size_t current_byte = 0;
|
| for (size_t i = 0; i < n; ++i) {
|
| output[i] = bytes[current_byte++];
|
| @@ -479,7 +478,7 @@ std::string MockGetHostName() {
|
| return "WTC-WIN7";
|
| }
|
|
|
| -template<typename ParentPool>
|
| +template <typename ParentPool>
|
| class CaptureGroupNameSocketPool : public ParentPool {
|
| public:
|
| CaptureGroupNameSocketPool(HostResolver* host_resolver,
|
| @@ -504,9 +503,7 @@ class CaptureGroupNameSocketPool : public ParentPool {
|
| scoped_ptr<StreamSocket> socket,
|
| int id) {}
|
| virtual void CloseIdleSockets() {}
|
| - virtual int IdleSocketCount() const {
|
| - return 0;
|
| - }
|
| + virtual int IdleSocketCount() const { return 0; }
|
| virtual int IdleSocketCountInGroup(const std::string& group_name) const {
|
| return 0;
|
| }
|
| @@ -523,25 +520,27 @@ class CaptureGroupNameSocketPool : public ParentPool {
|
| };
|
|
|
| typedef CaptureGroupNameSocketPool<TransportClientSocketPool>
|
| -CaptureGroupNameTransportSocketPool;
|
| + CaptureGroupNameTransportSocketPool;
|
| typedef CaptureGroupNameSocketPool<HttpProxyClientSocketPool>
|
| -CaptureGroupNameHttpProxySocketPool;
|
| + CaptureGroupNameHttpProxySocketPool;
|
| typedef CaptureGroupNameSocketPool<SOCKSClientSocketPool>
|
| -CaptureGroupNameSOCKSSocketPool;
|
| + CaptureGroupNameSOCKSSocketPool;
|
| typedef CaptureGroupNameSocketPool<SSLClientSocketPool>
|
| -CaptureGroupNameSSLSocketPool;
|
| + CaptureGroupNameSSLSocketPool;
|
|
|
| -template<typename ParentPool>
|
| +template <typename ParentPool>
|
| CaptureGroupNameSocketPool<ParentPool>::CaptureGroupNameSocketPool(
|
| HostResolver* host_resolver,
|
| CertVerifier* /* cert_verifier */)
|
| - : ParentPool(0, 0, NULL, host_resolver, NULL, NULL) {}
|
| + : ParentPool(0, 0, NULL, host_resolver, NULL, NULL) {
|
| +}
|
|
|
| -template<>
|
| +template <>
|
| CaptureGroupNameHttpProxySocketPool::CaptureGroupNameSocketPool(
|
| HostResolver* host_resolver,
|
| CertVerifier* /* cert_verifier */)
|
| - : HttpProxyClientSocketPool(0, 0, NULL, host_resolver, NULL, NULL, NULL) {}
|
| + : HttpProxyClientSocketPool(0, 0, NULL, host_resolver, NULL, NULL, NULL) {
|
| +}
|
|
|
| template <>
|
| CaptureGroupNameSSLSocketPool::CaptureGroupNameSocketPool(
|
| @@ -561,7 +560,8 @@ CaptureGroupNameSSLSocketPool::CaptureGroupNameSocketPool(
|
| NULL,
|
| NULL,
|
| NULL,
|
| - NULL) {}
|
| + NULL) {
|
| +}
|
|
|
| //-----------------------------------------------------------------------------
|
|
|
| @@ -617,12 +617,11 @@ TEST_P(HttpNetworkTransactionTest, Basic) {
|
|
|
| TEST_P(HttpNetworkTransactionTest, SimpleGET) {
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(OK, out.rv);
|
| EXPECT_EQ("HTTP/1.0 200 OK", out.status_line);
|
| EXPECT_EQ("hello world", out.response_data);
|
| @@ -633,11 +632,10 @@ TEST_P(HttpNetworkTransactionTest, SimpleGET) {
|
| // Response with no status line.
|
| TEST_P(HttpNetworkTransactionTest, SimpleGETNoHeaders) {
|
| MockRead data_reads[] = {
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("hello world"), MockRead(SYNCHRONOUS, OK),
|
| };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(OK, out.rv);
|
| EXPECT_EQ("HTTP/0.9 200 OK", out.status_line);
|
| EXPECT_EQ("hello world", out.response_data);
|
| @@ -648,11 +646,11 @@ TEST_P(HttpNetworkTransactionTest, SimpleGETNoHeaders) {
|
| // Allow up to 4 bytes of junk to precede status line.
|
| TEST_P(HttpNetworkTransactionTest, StatusLineJunk3Bytes) {
|
| MockRead data_reads[] = {
|
| - MockRead("xxxHTTP/1.0 404 Not Found\nServer: blah\n\nDATA"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("xxxHTTP/1.0 404 Not Found\nServer: blah\n\nDATA"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(OK, out.rv);
|
| EXPECT_EQ("HTTP/1.0 404 Not Found", out.status_line);
|
| EXPECT_EQ("DATA", out.response_data);
|
| @@ -663,11 +661,11 @@ TEST_P(HttpNetworkTransactionTest, StatusLineJunk3Bytes) {
|
| // Allow up to 4 bytes of junk to precede status line.
|
| TEST_P(HttpNetworkTransactionTest, StatusLineJunk4Bytes) {
|
| MockRead data_reads[] = {
|
| - MockRead("\n\nQJHTTP/1.0 404 Not Found\nServer: blah\n\nDATA"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("\n\nQJHTTP/1.0 404 Not Found\nServer: blah\n\nDATA"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(OK, out.rv);
|
| EXPECT_EQ("HTTP/1.0 404 Not Found", out.status_line);
|
| EXPECT_EQ("DATA", out.response_data);
|
| @@ -678,11 +676,11 @@ TEST_P(HttpNetworkTransactionTest, StatusLineJunk4Bytes) {
|
| // Beyond 4 bytes of slop and it should fail to find a status line.
|
| TEST_P(HttpNetworkTransactionTest, StatusLineJunk5Bytes) {
|
| MockRead data_reads[] = {
|
| - MockRead("xxxxxHTTP/1.1 404 Not Found\nServer: blah"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("xxxxxHTTP/1.1 404 Not Found\nServer: blah"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(OK, out.rv);
|
| EXPECT_EQ("HTTP/0.9 200 OK", out.status_line);
|
| EXPECT_EQ("xxxxxHTTP/1.1 404 Not Found\nServer: blah", out.response_data);
|
| @@ -693,15 +691,15 @@ TEST_P(HttpNetworkTransactionTest, StatusLineJunk5Bytes) {
|
| // Same as StatusLineJunk4Bytes, except the read chunks are smaller.
|
| TEST_P(HttpNetworkTransactionTest, StatusLineJunk4Bytes_Slow) {
|
| MockRead data_reads[] = {
|
| - MockRead("\n"),
|
| - MockRead("\n"),
|
| - MockRead("Q"),
|
| - MockRead("J"),
|
| - MockRead("HTTP/1.0 404 Not Found\nServer: blah\n\nDATA"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| - };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + MockRead("\n"),
|
| + MockRead("\n"),
|
| + MockRead("Q"),
|
| + MockRead("J"),
|
| + MockRead("HTTP/1.0 404 Not Found\nServer: blah\n\nDATA"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| + };
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(OK, out.rv);
|
| EXPECT_EQ("HTTP/1.0 404 Not Found", out.status_line);
|
| EXPECT_EQ("DATA", out.response_data);
|
| @@ -712,11 +710,10 @@ TEST_P(HttpNetworkTransactionTest, StatusLineJunk4Bytes_Slow) {
|
| // Close the connection before enough bytes to have a status line.
|
| TEST_P(HttpNetworkTransactionTest, StatusLinePartial) {
|
| MockRead data_reads[] = {
|
| - MockRead("HTT"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTT"), MockRead(SYNCHRONOUS, OK),
|
| };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(OK, out.rv);
|
| EXPECT_EQ("HTTP/0.9 200 OK", out.status_line);
|
| EXPECT_EQ("HTT", out.response_data);
|
| @@ -730,12 +727,12 @@ TEST_P(HttpNetworkTransactionTest, StatusLinePartial) {
|
| TEST_P(HttpNetworkTransactionTest, StopsReading204) {
|
| char junk[] = "junk";
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 204 No Content\r\n\r\n"),
|
| - MockRead(junk), // Should not be read!!
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 204 No Content\r\n\r\n"),
|
| + MockRead(junk), // Should not be read!!
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(OK, out.rv);
|
| EXPECT_EQ("HTTP/1.1 204 No Content", out.status_line);
|
| EXPECT_EQ("", out.response_data);
|
| @@ -751,16 +748,16 @@ TEST_P(HttpNetworkTransactionTest, ChunkedEncoding) {
|
| std::string extra_data = "HTTP/1.1 200 OK\r\n";
|
| std::string last_read = final_chunk + extra_data;
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\nTransfer-Encoding: chunked\r\n\r\n"),
|
| - MockRead("5\r\nHello\r\n"),
|
| - MockRead("1\r\n"),
|
| - MockRead(" \r\n"),
|
| - MockRead("5\r\nworld\r\n"),
|
| - MockRead(last_read.data()),
|
| - MockRead(SYNCHRONOUS, OK),
|
| - };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + MockRead("HTTP/1.1 200 OK\r\nTransfer-Encoding: chunked\r\n\r\n"),
|
| + MockRead("5\r\nHello\r\n"),
|
| + MockRead("1\r\n"),
|
| + MockRead(" \r\n"),
|
| + MockRead("5\r\nworld\r\n"),
|
| + MockRead(last_read.data()),
|
| + MockRead(SYNCHRONOUS, OK),
|
| + };
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(OK, out.rv);
|
| EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
|
| EXPECT_EQ("Hello world", out.response_data);
|
| @@ -774,25 +771,22 @@ TEST_P(HttpNetworkTransactionTest, ChunkedEncoding) {
|
| TEST_P(HttpNetworkTransactionTest,
|
| MultipleContentLengthHeadersNoTransferEncoding) {
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Length: 10\r\n"),
|
| - MockRead("Content-Length: 5\r\n\r\n"),
|
| + MockRead("HTTP/1.1 200 OK\r\n"), MockRead("Content-Length: 10\r\n"),
|
| + MockRead("Content-Length: 5\r\n\r\n"),
|
| };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH, out.rv);
|
| }
|
|
|
| TEST_P(HttpNetworkTransactionTest,
|
| DuplicateContentLengthHeadersNoTransferEncoding) {
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Length: 5\r\n"),
|
| - MockRead("Content-Length: 5\r\n\r\n"),
|
| - MockRead("Hello"),
|
| + MockRead("HTTP/1.1 200 OK\r\n"), MockRead("Content-Length: 5\r\n"),
|
| + MockRead("Content-Length: 5\r\n\r\n"), MockRead("Hello"),
|
| };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(OK, out.rv);
|
| EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
|
| EXPECT_EQ("Hello", out.response_data);
|
| @@ -803,14 +797,14 @@ TEST_P(HttpNetworkTransactionTest,
|
| // More than 2 dupes.
|
| {
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Length: 5\r\n"),
|
| - MockRead("Content-Length: 5\r\n"),
|
| - MockRead("Content-Length: 5\r\n\r\n"),
|
| - MockRead("Hello"),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Length: 5\r\n"),
|
| + MockRead("Content-Length: 5\r\n"),
|
| + MockRead("Content-Length: 5\r\n\r\n"),
|
| + MockRead("Hello"),
|
| };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(OK, out.rv);
|
| EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
|
| EXPECT_EQ("Hello", out.response_data);
|
| @@ -818,14 +812,14 @@ TEST_P(HttpNetworkTransactionTest,
|
| // HTTP/1.0
|
| {
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Length: 5\r\n"),
|
| - MockRead("Content-Length: 5\r\n"),
|
| - MockRead("Content-Length: 5\r\n\r\n"),
|
| - MockRead("Hello"),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Length: 5\r\n"),
|
| + MockRead("Content-Length: 5\r\n"),
|
| + MockRead("Content-Length: 5\r\n\r\n"),
|
| + MockRead("Hello"),
|
| };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(OK, out.rv);
|
| EXPECT_EQ("HTTP/1.0 200 OK", out.status_line);
|
| EXPECT_EQ("Hello", out.response_data);
|
| @@ -833,13 +827,12 @@ TEST_P(HttpNetworkTransactionTest,
|
| // 2 dupes and one mismatched.
|
| {
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Length: 10\r\n"),
|
| - MockRead("Content-Length: 10\r\n"),
|
| - MockRead("Content-Length: 5\r\n\r\n"),
|
| + MockRead("HTTP/1.1 200 OK\r\n"), MockRead("Content-Length: 10\r\n"),
|
| + MockRead("Content-Length: 10\r\n"),
|
| + MockRead("Content-Length: 5\r\n\r\n"),
|
| };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH, out.rv);
|
| }
|
| }
|
| @@ -847,19 +840,19 @@ TEST_P(HttpNetworkTransactionTest,
|
| TEST_P(HttpNetworkTransactionTest,
|
| MultipleContentLengthHeadersTransferEncoding) {
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Length: 666\r\n"),
|
| - MockRead("Content-Length: 1337\r\n"),
|
| - MockRead("Transfer-Encoding: chunked\r\n\r\n"),
|
| - MockRead("5\r\nHello\r\n"),
|
| - MockRead("1\r\n"),
|
| - MockRead(" \r\n"),
|
| - MockRead("5\r\nworld\r\n"),
|
| - MockRead("0\r\n\r\nHTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| - };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Length: 666\r\n"),
|
| + MockRead("Content-Length: 1337\r\n"),
|
| + MockRead("Transfer-Encoding: chunked\r\n\r\n"),
|
| + MockRead("5\r\nHello\r\n"),
|
| + MockRead("1\r\n"),
|
| + MockRead(" \r\n"),
|
| + MockRead("5\r\nworld\r\n"),
|
| + MockRead("0\r\n\r\nHTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| + };
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(OK, out.rv);
|
| EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
|
| EXPECT_EQ("Hello world", out.response_data);
|
| @@ -870,30 +863,29 @@ TEST_P(HttpNetworkTransactionTest,
|
| // Checks that a single Content-Disposition header results in no error.
|
| TEST_P(HttpNetworkTransactionTest, SingleContentDispositionHeader) {
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Disposition: attachment;filename=\"salutations.txt\"r\n"),
|
| - MockRead("Content-Length: 5\r\n\r\n"),
|
| - MockRead("Hello"),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead(
|
| + "Content-Disposition: attachment;filename=\"salutations.txt\"r\n"),
|
| + MockRead("Content-Length: 5\r\n\r\n"), MockRead("Hello"),
|
| };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(OK, out.rv);
|
| EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
|
| EXPECT_EQ("Hello", out.response_data);
|
| }
|
|
|
| // Checks that two identical Content-Disposition headers result in no error.
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - TwoIdenticalContentDispositionHeaders) {
|
| +TEST_P(HttpNetworkTransactionTest, TwoIdenticalContentDispositionHeaders) {
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Disposition: attachment;filename=\"greetings.txt\"r\n"),
|
| - MockRead("Content-Disposition: attachment;filename=\"greetings.txt\"r\n"),
|
| - MockRead("Content-Length: 5\r\n\r\n"),
|
| - MockRead("Hello"),
|
| - };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Disposition: attachment;filename=\"greetings.txt\"r\n"),
|
| + MockRead("Content-Disposition: attachment;filename=\"greetings.txt\"r\n"),
|
| + MockRead("Content-Length: 5\r\n\r\n"),
|
| + MockRead("Hello"),
|
| + };
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(OK, out.rv);
|
| EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
|
| EXPECT_EQ("Hello", out.response_data);
|
| @@ -902,14 +894,14 @@ TEST_P(HttpNetworkTransactionTest,
|
| // Checks that two distinct Content-Disposition headers result in an error.
|
| TEST_P(HttpNetworkTransactionTest, TwoDistinctContentDispositionHeaders) {
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Disposition: attachment;filename=\"greetings.txt\"r\n"),
|
| - MockRead("Content-Disposition: attachment;filename=\"hi.txt\"r\n"),
|
| - MockRead("Content-Length: 5\r\n\r\n"),
|
| - MockRead("Hello"),
|
| - };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Disposition: attachment;filename=\"greetings.txt\"r\n"),
|
| + MockRead("Content-Disposition: attachment;filename=\"hi.txt\"r\n"),
|
| + MockRead("Content-Length: 5\r\n\r\n"),
|
| + MockRead("Hello"),
|
| + };
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION, out.rv);
|
| }
|
|
|
| @@ -917,11 +909,11 @@ TEST_P(HttpNetworkTransactionTest, TwoDistinctContentDispositionHeaders) {
|
| // Also tests Location header behavior.
|
| TEST_P(HttpNetworkTransactionTest, TwoIdenticalLocationHeaders) {
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 302 Redirect\r\n"),
|
| - MockRead("Location: http://good.com/\r\n"),
|
| - MockRead("Location: http://good.com/\r\n"),
|
| - MockRead("Content-Length: 0\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 302 Redirect\r\n"),
|
| + MockRead("Location: http://good.com/\r\n"),
|
| + MockRead("Location: http://good.com/\r\n"),
|
| + MockRead("Content-Length: 0\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| HttpRequestInfo request;
|
| @@ -954,14 +946,14 @@ TEST_P(HttpNetworkTransactionTest, TwoIdenticalLocationHeaders) {
|
| // Checks that two distinct Location headers result in an error.
|
| TEST_P(HttpNetworkTransactionTest, TwoDistinctLocationHeaders) {
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 302 Redirect\r\n"),
|
| - MockRead("Location: http://good.com/\r\n"),
|
| - MockRead("Location: http://evil.com/\r\n"),
|
| - MockRead("Content-Length: 0\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| - };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + MockRead("HTTP/1.1 302 Redirect\r\n"),
|
| + MockRead("Location: http://good.com/\r\n"),
|
| + MockRead("Location: http://evil.com/\r\n"),
|
| + MockRead("Content-Length: 0\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| + };
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(ERR_RESPONSE_HEADERS_MULTIPLE_LOCATION, out.rv);
|
| }
|
|
|
| @@ -978,22 +970,24 @@ TEST_P(HttpNetworkTransactionTest, Head) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("HEAD / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Content-Length: 0\r\n\r\n"),
|
| + MockWrite(
|
| + "HEAD / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Content-Length: 0\r\n\r\n"),
|
| };
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.1 404 Not Found\r\n"),
|
| - MockRead("Server: Blah\r\n"),
|
| - MockRead("Content-Length: 1234\r\n\r\n"),
|
| + MockRead("HTTP/1.1 404 Not Found\r\n"), MockRead("Server: Blah\r\n"),
|
| + MockRead("Content-Length: 1234\r\n\r\n"),
|
|
|
| - // No response body because the test stops reading here.
|
| - MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached.
|
| + // No response body because the test stops reading here.
|
| + MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached.
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
|
|
| TestCompletionCallback callback1;
|
| @@ -1014,8 +1008,8 @@ TEST_P(HttpNetworkTransactionTest, Head) {
|
|
|
| std::string server_header;
|
| void* iter = NULL;
|
| - bool has_server_header = response->headers->EnumerateHeader(
|
| - &iter, "Server", &server_header);
|
| + bool has_server_header =
|
| + response->headers->EnumerateHeader(&iter, "Server", &server_header);
|
| EXPECT_TRUE(has_server_header);
|
| EXPECT_EQ("Blah", server_header);
|
|
|
| @@ -1031,18 +1025,16 @@ TEST_P(HttpNetworkTransactionTest, ReuseConnection) {
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"),
|
| - MockRead("hello"),
|
| - MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"),
|
| - MockRead("world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"),
|
| + MockRead("hello"),
|
| + MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"),
|
| + MockRead("world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| - const char* const kExpectedResponseData[] = {
|
| - "hello", "world"
|
| - };
|
| + const char* const kExpectedResponseData[] = {"hello", "world"};
|
|
|
| for (int i = 0; i < 2; ++i) {
|
| HttpRequestInfo request;
|
| @@ -1090,10 +1082,9 @@ TEST_P(HttpNetworkTransactionTest, Ignores100) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 100 Continue\r\n\r\n"),
|
| - MockRead("HTTP/1.0 200 OK\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 100 Continue\r\n\r\n"),
|
| + MockRead("HTTP/1.0 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| @@ -1132,10 +1123,10 @@ TEST_P(HttpNetworkTransactionTest, Ignores1xx) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 102 Unspecified status code\r\n\r\n"
|
| - "HTTP/1.1 200 OK\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead(
|
| + "HTTP/1.1 102 Unspecified status code\r\n\r\n"
|
| + "HTTP/1.1 200 OK\r\n\r\n"),
|
| + MockRead("hello world"), MockRead(SYNCHRONOUS, OK),
|
| };
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| @@ -1171,8 +1162,7 @@ TEST_P(HttpNetworkTransactionTest, Incomplete100ThenEOF) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockRead data_reads[] = {
|
| - MockRead(SYNCHRONOUS, "HTTP/1.0 100 Continue\r\n"),
|
| - MockRead(ASYNC, 0),
|
| + MockRead(SYNCHRONOUS, "HTTP/1.0 100 Continue\r\n"), MockRead(ASYNC, 0),
|
| };
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| @@ -1201,9 +1191,8 @@ TEST_P(HttpNetworkTransactionTest, EmptyResponse) {
|
| scoped_ptr<HttpTransaction> trans(
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| -
|
| MockRead data_reads[] = {
|
| - MockRead(ASYNC, 0),
|
| + MockRead(ASYNC, 0),
|
| };
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| @@ -1230,20 +1219,19 @@ void HttpNetworkTransactionTest::KeepAliveConnectionResendRequestTest(
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| // Written data for successfully sending both requests.
|
| - MockWrite data1_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.foo.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.foo.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n")
|
| - };
|
| + MockWrite data1_writes[] = {MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.foo.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.foo.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n")};
|
|
|
| // Read results for the first request.
|
| MockRead data1_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"),
|
| - MockRead("hello"),
|
| - MockRead(ASYNC, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"),
|
| + MockRead("hello"), MockRead(ASYNC, OK),
|
| };
|
|
|
| if (write_failure) {
|
| @@ -1254,21 +1242,20 @@ void HttpNetworkTransactionTest::KeepAliveConnectionResendRequestTest(
|
| data1_reads[2] = *read_failure;
|
| }
|
|
|
| - StaticSocketDataProvider data1(data1_reads, arraysize(data1_reads),
|
| - data1_writes, arraysize(data1_writes));
|
| + StaticSocketDataProvider data1(data1_reads,
|
| + arraysize(data1_reads),
|
| + data1_writes,
|
| + arraysize(data1_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
|
|
| MockRead data2_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"),
|
| - MockRead("world"),
|
| - MockRead(ASYNC, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"),
|
| + MockRead("world"), MockRead(ASYNC, OK),
|
| };
|
| StaticSocketDataProvider data2(data2_reads, arraysize(data2_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
|
|
| - const char* kExpectedResponseData[] = {
|
| - "hello", "world"
|
| - };
|
| + const char* kExpectedResponseData[] = {"hello", "world"};
|
|
|
| uint32 first_socket_log_id = NetLog::Source::kInvalidId;
|
| for (int i = 0; i < 2; ++i) {
|
| @@ -1337,7 +1324,8 @@ void HttpNetworkTransactionTest::PreconnectErrorResendRequestTest(
|
| spdy_util_.ConstructSpdyBodyFrame(1, "hello", 5, true));
|
|
|
| // HTTP/1.1 versions of the request and response.
|
| - const char kHttpRequest[] = "GET / HTTP/1.1\r\n"
|
| + const char kHttpRequest[] =
|
| + "GET / HTTP/1.1\r\n"
|
| "Host: www.foo.com\r\n"
|
| "Connection: keep-alive\r\n\r\n";
|
| const char kHttpResponse[] = "HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n";
|
| @@ -1359,8 +1347,10 @@ void HttpNetworkTransactionTest::PreconnectErrorResendRequestTest(
|
| data1_reads.push_back(*read_failure);
|
| }
|
|
|
| - StaticSocketDataProvider data1(&data1_reads[0], data1_reads.size(),
|
| - &data1_writes[0], data1_writes.size());
|
| + StaticSocketDataProvider data1(&data1_reads[0],
|
| + data1_reads.size(),
|
| + &data1_writes[0],
|
| + data1_writes.size());
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
|
|
| std::vector<MockRead> data2_reads;
|
| @@ -1381,8 +1371,10 @@ void HttpNetworkTransactionTest::PreconnectErrorResendRequestTest(
|
| data2_reads.push_back(MockRead(ASYNC, kHttpData, strlen(kHttpData), 2));
|
| data2_reads.push_back(MockRead(ASYNC, OK, 3));
|
| }
|
| - OrderedSocketData data2(&data2_reads[0], data2_reads.size(),
|
| - &data2_writes[0], data2_writes.size());
|
| + OrderedSocketData data2(&data2_reads[0],
|
| + data2_reads.size(),
|
| + &data2_writes[0],
|
| + data2_writes.size());
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
|
|
| // Preconnect a socket.
|
| @@ -1413,7 +1405,7 @@ void HttpNetworkTransactionTest::PreconnectErrorResendRequestTest(
|
| EXPECT_TRUE(trans->GetLoadTimingInfo(&load_timing_info));
|
| TestLoadTimingNotReused(
|
| load_timing_info,
|
| - CONNECT_TIMING_HAS_DNS_TIMES|CONNECT_TIMING_HAS_SSL_TIMES);
|
| + CONNECT_TIMING_HAS_DNS_TIMES | CONNECT_TIMING_HAS_SSL_TIMES);
|
|
|
| const HttpResponseInfo* response = trans->GetResponseInfo();
|
| ASSERT_TRUE(response != NULL);
|
| @@ -1427,8 +1419,7 @@ void HttpNetworkTransactionTest::PreconnectErrorResendRequestTest(
|
| EXPECT_EQ(kHttpData, response_data);
|
| }
|
|
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - KeepAliveConnectionNotConnectedOnWrite) {
|
| +TEST_P(HttpNetworkTransactionTest, KeepAliveConnectionNotConnectedOnWrite) {
|
| MockWrite write_failure(ASYNC, ERR_SOCKET_NOT_CONNECTED);
|
| KeepAliveConnectionResendRequestTest(&write_failure, NULL);
|
| }
|
| @@ -1443,8 +1434,7 @@ TEST_P(HttpNetworkTransactionTest, KeepAliveConnectionEOF) {
|
| KeepAliveConnectionResendRequestTest(NULL, &read_failure);
|
| }
|
|
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - PreconnectErrorNotConnectedOnWrite) {
|
| +TEST_P(HttpNetworkTransactionTest, PreconnectErrorNotConnectedOnWrite) {
|
| MockWrite write_failure(ASYNC, ERR_SOCKET_NOT_CONNECTED);
|
| PreconnectErrorResendRequestTest(&write_failure, NULL, false);
|
| }
|
| @@ -1464,8 +1454,7 @@ TEST_P(HttpNetworkTransactionTest, PreconnectErrorAsyncEOF) {
|
| PreconnectErrorResendRequestTest(NULL, &read_failure, false);
|
| }
|
|
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - SpdyPreconnectErrorNotConnectedOnWrite) {
|
| +TEST_P(HttpNetworkTransactionTest, SpdyPreconnectErrorNotConnectedOnWrite) {
|
| MockWrite write_failure(ASYNC, ERR_SOCKET_NOT_CONNECTED);
|
| PreconnectErrorResendRequestTest(&write_failure, NULL, true);
|
| }
|
| @@ -1496,10 +1485,9 @@ TEST_P(HttpNetworkTransactionTest, NonKeepAliveConnectionReset) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockRead data_reads[] = {
|
| - MockRead(ASYNC, ERR_CONNECTION_RESET),
|
| - MockRead("HTTP/1.0 200 OK\r\n\r\n"), // Should not be used
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead(ASYNC, ERR_CONNECTION_RESET),
|
| + MockRead("HTTP/1.0 200 OK\r\n\r\n"), // Should not be used
|
| + MockRead("hello world"), MockRead(SYNCHRONOUS, OK),
|
| };
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| @@ -1527,13 +1515,12 @@ TEST_P(HttpNetworkTransactionTest, NonKeepAliveConnectionReset) {
|
| // Us: error page (EMPTY_RESPONSE)
|
| TEST_P(HttpNetworkTransactionTest, NonKeepAliveConnectionEOF) {
|
| MockRead data_reads[] = {
|
| - MockRead(SYNCHRONOUS, OK), // EOF
|
| - MockRead("HTTP/1.0 200 OK\r\n\r\n"), // Should not be used
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead(SYNCHRONOUS, OK), // EOF
|
| + MockRead("HTTP/1.0 200 OK\r\n\r\n"), // Should not be used
|
| + MockRead("hello world"), MockRead(SYNCHRONOUS, OK),
|
| };
|
| - SimpleGetHelperResult out = SimpleGetHelper(data_reads,
|
| - arraysize(data_reads));
|
| + SimpleGetHelperResult out =
|
| + SimpleGetHelper(data_reads, arraysize(data_reads));
|
| EXPECT_EQ(ERR_EMPTY_RESPONSE, out.rv);
|
| }
|
|
|
| @@ -1555,10 +1542,8 @@ TEST_P(HttpNetworkTransactionTest, ThrottleBeforeNetworkStart) {
|
| base::Unretained(&net_start_handler)));
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Length: 5\r\n\r\n"),
|
| - MockRead("hello"),
|
| - MockRead(SYNCHRONOUS, 0),
|
| + MockRead("HTTP/1.0 200 OK\r\n"), MockRead("Content-Length: 5\r\n\r\n"),
|
| + MockRead("hello"), MockRead(SYNCHRONOUS, 0),
|
| };
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| @@ -1631,11 +1616,11 @@ TEST_P(HttpNetworkTransactionTest, KeepAliveEarlyClose) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Connection: keep-alive\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead("hello"),
|
| - MockRead(SYNCHRONOUS, 0),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Connection: keep-alive\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"),
|
| + MockRead("hello"),
|
| + MockRead(SYNCHRONOUS, 0),
|
| };
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| @@ -1672,10 +1657,8 @@ TEST_P(HttpNetworkTransactionTest, KeepAliveEarlyClose2) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Connection: keep-alive\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 0),
|
| + MockRead("HTTP/1.0 200 OK\r\n"), MockRead("Connection: keep-alive\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, 0),
|
| };
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| @@ -1715,27 +1698,31 @@ TEST_P(HttpNetworkTransactionTest, KeepAliveAfterUnreadBody) {
|
| // StaticSocketDataProvider, it shows that the same socket is being reused for
|
| // all transactions.
|
| MockRead data1_reads[] = {
|
| - MockRead("HTTP/1.1 204 No Content\r\n\r\n"),
|
| - MockRead("HTTP/1.1 205 Reset Content\r\n\r\n"),
|
| - MockRead("HTTP/1.1 304 Not Modified\r\n\r\n"),
|
| - MockRead("HTTP/1.1 302 Found\r\n"
|
| - "Content-Length: 0\r\n\r\n"),
|
| - MockRead("HTTP/1.1 302 Found\r\n"
|
| - "Content-Length: 5\r\n\r\n"
|
| - "hello"),
|
| - MockRead("HTTP/1.1 301 Moved Permanently\r\n"
|
| - "Content-Length: 0\r\n\r\n"),
|
| - MockRead("HTTP/1.1 301 Moved Permanently\r\n"
|
| - "Content-Length: 5\r\n\r\n"
|
| - "hello"),
|
| - MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"),
|
| - MockRead("hello"),
|
| + MockRead("HTTP/1.1 204 No Content\r\n\r\n"),
|
| + MockRead("HTTP/1.1 205 Reset Content\r\n\r\n"),
|
| + MockRead("HTTP/1.1 304 Not Modified\r\n\r\n"),
|
| + MockRead(
|
| + "HTTP/1.1 302 Found\r\n"
|
| + "Content-Length: 0\r\n\r\n"),
|
| + MockRead(
|
| + "HTTP/1.1 302 Found\r\n"
|
| + "Content-Length: 5\r\n\r\n"
|
| + "hello"),
|
| + MockRead(
|
| + "HTTP/1.1 301 Moved Permanently\r\n"
|
| + "Content-Length: 0\r\n\r\n"),
|
| + MockRead(
|
| + "HTTP/1.1 301 Moved Permanently\r\n"
|
| + "Content-Length: 5\r\n\r\n"
|
| + "hello"),
|
| + MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"),
|
| + MockRead("hello"),
|
| };
|
| StaticSocketDataProvider data1(data1_reads, arraysize(data1_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
|
|
| MockRead data2_reads[] = {
|
| - MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached.
|
| + MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached.
|
| };
|
| StaticSocketDataProvider data2(data2_reads, arraysize(data2_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
| @@ -1776,13 +1763,10 @@ TEST_P(HttpNetworkTransactionTest, KeepAliveAfterUnreadBody) {
|
| }
|
|
|
| const char* const kStatusLines[] = {
|
| - "HTTP/1.1 204 No Content",
|
| - "HTTP/1.1 205 Reset Content",
|
| - "HTTP/1.1 304 Not Modified",
|
| - "HTTP/1.1 302 Found",
|
| - "HTTP/1.1 302 Found",
|
| - "HTTP/1.1 301 Moved Permanently",
|
| - "HTTP/1.1 301 Moved Permanently",
|
| + "HTTP/1.1 204 No Content", "HTTP/1.1 205 Reset Content",
|
| + "HTTP/1.1 304 Not Modified", "HTTP/1.1 302 Found",
|
| + "HTTP/1.1 302 Found", "HTTP/1.1 301 Moved Permanently",
|
| + "HTTP/1.1 301 Moved Permanently",
|
| };
|
|
|
| COMPILE_ASSERT(kNumUnreadBodies == arraysize(kStatusLines),
|
| @@ -1823,45 +1807,50 @@ TEST_P(HttpNetworkTransactionTest, BasicAuth) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| - // Give a couple authenticate options (only the middle one is actually
|
| - // supported).
|
| - MockRead("WWW-Authenticate: Basic invalid\r\n"), // Malformed.
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("WWW-Authenticate: UNSUPPORTED realm=\"FOO\"\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - // Large content-length -- won't matter, as connection will be reset.
|
| - MockRead("Content-Length: 10000\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_FAILED),
|
| + MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| + // Give a couple authenticate options (only the middle one is actually
|
| + // supported).
|
| + MockRead("WWW-Authenticate: Basic invalid\r\n"), // Malformed.
|
| + MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("WWW-Authenticate: UNSUPPORTED realm=\"FOO\"\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + // Large content-length -- won't matter, as connection will be reset.
|
| + MockRead("Content-Length: 10000\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, ERR_FAILED),
|
| };
|
|
|
| // After calling trans->RestartWithAuth(), this is the request we should
|
| // be issuing -- the final header line contains the credentials.
|
| MockWrite data_writes2[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| };
|
|
|
| // Lastly, the server responds with the actual content.
|
| MockRead data_reads2[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| - };
|
| -
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - data_writes2, arraysize(data_writes2));
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| + };
|
| +
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| + StaticSocketDataProvider data2(data_reads2,
|
| + arraysize(data_reads2),
|
| + data_writes2,
|
| + arraysize(data_writes2));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
|
|
| @@ -1886,8 +1875,8 @@ TEST_P(HttpNetworkTransactionTest, BasicAuth) {
|
|
|
| TestCompletionCallback callback2;
|
|
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo, kBar), callback2.callback());
|
| + rv =
|
| + trans->RestartWithAuth(AuthCredentials(kFoo, kBar), callback2.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback2.WaitForResult();
|
| @@ -1922,22 +1911,23 @@ TEST_P(HttpNetworkTransactionTest, DoNotSendAuth) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - // Large content-length -- won't matter, as connection will be reset.
|
| - MockRead("Content-Length: 10000\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_FAILED),
|
| + MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| + MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + // Large content-length -- won't matter, as connection will be reset.
|
| + MockRead("Content-Length: 10000\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, ERR_FAILED),
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| TestCompletionCallback callback;
|
|
|
| @@ -1968,42 +1958,45 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthKeepAlive) {
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
|
|
| - // After calling trans->RestartWithAuth(), this is the request we should
|
| - // be issuing -- the final header line contains the credentials.
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| + // After calling trans->RestartWithAuth(), this is the request we should
|
| + // be issuing -- the final header line contains the credentials.
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.1 401 Unauthorized\r\n"),
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 14\r\n\r\n"),
|
| - MockRead("Unauthorized\r\n"),
|
| + MockRead("HTTP/1.1 401 Unauthorized\r\n"),
|
| + MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 14\r\n\r\n"),
|
| + MockRead("Unauthorized\r\n"),
|
|
|
| - // Lastly, the server responds with the actual content.
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 5\r\n\r\n"),
|
| - MockRead("Hello"),
|
| + // Lastly, the server responds with the actual content.
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 5\r\n\r\n"),
|
| + MockRead("Hello"),
|
| };
|
|
|
| // If there is a regression where we disconnect a Keep-Alive
|
| // connection during an auth roundtrip, we'll end up reading this.
|
| MockRead data_reads2[] = {
|
| - MockRead(SYNCHRONOUS, ERR_FAILED),
|
| + MockRead(SYNCHRONOUS, ERR_FAILED),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - NULL, 0);
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| + StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
|
|
| @@ -2027,8 +2020,8 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthKeepAlive) {
|
|
|
| TestCompletionCallback callback2;
|
|
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo, kBar), callback2.callback());
|
| + rv =
|
| + trans->RestartWithAuth(AuthCredentials(kFoo, kBar), callback2.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback2.WaitForResult();
|
| @@ -2066,39 +2059,42 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthKeepAliveNoBody) {
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
|
|
| - // After calling trans->RestartWithAuth(), this is the request we should
|
| - // be issuing -- the final header line contains the credentials.
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| + // After calling trans->RestartWithAuth(), this is the request we should
|
| + // be issuing -- the final header line contains the credentials.
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.1 401 Unauthorized\r\n"),
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Length: 0\r\n\r\n"), // No response body.
|
| + MockRead("HTTP/1.1 401 Unauthorized\r\n"),
|
| + MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Length: 0\r\n\r\n"), // No response body.
|
|
|
| - // Lastly, the server responds with the actual content.
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 5\r\n\r\n"),
|
| - MockRead("hello"),
|
| + // Lastly, the server responds with the actual content.
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 5\r\n\r\n"),
|
| + MockRead("hello"),
|
| };
|
|
|
| // An incorrect reconnect would cause this to be read.
|
| MockRead data_reads2[] = {
|
| - MockRead(SYNCHRONOUS, ERR_FAILED),
|
| + MockRead(SYNCHRONOUS, ERR_FAILED),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - NULL, 0);
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| + StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
|
|
| @@ -2118,8 +2114,8 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthKeepAliveNoBody) {
|
|
|
| TestCompletionCallback callback2;
|
|
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo, kBar), callback2.callback());
|
| + rv =
|
| + trans->RestartWithAuth(AuthCredentials(kFoo, kBar), callback2.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback2.WaitForResult();
|
| @@ -2142,16 +2138,18 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthKeepAliveLargeBody) {
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
|
|
| - // After calling trans->RestartWithAuth(), this is the request we should
|
| - // be issuing -- the final header line contains the credentials.
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| + // After calling trans->RestartWithAuth(), this is the request we should
|
| + // be issuing -- the final header line contains the credentials.
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| };
|
|
|
| // Respond with 5 kb of response body.
|
| @@ -2160,29 +2158,30 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthKeepAliveLargeBody) {
|
| large_body_string.append("\r\n");
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.1 401 Unauthorized\r\n"),
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - // 5134 = 12 + 5 * 1024 + 2
|
| - MockRead("Content-Length: 5134\r\n\r\n"),
|
| - MockRead(ASYNC, large_body_string.data(), large_body_string.size()),
|
| + MockRead("HTTP/1.1 401 Unauthorized\r\n"),
|
| + MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + // 5134 = 12 + 5 * 1024 + 2
|
| + MockRead("Content-Length: 5134\r\n\r\n"),
|
| + MockRead(ASYNC, large_body_string.data(), large_body_string.size()),
|
|
|
| - // Lastly, the server responds with the actual content.
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 5\r\n\r\n"),
|
| - MockRead("hello"),
|
| + // Lastly, the server responds with the actual content.
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 5\r\n\r\n"),
|
| + MockRead("hello"),
|
| };
|
|
|
| // An incorrect reconnect would cause this to be read.
|
| MockRead data_reads2[] = {
|
| - MockRead(SYNCHRONOUS, ERR_FAILED),
|
| + MockRead(SYNCHRONOUS, ERR_FAILED),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - NULL, 0);
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| + StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
|
|
| @@ -2202,8 +2201,8 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthKeepAliveLargeBody) {
|
|
|
| TestCompletionCallback callback2;
|
|
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo, kBar), callback2.callback());
|
| + rv =
|
| + trans->RestartWithAuth(AuthCredentials(kFoo, kBar), callback2.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback2.WaitForResult();
|
| @@ -2226,49 +2225,55 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthKeepAliveImpatientServer) {
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - // This simulates the seemingly successful write to a closed connection
|
| - // if the bug is not fixed.
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + // This simulates the seemingly successful write to a closed connection
|
| + // if the bug is not fixed.
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.1 401 Unauthorized\r\n"),
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 14\r\n\r\n"),
|
| - // Tell MockTCPClientSocket to simulate the server closing the connection.
|
| - MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
|
| - MockRead("Unauthorized\r\n"),
|
| - MockRead(SYNCHRONOUS, OK), // The server closes the connection.
|
| + MockRead("HTTP/1.1 401 Unauthorized\r\n"),
|
| + MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 14\r\n\r\n"),
|
| + // Tell MockTCPClientSocket to simulate the server closing the connection.
|
| + MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
|
| + MockRead("Unauthorized\r\n"),
|
| + MockRead(SYNCHRONOUS, OK), // The server closes the connection.
|
| };
|
|
|
| // After calling trans->RestartWithAuth(), this is the request we should
|
| // be issuing -- the final header line contains the credentials.
|
| MockWrite data_writes2[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| };
|
|
|
| // Lastly, the server responds with the actual content.
|
| MockRead data_reads2[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 5\r\n\r\n"),
|
| - MockRead("hello"),
|
| - };
|
| -
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - data_writes2, arraysize(data_writes2));
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 5\r\n\r\n"), MockRead("hello"),
|
| + };
|
| +
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| + StaticSocketDataProvider data2(data_reads2,
|
| + arraysize(data_reads2),
|
| + data_writes2,
|
| + arraysize(data_writes2));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
|
|
| @@ -2288,8 +2293,8 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthKeepAliveImpatientServer) {
|
|
|
| TestCompletionCallback callback2;
|
|
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo, kBar), callback2.callback());
|
| + rv =
|
| + trans->RestartWithAuth(AuthCredentials(kFoo, kBar), callback2.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback2.WaitForResult();
|
| @@ -2319,40 +2324,42 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthProxyNoKeepAlive) {
|
|
|
| // Since we have proxy, should try to establish tunnel.
|
| MockWrite data_writes1[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| -
|
| - // After calling trans->RestartWithAuth(), this is the request we should
|
| - // be issuing -- the final header line contains the credentials.
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n"
|
| - "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| -
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| +
|
| + // After calling trans->RestartWithAuth(), this is the request we should
|
| + // be issuing -- the final header line contains the credentials.
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n"
|
| + "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| // The proxy responds to the connect with a 407, using a persistent
|
| // connection.
|
| MockRead data_reads1[] = {
|
| - // No credentials.
|
| - MockRead("HTTP/1.1 407 Proxy Authentication Required\r\n"),
|
| - MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Proxy-Connection: close\r\n\r\n"),
|
| -
|
| - MockRead("HTTP/1.1 200 Connection Established\r\n\r\n"),
|
| -
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 5\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, "hello"),
|
| + // No credentials.
|
| + MockRead("HTTP/1.1 407 Proxy Authentication Required\r\n"),
|
| + MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Proxy-Connection: close\r\n\r\n"),
|
| + MockRead("HTTP/1.1 200 Connection Established\r\n\r\n"),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 5\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, "hello"),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
|
| @@ -2370,10 +2377,13 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthProxyNoKeepAlive) {
|
| net::CapturingNetLog::CapturedEntryList entries;
|
| log.GetEntries(&entries);
|
| size_t pos = ExpectLogContainsSomewhere(
|
| - entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS,
|
| + entries,
|
| + 0,
|
| + NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS,
|
| NetLog::PHASE_NONE);
|
| ExpectLogContainsSomewhere(
|
| - entries, pos,
|
| + entries,
|
| + pos,
|
| NetLog::TYPE_HTTP_TRANSACTION_READ_TUNNEL_RESPONSE_HEADERS,
|
| NetLog::PHASE_NONE);
|
|
|
| @@ -2391,8 +2401,8 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthProxyNoKeepAlive) {
|
|
|
| TestCompletionCallback callback2;
|
|
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo, kBar), callback2.callback());
|
| + rv =
|
| + trans->RestartWithAuth(AuthCredentials(kFoo, kBar), callback2.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback2.WaitForResult();
|
| @@ -2438,37 +2448,41 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthProxyKeepAlive) {
|
|
|
| // Since we have proxy, should try to establish tunnel.
|
| MockWrite data_writes1[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
|
|
| - // After calling trans->RestartWithAuth(), this is the request we should
|
| - // be issuing -- the final header line contains the credentials.
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n"
|
| - "Proxy-Authorization: Basic Zm9vOmJheg==\r\n\r\n"),
|
| + // After calling trans->RestartWithAuth(), this is the request we should
|
| + // be issuing -- the final header line contains the credentials.
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n"
|
| + "Proxy-Authorization: Basic Zm9vOmJheg==\r\n\r\n"),
|
| };
|
|
|
| // The proxy responds to the connect with a 407, using a persistent
|
| // connection.
|
| MockRead data_reads1[] = {
|
| - // No credentials.
|
| - MockRead("HTTP/1.1 407 Proxy Authentication Required\r\n"),
|
| - MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Length: 10\r\n\r\n"),
|
| - MockRead("0123456789"),
|
| -
|
| - // Wrong credentials (wrong password).
|
| - MockRead("HTTP/1.1 407 Proxy Authentication Required\r\n"),
|
| - MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Length: 10\r\n\r\n"),
|
| - // No response body because the test stops reading here.
|
| - MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached.
|
| - };
|
| -
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| + // No credentials.
|
| + MockRead("HTTP/1.1 407 Proxy Authentication Required\r\n"),
|
| + MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Length: 10\r\n\r\n"),
|
| + MockRead("0123456789"),
|
| +
|
| + // Wrong credentials (wrong password).
|
| + MockRead("HTTP/1.1 407 Proxy Authentication Required\r\n"),
|
| + MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Length: 10\r\n\r\n"),
|
| + // No response body because the test stops reading here.
|
| + MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached.
|
| + };
|
| +
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
|
|
| TestCompletionCallback callback1;
|
| @@ -2481,10 +2495,13 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthProxyKeepAlive) {
|
| net::CapturingNetLog::CapturedEntryList entries;
|
| log.GetEntries(&entries);
|
| size_t pos = ExpectLogContainsSomewhere(
|
| - entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS,
|
| + entries,
|
| + 0,
|
| + NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS,
|
| NetLog::PHASE_NONE);
|
| ExpectLogContainsSomewhere(
|
| - entries, pos,
|
| + entries,
|
| + pos,
|
| NetLog::TYPE_HTTP_TRANSACTION_READ_TUNNEL_RESPONSE_HEADERS,
|
| NetLog::PHASE_NONE);
|
|
|
| @@ -2500,8 +2517,8 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthProxyKeepAlive) {
|
| TestCompletionCallback callback2;
|
|
|
| // Wrong password (should be "bar").
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo, kBaz), callback2.callback());
|
| + rv =
|
| + trans->RestartWithAuth(AuthCredentials(kFoo, kBaz), callback2.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback2.WaitForResult();
|
| @@ -2539,21 +2556,22 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthProxyCancelTunnel) {
|
|
|
| // Since we have proxy, should try to establish tunnel.
|
| MockWrite data_writes[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| // The proxy responds to the connect with a 407.
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 407 Proxy Authentication Required\r\n"),
|
| - MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Length: 10\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached.
|
| + MockRead("HTTP/1.1 407 Proxy Authentication Required\r\n"),
|
| + MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Length: 10\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached.
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -2594,21 +2612,24 @@ TEST_P(HttpNetworkTransactionTest, UnexpectedProxyAuth) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.0 407 Proxy Auth required\r\n"),
|
| - MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - // Large content-length -- won't matter, as connection will be reset.
|
| - MockRead("Content-Length: 10000\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_FAILED),
|
| + MockRead("HTTP/1.0 407 Proxy Auth required\r\n"),
|
| + MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + // Large content-length -- won't matter, as connection will be reset.
|
| + MockRead("Content-Length: 10000\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, ERR_FAILED),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
|
|
| TestCompletionCallback callback;
|
| @@ -2627,8 +2648,7 @@ TEST_P(HttpNetworkTransactionTest, UnexpectedProxyAuth) {
|
| // a non-authenticating proxy - there is nothing to indicate whether the
|
| // response came from the proxy or the server, so it is treated as if the proxy
|
| // issued the challenge.
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - HttpsServerRequestsProxyAuthThroughProxy) {
|
| +TEST_P(HttpNetworkTransactionTest, HttpsServerRequestsProxyAuthThroughProxy) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.google.com/");
|
| @@ -2640,26 +2660,28 @@ TEST_P(HttpNetworkTransactionTest,
|
|
|
| // Since we have proxy, should try to establish tunnel.
|
| MockWrite data_writes1[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| -
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.1 200 Connection Established\r\n\r\n"),
|
| -
|
| - MockRead("HTTP/1.1 407 Unauthorized\r\n"),
|
| - MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 200 Connection Established\r\n\r\n"),
|
| + MockRead("HTTP/1.1 407 Unauthorized\r\n"),
|
| + MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
|
| @@ -2677,10 +2699,13 @@ TEST_P(HttpNetworkTransactionTest,
|
| net::CapturingNetLog::CapturedEntryList entries;
|
| log.GetEntries(&entries);
|
| size_t pos = ExpectLogContainsSomewhere(
|
| - entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS,
|
| + entries,
|
| + 0,
|
| + NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS,
|
| NetLog::PHASE_NONE);
|
| ExpectLogContainsSomewhere(
|
| - entries, pos,
|
| + entries,
|
| + pos,
|
| NetLog::TYPE_HTTP_TRANSACTION_READ_TUNNEL_RESPONSE_HEADERS,
|
| NetLog::PHASE_NONE);
|
| }
|
| @@ -2704,35 +2729,36 @@ TEST_P(HttpNetworkTransactionTest, HttpProxyLoadTimingNoPacTwoRequests) {
|
|
|
| // Since we have proxy, should try to establish tunnel.
|
| MockWrite data_writes1[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| -
|
| - MockWrite("GET /1 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| -
|
| - MockWrite("GET /2 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /1 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /2 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| // The proxy responds to the connect with a 407, using a persistent
|
| // connection.
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.1 200 Connection Established\r\n\r\n"),
|
| -
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Length: 1\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, "1"),
|
| -
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Length: 2\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, "22"),
|
| + MockRead("HTTP/1.1 200 Connection Established\r\n\r\n"),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Length: 1\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, "1"),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Length: 2\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, "22"),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
|
| @@ -2802,35 +2828,36 @@ TEST_P(HttpNetworkTransactionTest, HttpProxyLoadTimingWithPacTwoRequests) {
|
|
|
| // Since we have proxy, should try to establish tunnel.
|
| MockWrite data_writes1[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| -
|
| - MockWrite("GET /1 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| -
|
| - MockWrite("GET /2 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /1 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /2 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| // The proxy responds to the connect with a 407, using a persistent
|
| // connection.
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.1 200 Connection Established\r\n\r\n"),
|
| -
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Length: 1\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, "1"),
|
| -
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Length: 2\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, "22"),
|
| + MockRead("HTTP/1.1 200 Connection Established\r\n\r\n"),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Length: 1\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, "1"),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Length: 2\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, "22"),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
|
| @@ -2889,28 +2916,30 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxyGet) {
|
| request.url = GURL("http://www.google.com/");
|
|
|
| // Configure against https proxy server "proxy:70".
|
| - session_deps_.proxy_service.reset(ProxyService::CreateFixed(
|
| - "https://proxy:70"));
|
| + session_deps_.proxy_service.reset(
|
| + ProxyService::CreateFixed("https://proxy:70"));
|
| CapturingBoundNetLog log;
|
| session_deps_.net_log = log.bound().net_log();
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| // Since we have proxy, should use full url
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET http://www.google.com/ HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET http://www.google.com/ HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
|
| @@ -2951,8 +2980,8 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyGet) {
|
| request.load_flags = 0;
|
|
|
| // Configure against https proxy server "proxy:70".
|
| - session_deps_.proxy_service.reset(ProxyService::CreateFixed(
|
| - "https://proxy:70"));
|
| + session_deps_.proxy_service.reset(
|
| + ProxyService::CreateFixed("https://proxy:70"));
|
| CapturingBoundNetLog log;
|
| session_deps_.net_log = log.bound().net_log();
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| @@ -2960,20 +2989,20 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyGet) {
|
| // fetch http://www.google.com/ via SPDY
|
| scoped_ptr<SpdyFrame> req(
|
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false));
|
| - MockWrite spdy_writes[] = { CreateMockWrite(*req) };
|
| + MockWrite spdy_writes[] = {CreateMockWrite(*req)};
|
|
|
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| scoped_ptr<SpdyFrame> data(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*resp),
|
| - CreateMockRead(*data),
|
| - MockRead(ASYNC, 0, 0),
|
| + CreateMockRead(*resp), CreateMockRead(*data), MockRead(ASYNC, 0, 0),
|
| };
|
|
|
| DelayedSocketData spdy_data(
|
| 1, // wait for one write to finish before reading.
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + spdy_reads,
|
| + arraysize(spdy_reads),
|
| + spdy_writes,
|
| + arraysize(spdy_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| @@ -3024,9 +3053,8 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyGetWithProxyAuth) {
|
| // GET with a Proxy-Authorization header.
|
| scoped_ptr<SpdyFrame> req_get(
|
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false));
|
| - const char* const kExtraAuthorizationHeaders[] = {
|
| - "proxy-authorization", "Basic Zm9vOmJhcg=="
|
| - };
|
| + const char* const kExtraAuthorizationHeaders[] = {"proxy-authorization",
|
| + "Basic Zm9vOmJhcg=="};
|
| scoped_ptr<SpdyFrame> req_get_authorization(
|
| spdy_util_.ConstructSpdyGet(kExtraAuthorizationHeaders,
|
| arraysize(kExtraAuthorizationHeaders) / 2,
|
| @@ -3035,20 +3063,19 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyGetWithProxyAuth) {
|
| LOWEST,
|
| false));
|
| MockWrite spdy_writes[] = {
|
| - CreateMockWrite(*req_get, 1),
|
| - CreateMockWrite(*req_get_authorization, 4),
|
| + CreateMockWrite(*req_get, 1), CreateMockWrite(*req_get_authorization, 4),
|
| };
|
|
|
| // The first response is a 407 proxy authentication challenge, and the second
|
| // response will be a 200 response since the second request includes a valid
|
| // Authorization header.
|
| const char* const kExtraAuthenticationHeaders[] = {
|
| - "proxy-authenticate", "Basic realm=\"MyRealm1\""
|
| - };
|
| + "proxy-authenticate", "Basic realm=\"MyRealm1\""};
|
| scoped_ptr<SpdyFrame> resp_authentication(
|
| spdy_util_.ConstructSpdySynReplyError(
|
| "407 Proxy Authentication Required",
|
| - kExtraAuthenticationHeaders, arraysize(kExtraAuthenticationHeaders)/2,
|
| + kExtraAuthenticationHeaders,
|
| + arraysize(kExtraAuthenticationHeaders) / 2,
|
| 1));
|
| scoped_ptr<SpdyFrame> body_authentication(
|
| spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| @@ -3056,16 +3083,15 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyGetWithProxyAuth) {
|
| spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3));
|
| scoped_ptr<SpdyFrame> body_data(spdy_util_.ConstructSpdyBodyFrame(3, true));
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*resp_authentication, 2),
|
| - CreateMockRead(*body_authentication, 3),
|
| - CreateMockRead(*resp_data, 5),
|
| - CreateMockRead(*body_data, 6),
|
| - MockRead(ASYNC, 0, 7),
|
| + CreateMockRead(*resp_authentication, 2),
|
| + CreateMockRead(*body_authentication, 3),
|
| + CreateMockRead(*resp_data, 5),
|
| + CreateMockRead(*body_data, 6),
|
| + MockRead(ASYNC, 0, 7),
|
| };
|
|
|
| OrderedSocketData data(
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + spdy_reads, arraysize(spdy_reads), spdy_writes, arraysize(spdy_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| @@ -3093,8 +3119,8 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyGetWithProxyAuth) {
|
|
|
| TestCompletionCallback callback2;
|
|
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo, kBar), callback2.callback());
|
| + rv =
|
| + trans->RestartWithAuth(AuthCredentials(kFoo, kBar), callback2.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback2.WaitForResult();
|
| @@ -3117,8 +3143,8 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyConnectHttps) {
|
| request.load_flags = 0;
|
|
|
| // Configure against https proxy server "proxy:70".
|
| - session_deps_.proxy_service.reset(ProxyService::CreateFixed(
|
| - "https://proxy:70"));
|
| + session_deps_.proxy_service.reset(
|
| + ProxyService::CreateFixed("https://proxy:70"));
|
| CapturingBoundNetLog log;
|
| session_deps_.net_log = log.bound().net_log();
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| @@ -3127,18 +3153,20 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyConnectHttps) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
|
|
| // CONNECT to www.google.com:443 via SPDY
|
| - scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect(NULL, 0, 1,
|
| - LOWEST));
|
| + scoped_ptr<SpdyFrame> connect(
|
| + spdy_util_.ConstructSpdyConnect(NULL, 0, 1, LOWEST));
|
| // fetch https://www.google.com/ via HTTP
|
|
|
| - const char get[] = "GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n";
|
| + const char get[] =
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n";
|
| scoped_ptr<SpdyFrame> wrapped_get(
|
| spdy_util_.ConstructSpdyBodyFrame(1, get, strlen(get), false));
|
| scoped_ptr<SpdyFrame> conn_resp(
|
| spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| - const char resp[] = "HTTP/1.1 200 OK\r\n"
|
| + const char resp[] =
|
| + "HTTP/1.1 200 OK\r\n"
|
| "Content-Length: 10\r\n\r\n";
|
| scoped_ptr<SpdyFrame> wrapped_get_resp(
|
| spdy_util_.ConstructSpdyBodyFrame(1, resp, strlen(resp), false));
|
| @@ -3148,22 +3176,20 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyConnectHttps) {
|
| spdy_util_.ConstructSpdyWindowUpdate(1, wrapped_get_resp->size()));
|
|
|
| MockWrite spdy_writes[] = {
|
| - CreateMockWrite(*connect, 1),
|
| - CreateMockWrite(*wrapped_get, 3),
|
| + CreateMockWrite(*connect, 1), CreateMockWrite(*wrapped_get, 3),
|
| CreateMockWrite(*window_update, 5),
|
| };
|
|
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*conn_resp, 2, ASYNC),
|
| - CreateMockRead(*wrapped_get_resp, 4, ASYNC),
|
| - CreateMockRead(*wrapped_body, 6, ASYNC),
|
| - CreateMockRead(*wrapped_body, 7, ASYNC),
|
| - MockRead(ASYNC, 0, 8),
|
| + CreateMockRead(*conn_resp, 2, ASYNC),
|
| + CreateMockRead(*wrapped_get_resp, 4, ASYNC),
|
| + CreateMockRead(*wrapped_body, 6, ASYNC),
|
| + CreateMockRead(*wrapped_body, 7, ASYNC),
|
| + MockRead(ASYNC, 0, 8),
|
| };
|
|
|
| OrderedSocketData spdy_data(
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + spdy_reads, arraysize(spdy_reads), spdy_writes, arraysize(spdy_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| @@ -3204,8 +3230,8 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyConnectSpdy) {
|
| request.load_flags = 0;
|
|
|
| // Configure against https proxy server "proxy:70".
|
| - session_deps_.proxy_service.reset(ProxyService::CreateFixed(
|
| - "https://proxy:70"));
|
| + session_deps_.proxy_service.reset(
|
| + ProxyService::CreateFixed("https://proxy:70"));
|
| CapturingBoundNetLog log;
|
| session_deps_.net_log = log.bound().net_log();
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| @@ -3214,8 +3240,8 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyConnectSpdy) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
|
|
| // CONNECT to www.google.com:443 via SPDY
|
| - scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect(NULL, 0, 1,
|
| - LOWEST));
|
| + scoped_ptr<SpdyFrame> connect(
|
| + spdy_util_.ConstructSpdyConnect(NULL, 0, 1, LOWEST));
|
| // fetch https://www.google.com/ via SPDY
|
| const char* const kMyUrl = "https://www.google.com/";
|
| scoped_ptr<SpdyFrame> get(
|
| @@ -3237,22 +3263,19 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyConnectSpdy) {
|
| spdy_util_.ConstructSpdyWindowUpdate(1, wrapped_body->size()));
|
|
|
| MockWrite spdy_writes[] = {
|
| - CreateMockWrite(*connect, 1),
|
| - CreateMockWrite(*wrapped_get, 3),
|
| + CreateMockWrite(*connect, 1), CreateMockWrite(*wrapped_get, 3),
|
| CreateMockWrite(*window_update_get_resp, 5),
|
| CreateMockWrite(*window_update_body, 7),
|
| };
|
|
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*conn_resp, 2, ASYNC),
|
| - CreateMockRead(*wrapped_get_resp, 4, ASYNC),
|
| - CreateMockRead(*wrapped_body, 6, ASYNC),
|
| - MockRead(ASYNC, 0, 8),
|
| + CreateMockRead(*conn_resp, 2, ASYNC),
|
| + CreateMockRead(*wrapped_get_resp, 4, ASYNC),
|
| + CreateMockRead(*wrapped_body, 6, ASYNC), MockRead(ASYNC, 0, 8),
|
| };
|
|
|
| OrderedSocketData spdy_data(
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + spdy_reads, arraysize(spdy_reads), spdy_writes, arraysize(spdy_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| @@ -3293,8 +3316,8 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyConnectFailure) {
|
| request.load_flags = 0;
|
|
|
| // Configure against https proxy server "proxy:70".
|
| - session_deps_.proxy_service.reset(ProxyService::CreateFixed(
|
| - "https://proxy:70"));
|
| + session_deps_.proxy_service.reset(
|
| + ProxyService::CreateFixed("https://proxy:70"));
|
| CapturingBoundNetLog log;
|
| session_deps_.net_log = log.bound().net_log();
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| @@ -3303,26 +3326,23 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyConnectFailure) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
|
|
| // CONNECT to www.google.com:443 via SPDY
|
| - scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect(NULL, 0, 1,
|
| - LOWEST));
|
| + scoped_ptr<SpdyFrame> connect(
|
| + spdy_util_.ConstructSpdyConnect(NULL, 0, 1, LOWEST));
|
| scoped_ptr<SpdyFrame> get(
|
| spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL));
|
|
|
| MockWrite spdy_writes[] = {
|
| - CreateMockWrite(*connect, 1),
|
| - CreateMockWrite(*get, 3),
|
| + CreateMockWrite(*connect, 1), CreateMockWrite(*get, 3),
|
| };
|
|
|
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdySynReplyError(1));
|
| scoped_ptr<SpdyFrame> data(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*resp, 2, ASYNC),
|
| - MockRead(ASYNC, 0, 4),
|
| + CreateMockRead(*resp, 2, ASYNC), MockRead(ASYNC, 0, 4),
|
| };
|
|
|
| OrderedSocketData spdy_data(
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + spdy_reads, arraysize(spdy_reads), spdy_writes, arraysize(spdy_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| @@ -3348,8 +3368,8 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyConnectFailure) {
|
| TEST_P(HttpNetworkTransactionTest,
|
| HttpsProxySpdyConnectHttpsLoadTimingTwoRequestsTwoServers) {
|
| // Configure against https proxy server "proxy:70".
|
| - session_deps_.proxy_service.reset(ProxyService::CreateFixed(
|
| - "https://proxy:70"));
|
| + session_deps_.proxy_service.reset(
|
| + ProxyService::CreateFixed("https://proxy:70"));
|
| CapturingBoundNetLog log;
|
| session_deps_.net_log = log.bound().net_log();
|
| scoped_refptr<HttpNetworkSession> session(
|
| @@ -3366,18 +3386,20 @@ TEST_P(HttpNetworkTransactionTest,
|
| request2.load_flags = 0;
|
|
|
| // CONNECT to www.google.com:443 via SPDY.
|
| - scoped_ptr<SpdyFrame> connect1(spdy_util_.ConstructSpdyConnect(NULL, 0, 1,
|
| - LOWEST));
|
| + scoped_ptr<SpdyFrame> connect1(
|
| + spdy_util_.ConstructSpdyConnect(NULL, 0, 1, LOWEST));
|
| scoped_ptr<SpdyFrame> conn_resp1(
|
| spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
|
|
| // Fetch https://www.google.com/ via HTTP.
|
| - const char get1[] = "GET / HTTP/1.1\r\n"
|
| + const char get1[] =
|
| + "GET / HTTP/1.1\r\n"
|
| "Host: www.google.com\r\n"
|
| "Connection: keep-alive\r\n\r\n";
|
| scoped_ptr<SpdyFrame> wrapped_get1(
|
| spdy_util_.ConstructSpdyBodyFrame(1, get1, strlen(get1), false));
|
| - const char resp1[] = "HTTP/1.1 200 OK\r\n"
|
| + const char resp1[] =
|
| + "HTTP/1.1 200 OK\r\n"
|
| "Content-Length: 1\r\n\r\n";
|
| scoped_ptr<SpdyFrame> wrapped_get_resp1(
|
| spdy_util_.ConstructSpdyBodyFrame(1, resp1, strlen(resp1), false));
|
| @@ -3400,12 +3422,14 @@ TEST_P(HttpNetworkTransactionTest,
|
| spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3));
|
|
|
| // Fetch https://news.google.com/ via HTTP.
|
| - const char get2[] = "GET / HTTP/1.1\r\n"
|
| + const char get2[] =
|
| + "GET / HTTP/1.1\r\n"
|
| "Host: news.google.com\r\n"
|
| "Connection: keep-alive\r\n\r\n";
|
| scoped_ptr<SpdyFrame> wrapped_get2(
|
| spdy_util_.ConstructSpdyBodyFrame(3, get2, strlen(get2), false));
|
| - const char resp2[] = "HTTP/1.1 200 OK\r\n"
|
| + const char resp2[] =
|
| + "HTTP/1.1 200 OK\r\n"
|
| "Content-Length: 2\r\n\r\n";
|
| scoped_ptr<SpdyFrame> wrapped_get_resp2(
|
| spdy_util_.ConstructSpdyBodyFrame(3, resp2, strlen(resp2), false));
|
| @@ -3413,25 +3437,22 @@ TEST_P(HttpNetworkTransactionTest,
|
| spdy_util_.ConstructSpdyBodyFrame(3, "22", 2, false));
|
|
|
| MockWrite spdy_writes[] = {
|
| - CreateMockWrite(*connect1, 0),
|
| - CreateMockWrite(*wrapped_get1, 2),
|
| - CreateMockWrite(*connect2, 5),
|
| - CreateMockWrite(*wrapped_get2, 7),
|
| + CreateMockWrite(*connect1, 0), CreateMockWrite(*wrapped_get1, 2),
|
| + CreateMockWrite(*connect2, 5), CreateMockWrite(*wrapped_get2, 7),
|
| };
|
|
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*conn_resp1, 1, ASYNC),
|
| - CreateMockRead(*wrapped_get_resp1, 3, ASYNC),
|
| - CreateMockRead(*wrapped_body1, 4, ASYNC),
|
| - CreateMockRead(*conn_resp2, 6, ASYNC),
|
| - CreateMockRead(*wrapped_get_resp2, 8, ASYNC),
|
| - CreateMockRead(*wrapped_body2, 9, ASYNC),
|
| - MockRead(ASYNC, 0, 10),
|
| + CreateMockRead(*conn_resp1, 1, ASYNC),
|
| + CreateMockRead(*wrapped_get_resp1, 3, ASYNC),
|
| + CreateMockRead(*wrapped_body1, 4, ASYNC),
|
| + CreateMockRead(*conn_resp2, 6, ASYNC),
|
| + CreateMockRead(*wrapped_get_resp2, 8, ASYNC),
|
| + CreateMockRead(*wrapped_body2, 9, ASYNC),
|
| + MockRead(ASYNC, 0, 10),
|
| };
|
|
|
| DeterministicSocketData spdy_data(
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + spdy_reads, arraysize(spdy_reads), spdy_writes, arraysize(spdy_writes));
|
| session_deps_.deterministic_socket_factory->AddSocketDataProvider(&spdy_data);
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| @@ -3499,8 +3520,8 @@ TEST_P(HttpNetworkTransactionTest,
|
| TEST_P(HttpNetworkTransactionTest,
|
| HttpsProxySpdyConnectHttpsLoadTimingTwoRequestsSameServer) {
|
| // Configure against https proxy server "proxy:70".
|
| - session_deps_.proxy_service.reset(ProxyService::CreateFixed(
|
| - "https://proxy:70"));
|
| + session_deps_.proxy_service.reset(
|
| + ProxyService::CreateFixed("https://proxy:70"));
|
| CapturingBoundNetLog log;
|
| session_deps_.net_log = log.bound().net_log();
|
| scoped_refptr<HttpNetworkSession> session(
|
| @@ -3517,18 +3538,20 @@ TEST_P(HttpNetworkTransactionTest,
|
| request2.load_flags = 0;
|
|
|
| // CONNECT to www.google.com:443 via SPDY.
|
| - scoped_ptr<SpdyFrame> connect1(spdy_util_.ConstructSpdyConnect(NULL, 0, 1,
|
| - LOWEST));
|
| + scoped_ptr<SpdyFrame> connect1(
|
| + spdy_util_.ConstructSpdyConnect(NULL, 0, 1, LOWEST));
|
| scoped_ptr<SpdyFrame> conn_resp1(
|
| spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
|
|
| // Fetch https://www.google.com/ via HTTP.
|
| - const char get1[] = "GET / HTTP/1.1\r\n"
|
| + const char get1[] =
|
| + "GET / HTTP/1.1\r\n"
|
| "Host: www.google.com\r\n"
|
| "Connection: keep-alive\r\n\r\n";
|
| scoped_ptr<SpdyFrame> wrapped_get1(
|
| spdy_util_.ConstructSpdyBodyFrame(1, get1, strlen(get1), false));
|
| - const char resp1[] = "HTTP/1.1 200 OK\r\n"
|
| + const char resp1[] =
|
| + "HTTP/1.1 200 OK\r\n"
|
| "Content-Length: 1\r\n\r\n";
|
| scoped_ptr<SpdyFrame> wrapped_get_resp1(
|
| spdy_util_.ConstructSpdyBodyFrame(1, resp1, strlen(resp1), false));
|
| @@ -3538,12 +3561,14 @@ TEST_P(HttpNetworkTransactionTest,
|
| spdy_util_.ConstructSpdyWindowUpdate(1, wrapped_get_resp1->size()));
|
|
|
| // Fetch https://www.google.com/2 via HTTP.
|
| - const char get2[] = "GET /2 HTTP/1.1\r\n"
|
| + const char get2[] =
|
| + "GET /2 HTTP/1.1\r\n"
|
| "Host: www.google.com\r\n"
|
| "Connection: keep-alive\r\n\r\n";
|
| scoped_ptr<SpdyFrame> wrapped_get2(
|
| spdy_util_.ConstructSpdyBodyFrame(1, get2, strlen(get2), false));
|
| - const char resp2[] = "HTTP/1.1 200 OK\r\n"
|
| + const char resp2[] =
|
| + "HTTP/1.1 200 OK\r\n"
|
| "Content-Length: 2\r\n\r\n";
|
| scoped_ptr<SpdyFrame> wrapped_get_resp2(
|
| spdy_util_.ConstructSpdyBodyFrame(1, resp2, strlen(resp2), false));
|
| @@ -3551,23 +3576,21 @@ TEST_P(HttpNetworkTransactionTest,
|
| spdy_util_.ConstructSpdyBodyFrame(1, "22", 2, false));
|
|
|
| MockWrite spdy_writes[] = {
|
| - CreateMockWrite(*connect1, 0),
|
| - CreateMockWrite(*wrapped_get1, 2),
|
| + CreateMockWrite(*connect1, 0), CreateMockWrite(*wrapped_get1, 2),
|
| CreateMockWrite(*wrapped_get2, 5),
|
| };
|
|
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*conn_resp1, 1, ASYNC),
|
| - CreateMockRead(*wrapped_get_resp1, 3, ASYNC),
|
| - CreateMockRead(*wrapped_body1, 4, ASYNC),
|
| - CreateMockRead(*wrapped_get_resp2, 6, ASYNC),
|
| - CreateMockRead(*wrapped_body2, 7, ASYNC),
|
| - MockRead(ASYNC, 0, 8),
|
| + CreateMockRead(*conn_resp1, 1, ASYNC),
|
| + CreateMockRead(*wrapped_get_resp1, 3, ASYNC),
|
| + CreateMockRead(*wrapped_body1, 4, ASYNC),
|
| + CreateMockRead(*wrapped_get_resp2, 6, ASYNC),
|
| + CreateMockRead(*wrapped_body2, 7, ASYNC),
|
| + MockRead(ASYNC, 0, 8),
|
| };
|
|
|
| DeterministicSocketData spdy_data(
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + spdy_reads, arraysize(spdy_reads), spdy_writes, arraysize(spdy_writes));
|
| session_deps_.deterministic_socket_factory->AddSocketDataProvider(&spdy_data);
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| @@ -3627,11 +3650,10 @@ TEST_P(HttpNetworkTransactionTest,
|
|
|
| // Test load timing in the case of of two HTTP requests through a SPDY HTTPS
|
| // Proxy to different servers.
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - HttpsProxySpdyLoadTimingTwoHttpRequests) {
|
| +TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyLoadTimingTwoHttpRequests) {
|
| // Configure against https proxy server "proxy:70".
|
| - session_deps_.proxy_service.reset(ProxyService::CreateFixed(
|
| - "https://proxy:70"));
|
| + session_deps_.proxy_service.reset(
|
| + ProxyService::CreateFixed("https://proxy:70"));
|
| CapturingBoundNetLog log;
|
| session_deps_.net_log = log.bound().net_log();
|
| scoped_refptr<HttpNetworkSession> session(
|
| @@ -3668,21 +3690,17 @@ TEST_P(HttpNetworkTransactionTest,
|
| spdy_util_.ConstructSpdyBodyFrame(3, "22", 2, true));
|
|
|
| MockWrite spdy_writes[] = {
|
| - CreateMockWrite(*get1, 0),
|
| - CreateMockWrite(*get2, 3),
|
| + CreateMockWrite(*get1, 0), CreateMockWrite(*get2, 3),
|
| };
|
|
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*get_resp1, 1, ASYNC),
|
| - CreateMockRead(*body1, 2, ASYNC),
|
| - CreateMockRead(*get_resp2, 4, ASYNC),
|
| - CreateMockRead(*body2, 5, ASYNC),
|
| - MockRead(ASYNC, 0, 6),
|
| + CreateMockRead(*get_resp1, 1, ASYNC), CreateMockRead(*body1, 2, ASYNC),
|
| + CreateMockRead(*get_resp2, 4, ASYNC), CreateMockRead(*body2, 5, ASYNC),
|
| + MockRead(ASYNC, 0, 6),
|
| };
|
|
|
| DeterministicSocketData spdy_data(
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + spdy_reads, arraysize(spdy_reads), spdy_writes, arraysize(spdy_writes));
|
| session_deps_.deterministic_socket_factory->AddSocketDataProvider(&spdy_data);
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| @@ -3756,35 +3774,38 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxyAuthRetry) {
|
|
|
| // Since we have proxy, should use full url
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET http://www.google.com/ HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET http://www.google.com/ HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
|
|
| - // After calling trans->RestartWithAuth(), this is the request we should
|
| - // be issuing -- the final header line contains the credentials.
|
| - MockWrite("GET http://www.google.com/ HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n"
|
| - "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| + // After calling trans->RestartWithAuth(), this is the request we should
|
| + // be issuing -- the final header line contains the credentials.
|
| + MockWrite(
|
| + "GET http://www.google.com/ HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n"
|
| + "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| };
|
|
|
| // The proxy responds to the GET with a 407, using a persistent
|
| // connection.
|
| MockRead data_reads1[] = {
|
| - // No credentials.
|
| - MockRead("HTTP/1.1 407 Proxy Authentication Required\r\n"),
|
| - MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Proxy-Connection: keep-alive\r\n"),
|
| - MockRead("Content-Length: 0\r\n\r\n"),
|
| -
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + // No credentials.
|
| + MockRead("HTTP/1.1 407 Proxy Authentication Required\r\n"),
|
| + MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Proxy-Connection: keep-alive\r\n"),
|
| + MockRead("Content-Length: 0\r\n\r\n"),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
|
| @@ -3814,8 +3835,8 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxyAuthRetry) {
|
|
|
| TestCompletionCallback callback2;
|
|
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo, kBar), callback2.callback());
|
| + rv =
|
| + trans->RestartWithAuth(AuthCredentials(kFoo, kBar), callback2.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback2.WaitForResult();
|
| @@ -3839,7 +3860,8 @@ TEST_P(HttpNetworkTransactionTest, HttpsProxyAuthRetry) {
|
| }
|
|
|
| void HttpNetworkTransactionTest::ConnectStatusHelperWithExpectedStatus(
|
| - const MockRead& status, int expected_status) {
|
| + const MockRead& status,
|
| + int expected_status) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.google.com/");
|
| @@ -3851,20 +3873,20 @@ void HttpNetworkTransactionTest::ConnectStatusHelperWithExpectedStatus(
|
|
|
| // Since we have proxy, should try to establish tunnel.
|
| MockWrite data_writes[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - status,
|
| - MockRead("Content-Length: 10\r\n\r\n"),
|
| - // No response body because the test stops reading here.
|
| - MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached.
|
| + status, MockRead("Content-Length: 10\r\n\r\n"),
|
| + // No response body because the test stops reading here.
|
| + MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached.
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -3879,10 +3901,8 @@ void HttpNetworkTransactionTest::ConnectStatusHelperWithExpectedStatus(
|
| EXPECT_EQ(expected_status, rv);
|
| }
|
|
|
| -void HttpNetworkTransactionTest::ConnectStatusHelper(
|
| - const MockRead& status) {
|
| - ConnectStatusHelperWithExpectedStatus(
|
| - status, ERR_TUNNEL_CONNECTION_FAILED);
|
| +void HttpNetworkTransactionTest::ConnectStatusHelper(const MockRead& status) {
|
| + ConnectStatusHelperWithExpectedStatus(status, ERR_TUNNEL_CONNECTION_FAILED);
|
| }
|
|
|
| TEST_P(HttpNetworkTransactionTest, ConnectStatus100) {
|
| @@ -4070,70 +4090,78 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthProxyThenServer) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET http://www.google.com/ HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET http://www.google.com/ HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.0 407 Unauthorized\r\n"),
|
| - // Give a couple authenticate options (only the middle one is actually
|
| - // supported).
|
| - MockRead("Proxy-Authenticate: Basic invalid\r\n"), // Malformed.
|
| - MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Proxy-Authenticate: UNSUPPORTED realm=\"FOO\"\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - // Large content-length -- won't matter, as connection will be reset.
|
| - MockRead("Content-Length: 10000\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_FAILED),
|
| + MockRead("HTTP/1.0 407 Unauthorized\r\n"),
|
| + // Give a couple authenticate options (only the middle one is actually
|
| + // supported).
|
| + MockRead("Proxy-Authenticate: Basic invalid\r\n"), // Malformed.
|
| + MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Proxy-Authenticate: UNSUPPORTED realm=\"FOO\"\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + // Large content-length -- won't matter, as connection will be reset.
|
| + MockRead("Content-Length: 10000\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, ERR_FAILED),
|
| };
|
|
|
| // After calling trans->RestartWithAuth() the first time, this is the
|
| // request we should be issuing -- the final header line contains the
|
| // proxy's credentials.
|
| MockWrite data_writes2[] = {
|
| - MockWrite("GET http://www.google.com/ HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n"
|
| - "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| + MockWrite(
|
| + "GET http://www.google.com/ HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n"
|
| + "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| };
|
|
|
| // Now the proxy server lets the request pass through to origin server.
|
| // The origin server responds with a 401.
|
| MockRead data_reads2[] = {
|
| - MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| - // Note: We are using the same realm-name as the proxy server. This is
|
| - // completely valid, as realms are unique across hosts.
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 2000\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_FAILED), // Won't be reached.
|
| + MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| + // Note: We are using the same realm-name as the proxy server. This is
|
| + // completely valid, as realms are unique across hosts.
|
| + MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 2000\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, ERR_FAILED), // Won't be reached.
|
| };
|
|
|
| // After calling trans->RestartWithAuth() the second time, we should send
|
| // the credentials for both the proxy and origin server.
|
| MockWrite data_writes3[] = {
|
| - MockWrite("GET http://www.google.com/ HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n"
|
| - "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n"
|
| - "Authorization: Basic Zm9vMjpiYXIy\r\n\r\n"),
|
| + MockWrite(
|
| + "GET http://www.google.com/ HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n"
|
| + "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n"
|
| + "Authorization: Basic Zm9vMjpiYXIy\r\n\r\n"),
|
| };
|
|
|
| // Lastly we get the desired content.
|
| MockRead data_reads3[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| - };
|
| -
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - data_writes2, arraysize(data_writes2));
|
| - StaticSocketDataProvider data3(data_reads3, arraysize(data_reads3),
|
| - data_writes3, arraysize(data_writes3));
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| + };
|
| +
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| + StaticSocketDataProvider data2(data_reads2,
|
| + arraysize(data_reads2),
|
| + data_writes2,
|
| + arraysize(data_writes2));
|
| + StaticSocketDataProvider data3(data_reads3,
|
| + arraysize(data_reads3),
|
| + data_writes3,
|
| + arraysize(data_writes3));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data3);
|
| @@ -4152,8 +4180,8 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthProxyThenServer) {
|
|
|
| TestCompletionCallback callback2;
|
|
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo, kBar), callback2.callback());
|
| + rv =
|
| + trans->RestartWithAuth(AuthCredentials(kFoo, kBar), callback2.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback2.WaitForResult();
|
| @@ -4165,8 +4193,8 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthProxyThenServer) {
|
|
|
| TestCompletionCallback callback3;
|
|
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo2, kBar2), callback3.callback());
|
| + rv = trans->RestartWithAuth(AuthCredentials(kFoo2, kBar2),
|
| + callback3.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback3.WaitForResult();
|
| @@ -4200,74 +4228,81 @@ TEST_P(HttpNetworkTransactionTest, NTLMAuth1) {
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET /kids/login.aspx HTTP/1.1\r\n"
|
| - "Host: 172.22.68.17\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /kids/login.aspx HTTP/1.1\r\n"
|
| + "Host: 172.22.68.17\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.1 401 Access Denied\r\n"),
|
| - // Negotiate and NTLM are often requested together. However, we only want
|
| - // to test NTLM. Since Negotiate is preferred over NTLM, we have to skip
|
| - // the header that requests Negotiate for this test.
|
| - MockRead("WWW-Authenticate: NTLM\r\n"),
|
| - MockRead("Connection: close\r\n"),
|
| - MockRead("Content-Length: 42\r\n"),
|
| - MockRead("Content-Type: text/html\r\n\r\n"),
|
| - // Missing content -- won't matter, as connection will be reset.
|
| - MockRead(SYNCHRONOUS, ERR_UNEXPECTED),
|
| + MockRead("HTTP/1.1 401 Access Denied\r\n"),
|
| + // Negotiate and NTLM are often requested together. However, we only want
|
| + // to test NTLM. Since Negotiate is preferred over NTLM, we have to skip
|
| + // the header that requests Negotiate for this test.
|
| + MockRead("WWW-Authenticate: NTLM\r\n"),
|
| + MockRead("Connection: close\r\n"),
|
| + MockRead("Content-Length: 42\r\n"),
|
| + MockRead("Content-Type: text/html\r\n\r\n"),
|
| + // Missing content -- won't matter, as connection will be reset.
|
| + MockRead(SYNCHRONOUS, ERR_UNEXPECTED),
|
| };
|
|
|
| MockWrite data_writes2[] = {
|
| - // After restarting with a null identity, this is the
|
| - // request we should be issuing -- the final header line contains a Type
|
| - // 1 message.
|
| - MockWrite("GET /kids/login.aspx HTTP/1.1\r\n"
|
| - "Host: 172.22.68.17\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: NTLM "
|
| - "TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=\r\n\r\n"),
|
| -
|
| - // After calling trans->RestartWithAuth(), we should send a Type 3 message
|
| - // (the credentials for the origin server). The second request continues
|
| - // on the same connection.
|
| - MockWrite("GET /kids/login.aspx HTTP/1.1\r\n"
|
| - "Host: 172.22.68.17\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: NTLM TlRMTVNTUAADAAAAGAAYAGgAAAAYABgAgA"
|
| - "AAAAAAAABAAAAAGAAYAEAAAAAQABAAWAAAAAAAAAAAAAAABYIIAHQA"
|
| - "ZQBzAHQAaQBuAGcALQBuAHQAbABtAFcAVABDAC0AVwBJAE4ANwBVKW"
|
| - "Yma5xzVAAAAAAAAAAAAAAAAAAAAACH+gWcm+YsP9Tqb9zCR3WAeZZX"
|
| - "ahlhx5I=\r\n\r\n"),
|
| + // After restarting with a null identity, this is the
|
| + // request we should be issuing -- the final header line contains a Type
|
| + // 1 message.
|
| + MockWrite(
|
| + "GET /kids/login.aspx HTTP/1.1\r\n"
|
| + "Host: 172.22.68.17\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: NTLM "
|
| + "TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=\r\n\r\n"),
|
| +
|
| + // After calling trans->RestartWithAuth(), we should send a Type 3 message
|
| + // (the credentials for the origin server). The second request continues
|
| + // on the same connection.
|
| + MockWrite(
|
| + "GET /kids/login.aspx HTTP/1.1\r\n"
|
| + "Host: 172.22.68.17\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: NTLM TlRMTVNTUAADAAAAGAAYAGgAAAAYABgAgA"
|
| + "AAAAAAAABAAAAAGAAYAEAAAAAQABAAWAAAAAAAAAAAAAAABYIIAHQA"
|
| + "ZQBzAHQAaQBuAGcALQBuAHQAbABtAFcAVABDAC0AVwBJAE4ANwBVKW"
|
| + "Yma5xzVAAAAAAAAAAAAAAAAAAAAACH+gWcm+YsP9Tqb9zCR3WAeZZX"
|
| + "ahlhx5I=\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads2[] = {
|
| - // The origin server responds with a Type 2 message.
|
| - MockRead("HTTP/1.1 401 Access Denied\r\n"),
|
| - MockRead("WWW-Authenticate: NTLM "
|
| - "TlRMTVNTUAACAAAADAAMADgAAAAFgokCjGpMpPGlYKkAAAAAAAAAALo"
|
| - "AugBEAAAABQEoCgAAAA9HAE8ATwBHAEwARQACAAwARwBPAE8ARwBMAE"
|
| - "UAAQAaAEEASwBFAEUAUwBBAFIAQQAtAEMATwBSAFAABAAeAGMAbwByA"
|
| - "HAALgBnAG8AbwBnAGwAZQAuAGMAbwBtAAMAQABhAGsAZQBlAHMAYQBy"
|
| - "AGEALQBjAG8AcgBwAC4AYQBkAC4AYwBvAHIAcAAuAGcAbwBvAGcAbAB"
|
| - "lAC4AYwBvAG0ABQAeAGMAbwByAHAALgBnAG8AbwBnAGwAZQAuAGMAbw"
|
| - "BtAAAAAAA=\r\n"),
|
| - MockRead("Content-Length: 42\r\n"),
|
| - MockRead("Content-Type: text/html\r\n\r\n"),
|
| - MockRead("You are not authorized to view this page\r\n"),
|
| -
|
| - // Lastly we get the desired content.
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=utf-8\r\n"),
|
| - MockRead("Content-Length: 13\r\n\r\n"),
|
| - MockRead("Please Login\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| - };
|
| -
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - data_writes2, arraysize(data_writes2));
|
| + // The origin server responds with a Type 2 message.
|
| + MockRead("HTTP/1.1 401 Access Denied\r\n"),
|
| + MockRead(
|
| + "WWW-Authenticate: NTLM "
|
| + "TlRMTVNTUAACAAAADAAMADgAAAAFgokCjGpMpPGlYKkAAAAAAAAAALo"
|
| + "AugBEAAAABQEoCgAAAA9HAE8ATwBHAEwARQACAAwARwBPAE8ARwBMAE"
|
| + "UAAQAaAEEASwBFAEUAUwBBAFIAQQAtAEMATwBSAFAABAAeAGMAbwByA"
|
| + "HAALgBnAG8AbwBnAGwAZQAuAGMAbwBtAAMAQABhAGsAZQBlAHMAYQBy"
|
| + "AGEALQBjAG8AcgBwAC4AYQBkAC4AYwBvAHIAcAAuAGcAbwBvAGcAbAB"
|
| + "lAC4AYwBvAG0ABQAeAGMAbwByAHAALgBnAG8AbwBnAGwAZQAuAGMAbw"
|
| + "BtAAAAAAA=\r\n"),
|
| + MockRead("Content-Length: 42\r\n"),
|
| + MockRead("Content-Type: text/html\r\n\r\n"),
|
| + MockRead("You are not authorized to view this page\r\n"),
|
| +
|
| + // Lastly we get the desired content.
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=utf-8\r\n"),
|
| + MockRead("Content-Length: 13\r\n\r\n"), MockRead("Please Login\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| + };
|
| +
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| + StaticSocketDataProvider data2(data_reads2,
|
| + arraysize(data_reads2),
|
| + data_writes2,
|
| + arraysize(data_writes2));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
|
|
| @@ -4329,124 +4364,135 @@ TEST_P(HttpNetworkTransactionTest, NTLMAuth2) {
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET /kids/login.aspx HTTP/1.1\r\n"
|
| - "Host: 172.22.68.17\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /kids/login.aspx HTTP/1.1\r\n"
|
| + "Host: 172.22.68.17\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.1 401 Access Denied\r\n"),
|
| - // Negotiate and NTLM are often requested together. However, we only want
|
| - // to test NTLM. Since Negotiate is preferred over NTLM, we have to skip
|
| - // the header that requests Negotiate for this test.
|
| - MockRead("WWW-Authenticate: NTLM\r\n"),
|
| - MockRead("Connection: close\r\n"),
|
| - MockRead("Content-Length: 42\r\n"),
|
| - MockRead("Content-Type: text/html\r\n\r\n"),
|
| - // Missing content -- won't matter, as connection will be reset.
|
| - MockRead(SYNCHRONOUS, ERR_UNEXPECTED),
|
| + MockRead("HTTP/1.1 401 Access Denied\r\n"),
|
| + // Negotiate and NTLM are often requested together. However, we only want
|
| + // to test NTLM. Since Negotiate is preferred over NTLM, we have to skip
|
| + // the header that requests Negotiate for this test.
|
| + MockRead("WWW-Authenticate: NTLM\r\n"),
|
| + MockRead("Connection: close\r\n"),
|
| + MockRead("Content-Length: 42\r\n"),
|
| + MockRead("Content-Type: text/html\r\n\r\n"),
|
| + // Missing content -- won't matter, as connection will be reset.
|
| + MockRead(SYNCHRONOUS, ERR_UNEXPECTED),
|
| };
|
|
|
| MockWrite data_writes2[] = {
|
| - // After restarting with a null identity, this is the
|
| - // request we should be issuing -- the final header line contains a Type
|
| - // 1 message.
|
| - MockWrite("GET /kids/login.aspx HTTP/1.1\r\n"
|
| - "Host: 172.22.68.17\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: NTLM "
|
| - "TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=\r\n\r\n"),
|
| -
|
| - // After calling trans->RestartWithAuth(), we should send a Type 3 message
|
| - // (the credentials for the origin server). The second request continues
|
| - // on the same connection.
|
| - MockWrite("GET /kids/login.aspx HTTP/1.1\r\n"
|
| - "Host: 172.22.68.17\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: NTLM TlRMTVNTUAADAAAAGAAYAGgAAAAYABgAgA"
|
| - "AAAAAAAABAAAAAGAAYAEAAAAAQABAAWAAAAAAAAAAAAAAABYIIAHQA"
|
| - "ZQBzAHQAaQBuAGcALQBuAHQAbABtAFcAVABDAC0AVwBJAE4ANwCWeY"
|
| - "XnSZNwoQAAAAAAAAAAAAAAAAAAAADLa34/phTTKzNTWdub+uyFleOj"
|
| - "4Ww7b7E=\r\n\r\n"),
|
| + // After restarting with a null identity, this is the
|
| + // request we should be issuing -- the final header line contains a Type
|
| + // 1 message.
|
| + MockWrite(
|
| + "GET /kids/login.aspx HTTP/1.1\r\n"
|
| + "Host: 172.22.68.17\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: NTLM "
|
| + "TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=\r\n\r\n"),
|
| +
|
| + // After calling trans->RestartWithAuth(), we should send a Type 3 message
|
| + // (the credentials for the origin server). The second request continues
|
| + // on the same connection.
|
| + MockWrite(
|
| + "GET /kids/login.aspx HTTP/1.1\r\n"
|
| + "Host: 172.22.68.17\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: NTLM TlRMTVNTUAADAAAAGAAYAGgAAAAYABgAgA"
|
| + "AAAAAAAABAAAAAGAAYAEAAAAAQABAAWAAAAAAAAAAAAAAABYIIAHQA"
|
| + "ZQBzAHQAaQBuAGcALQBuAHQAbABtAFcAVABDAC0AVwBJAE4ANwCWeY"
|
| + "XnSZNwoQAAAAAAAAAAAAAAAAAAAADLa34/phTTKzNTWdub+uyFleOj"
|
| + "4Ww7b7E=\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads2[] = {
|
| - // The origin server responds with a Type 2 message.
|
| - MockRead("HTTP/1.1 401 Access Denied\r\n"),
|
| - MockRead("WWW-Authenticate: NTLM "
|
| - "TlRMTVNTUAACAAAADAAMADgAAAAFgokCbVWUZezVGpAAAAAAAAAAALo"
|
| - "AugBEAAAABQEoCgAAAA9HAE8ATwBHAEwARQACAAwARwBPAE8ARwBMAE"
|
| - "UAAQAaAEEASwBFAEUAUwBBAFIAQQAtAEMATwBSAFAABAAeAGMAbwByA"
|
| - "HAALgBnAG8AbwBnAGwAZQAuAGMAbwBtAAMAQABhAGsAZQBlAHMAYQBy"
|
| - "AGEALQBjAG8AcgBwAC4AYQBkAC4AYwBvAHIAcAAuAGcAbwBvAGcAbAB"
|
| - "lAC4AYwBvAG0ABQAeAGMAbwByAHAALgBnAG8AbwBnAGwAZQAuAGMAbw"
|
| - "BtAAAAAAA=\r\n"),
|
| - MockRead("Content-Length: 42\r\n"),
|
| - MockRead("Content-Type: text/html\r\n\r\n"),
|
| - MockRead("You are not authorized to view this page\r\n"),
|
| -
|
| - // Wrong password.
|
| - MockRead("HTTP/1.1 401 Access Denied\r\n"),
|
| - MockRead("WWW-Authenticate: NTLM\r\n"),
|
| - MockRead("Connection: close\r\n"),
|
| - MockRead("Content-Length: 42\r\n"),
|
| - MockRead("Content-Type: text/html\r\n\r\n"),
|
| - // Missing content -- won't matter, as connection will be reset.
|
| - MockRead(SYNCHRONOUS, ERR_UNEXPECTED),
|
| + // The origin server responds with a Type 2 message.
|
| + MockRead("HTTP/1.1 401 Access Denied\r\n"),
|
| + MockRead(
|
| + "WWW-Authenticate: NTLM "
|
| + "TlRMTVNTUAACAAAADAAMADgAAAAFgokCbVWUZezVGpAAAAAAAAAAALo"
|
| + "AugBEAAAABQEoCgAAAA9HAE8ATwBHAEwARQACAAwARwBPAE8ARwBMAE"
|
| + "UAAQAaAEEASwBFAEUAUwBBAFIAQQAtAEMATwBSAFAABAAeAGMAbwByA"
|
| + "HAALgBnAG8AbwBnAGwAZQAuAGMAbwBtAAMAQABhAGsAZQBlAHMAYQBy"
|
| + "AGEALQBjAG8AcgBwAC4AYQBkAC4AYwBvAHIAcAAuAGcAbwBvAGcAbAB"
|
| + "lAC4AYwBvAG0ABQAeAGMAbwByAHAALgBnAG8AbwBnAGwAZQAuAGMAbw"
|
| + "BtAAAAAAA=\r\n"),
|
| + MockRead("Content-Length: 42\r\n"),
|
| + MockRead("Content-Type: text/html\r\n\r\n"),
|
| + MockRead("You are not authorized to view this page\r\n"),
|
| +
|
| + // Wrong password.
|
| + MockRead("HTTP/1.1 401 Access Denied\r\n"),
|
| + MockRead("WWW-Authenticate: NTLM\r\n"), MockRead("Connection: close\r\n"),
|
| + MockRead("Content-Length: 42\r\n"),
|
| + MockRead("Content-Type: text/html\r\n\r\n"),
|
| + // Missing content -- won't matter, as connection will be reset.
|
| + MockRead(SYNCHRONOUS, ERR_UNEXPECTED),
|
| };
|
|
|
| MockWrite data_writes3[] = {
|
| - // After restarting with a null identity, this is the
|
| - // request we should be issuing -- the final header line contains a Type
|
| - // 1 message.
|
| - MockWrite("GET /kids/login.aspx HTTP/1.1\r\n"
|
| - "Host: 172.22.68.17\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: NTLM "
|
| - "TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=\r\n\r\n"),
|
| -
|
| - // After calling trans->RestartWithAuth(), we should send a Type 3 message
|
| - // (the credentials for the origin server). The second request continues
|
| - // on the same connection.
|
| - MockWrite("GET /kids/login.aspx HTTP/1.1\r\n"
|
| - "Host: 172.22.68.17\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: NTLM TlRMTVNTUAADAAAAGAAYAGgAAAAYABgAgA"
|
| - "AAAAAAAABAAAAAGAAYAEAAAAAQABAAWAAAAAAAAAAAAAAABYIIAHQA"
|
| - "ZQBzAHQAaQBuAGcALQBuAHQAbABtAFcAVABDAC0AVwBJAE4ANwBO54"
|
| - "dFMVvTHwAAAAAAAAAAAAAAAAAAAACS7sT6Uzw7L0L//WUqlIaVWpbI"
|
| - "+4MUm7c=\r\n\r\n"),
|
| + // After restarting with a null identity, this is the
|
| + // request we should be issuing -- the final header line contains a Type
|
| + // 1 message.
|
| + MockWrite(
|
| + "GET /kids/login.aspx HTTP/1.1\r\n"
|
| + "Host: 172.22.68.17\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: NTLM "
|
| + "TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=\r\n\r\n"),
|
| +
|
| + // After calling trans->RestartWithAuth(), we should send a Type 3 message
|
| + // (the credentials for the origin server). The second request continues
|
| + // on the same connection.
|
| + MockWrite(
|
| + "GET /kids/login.aspx HTTP/1.1\r\n"
|
| + "Host: 172.22.68.17\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: NTLM TlRMTVNTUAADAAAAGAAYAGgAAAAYABgAgA"
|
| + "AAAAAAAABAAAAAGAAYAEAAAAAQABAAWAAAAAAAAAAAAAAABYIIAHQA"
|
| + "ZQBzAHQAaQBuAGcALQBuAHQAbABtAFcAVABDAC0AVwBJAE4ANwBO54"
|
| + "dFMVvTHwAAAAAAAAAAAAAAAAAAAACS7sT6Uzw7L0L//WUqlIaVWpbI"
|
| + "+4MUm7c=\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads3[] = {
|
| - // The origin server responds with a Type 2 message.
|
| - MockRead("HTTP/1.1 401 Access Denied\r\n"),
|
| - MockRead("WWW-Authenticate: NTLM "
|
| - "TlRMTVNTUAACAAAADAAMADgAAAAFgokCL24VN8dgOR8AAAAAAAAAALo"
|
| - "AugBEAAAABQEoCgAAAA9HAE8ATwBHAEwARQACAAwARwBPAE8ARwBMAE"
|
| - "UAAQAaAEEASwBFAEUAUwBBAFIAQQAtAEMATwBSAFAABAAeAGMAbwByA"
|
| - "HAALgBnAG8AbwBnAGwAZQAuAGMAbwBtAAMAQABhAGsAZQBlAHMAYQBy"
|
| - "AGEALQBjAG8AcgBwAC4AYQBkAC4AYwBvAHIAcAAuAGcAbwBvAGcAbAB"
|
| - "lAC4AYwBvAG0ABQAeAGMAbwByAHAALgBnAG8AbwBnAGwAZQAuAGMAbw"
|
| - "BtAAAAAAA=\r\n"),
|
| - MockRead("Content-Length: 42\r\n"),
|
| - MockRead("Content-Type: text/html\r\n\r\n"),
|
| - MockRead("You are not authorized to view this page\r\n"),
|
| -
|
| - // Lastly we get the desired content.
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=utf-8\r\n"),
|
| - MockRead("Content-Length: 13\r\n\r\n"),
|
| - MockRead("Please Login\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| - };
|
| -
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - data_writes2, arraysize(data_writes2));
|
| - StaticSocketDataProvider data3(data_reads3, arraysize(data_reads3),
|
| - data_writes3, arraysize(data_writes3));
|
| + // The origin server responds with a Type 2 message.
|
| + MockRead("HTTP/1.1 401 Access Denied\r\n"),
|
| + MockRead(
|
| + "WWW-Authenticate: NTLM "
|
| + "TlRMTVNTUAACAAAADAAMADgAAAAFgokCL24VN8dgOR8AAAAAAAAAALo"
|
| + "AugBEAAAABQEoCgAAAA9HAE8ATwBHAEwARQACAAwARwBPAE8ARwBMAE"
|
| + "UAAQAaAEEASwBFAEUAUwBBAFIAQQAtAEMATwBSAFAABAAeAGMAbwByA"
|
| + "HAALgBnAG8AbwBnAGwAZQAuAGMAbwBtAAMAQABhAGsAZQBlAHMAYQBy"
|
| + "AGEALQBjAG8AcgBwAC4AYQBkAC4AYwBvAHIAcAAuAGcAbwBvAGcAbAB"
|
| + "lAC4AYwBvAG0ABQAeAGMAbwByAHAALgBnAG8AbwBnAGwAZQAuAGMAbw"
|
| + "BtAAAAAAA=\r\n"),
|
| + MockRead("Content-Length: 42\r\n"),
|
| + MockRead("Content-Type: text/html\r\n\r\n"),
|
| + MockRead("You are not authorized to view this page\r\n"),
|
| +
|
| + // Lastly we get the desired content.
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=utf-8\r\n"),
|
| + MockRead("Content-Length: 13\r\n\r\n"), MockRead("Please Login\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| + };
|
| +
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| + StaticSocketDataProvider data2(data_reads2,
|
| + arraysize(data_reads2),
|
| + data_writes2,
|
| + arraysize(data_writes2));
|
| + StaticSocketDataProvider data3(data_reads3,
|
| + arraysize(data_reads3),
|
| + data_writes3,
|
| + arraysize(data_writes3));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data3);
|
| @@ -4535,10 +4581,9 @@ TEST_P(HttpNetworkTransactionTest, LargeHeadersNoBody) {
|
| FillLargeHeadersString(&large_headers_string, 300 * 1024);
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead(ASYNC, large_headers_string.data(), large_headers_string.size()),
|
| - MockRead("\r\nBODY"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead(ASYNC, large_headers_string.data(), large_headers_string.size()),
|
| + MockRead("\r\nBODY"), MockRead(SYNCHRONOUS, OK),
|
| };
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| @@ -4558,8 +4603,7 @@ TEST_P(HttpNetworkTransactionTest, LargeHeadersNoBody) {
|
| // Make sure that we don't try to reuse a TCPClientSocket when failing to
|
| // establish tunnel.
|
| // http://code.google.com/p/chromium/issues/detail?id=3772
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - DontRecycleTransportSocketForSSLTunnel) {
|
| +TEST_P(HttpNetworkTransactionTest, DontRecycleTransportSocketForSSLTunnel) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.google.com/");
|
| @@ -4575,22 +4619,25 @@ TEST_P(HttpNetworkTransactionTest,
|
|
|
| // Since we have proxy, should try to establish tunnel.
|
| MockWrite data_writes1[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| // The proxy responds to the connect with a 404, using a persistent
|
| // connection. Usually a proxy would return 501 (not implemented),
|
| // or 200 (tunnel established).
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.1 404 Not Found\r\n"),
|
| - MockRead("Content-Length: 10\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached.
|
| + MockRead("HTTP/1.1 404 Not Found\r\n"),
|
| + MockRead("Content-Length: 10\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached.
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
|
|
| TestCompletionCallback callback1;
|
| @@ -4630,13 +4677,13 @@ TEST_P(HttpNetworkTransactionTest, RecycleSocket) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
|
|
| MockRead data_reads[] = {
|
| - // A part of the response body is received with the response headers.
|
| - MockRead("HTTP/1.1 200 OK\r\nContent-Length: 11\r\n\r\nhel"),
|
| - // The rest of the response body is received in two parts.
|
| - MockRead("lo"),
|
| - MockRead(" world"),
|
| - MockRead("junk"), // Should not be read!!
|
| - MockRead(SYNCHRONOUS, OK),
|
| + // A part of the response body is received with the response headers.
|
| + MockRead("HTTP/1.1 200 OK\r\nContent-Length: 11\r\n\r\nhel"),
|
| + // The rest of the response body is received in two parts.
|
| + MockRead("lo"),
|
| + MockRead(" world"),
|
| + MockRead("junk"), // Should not be read!!
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| @@ -4681,23 +4728,22 @@ TEST_P(HttpNetworkTransactionTest, RecycleSSLSocket) {
|
| request.load_flags = 0;
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Length: 11\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n"), MockRead("Content-Length: 11\r\n\r\n"),
|
| + MockRead("hello world"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -4740,20 +4786,20 @@ TEST_P(HttpNetworkTransactionTest, RecycleDeadSSLSocket) {
|
| request.load_flags = 0;
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Length: 11\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
|
| - MockRead("hello world"),
|
| - MockRead(ASYNC, 0, 0) // EOF
|
| + MockRead("HTTP/1.1 200 OK\r\n"), MockRead("Content-Length: 11\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
|
| + MockRead("hello world"), MockRead(ASYNC, 0, 0) // EOF
|
| };
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| @@ -4761,10 +4807,10 @@ TEST_P(HttpNetworkTransactionTest, RecycleDeadSSLSocket) {
|
| session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
|
| session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2);
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| - StaticSocketDataProvider data2(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data2(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
|
|
| @@ -4831,10 +4877,11 @@ TEST_P(HttpNetworkTransactionTest, RecycleDeadSSLSocket) {
|
| TEST_P(HttpNetworkTransactionTest, RecycleSocketAfterZeroContentLength) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| - request.url = GURL("http://www.google.com/csi?v=3&s=web&action=&"
|
| - "tran=undefined&ei=mAXcSeegAo-SMurloeUN&"
|
| - "e=17259,18167,19592,19773,19981,20133,20173,20233&"
|
| - "rt=prt.2642,ol.2649,xjs.2951");
|
| + request.url = GURL(
|
| + "http://www.google.com/csi?v=3&s=web&action=&"
|
| + "tran=undefined&ei=mAXcSeegAo-SMurloeUN&"
|
| + "e=17259,18167,19592,19773,19981,20133,20173,20233&"
|
| + "rt=prt.2642,ol.2649,xjs.2951");
|
| request.load_flags = 0;
|
|
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| @@ -4843,11 +4890,12 @@ TEST_P(HttpNetworkTransactionTest, RecycleSocketAfterZeroContentLength) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 204 No Content\r\n"
|
| - "Content-Length: 0\r\n"
|
| - "Content-Type: text/html\r\n\r\n"),
|
| - MockRead("junk"), // Should not be read!!
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead(
|
| + "HTTP/1.1 204 No Content\r\n"
|
| + "Content-Length: 0\r\n"
|
| + "Content-Type: text/html\r\n\r\n"),
|
| + MockRead("junk"), // Should not be read!!
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| @@ -4910,42 +4958,42 @@ TEST_P(HttpNetworkTransactionTest, ResendRequestOnWriteBodyError) {
|
|
|
| // The response of transaction 1.
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\nContent-Length: 11\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\nContent-Length: 11\r\n\r\n"),
|
| + MockRead("hello world"), MockRead(SYNCHRONOUS, OK),
|
| };
|
| // The mock write results of transaction 1 and the first attempt of
|
| // transaction 2.
|
| MockWrite data_writes1[] = {
|
| - MockWrite(SYNCHRONOUS, 64), // GET
|
| - MockWrite(SYNCHRONOUS, 93), // POST
|
| - MockWrite(SYNCHRONOUS, ERR_CONNECTION_ABORTED), // POST data
|
| + MockWrite(SYNCHRONOUS, 64), // GET
|
| + MockWrite(SYNCHRONOUS, 93), // POST
|
| + MockWrite(SYNCHRONOUS, ERR_CONNECTION_ABORTED), // POST data
|
| };
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
|
|
| // The second socket is used for the second attempt of transaction 2.
|
|
|
| // The response of transaction 2.
|
| MockRead data_reads2[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\nContent-Length: 7\r\n\r\n"),
|
| - MockRead("welcome"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\nContent-Length: 7\r\n\r\n"),
|
| + MockRead("welcome"), MockRead(SYNCHRONOUS, OK),
|
| };
|
| // The mock write results of the second attempt of transaction 2.
|
| MockWrite data_writes2[] = {
|
| - MockWrite(SYNCHRONOUS, 93), // POST
|
| - MockWrite(SYNCHRONOUS, 3), // POST data
|
| + MockWrite(SYNCHRONOUS, 93), // POST
|
| + MockWrite(SYNCHRONOUS, 3), // POST data
|
| };
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - data_writes2, arraysize(data_writes2));
|
| + StaticSocketDataProvider data2(data_reads2,
|
| + arraysize(data_reads2),
|
| + data_writes2,
|
| + arraysize(data_writes2));
|
|
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
|
|
| - const char* kExpectedResponseData[] = {
|
| - "hello world", "welcome"
|
| - };
|
| + const char* kExpectedResponseData[] = {"hello world", "welcome"};
|
|
|
| for (int i = 0; i < 2; ++i) {
|
| scoped_ptr<HttpTransaction> trans(
|
| @@ -4990,37 +5038,41 @@ TEST_P(HttpNetworkTransactionTest, AuthIdentityInURL) {
|
| EXPECT_EQ("b%40r", request.url.password());
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Length: 10\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_FAILED),
|
| + MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| + MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Length: 10\r\n\r\n"), MockRead(SYNCHRONOUS, ERR_FAILED),
|
| };
|
|
|
| // After the challenge above, the transaction will be restarted using the
|
| // identity from the url (foo, b@r) to answer the challenge.
|
| MockWrite data_writes2[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zm9vOmJAcg==\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zm9vOmJAcg==\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads2[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"), MockRead("Content-Length: 100\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - data_writes2, arraysize(data_writes2));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| + StaticSocketDataProvider data2(data_reads2,
|
| + arraysize(data_reads2),
|
| + data_writes2,
|
| + arraysize(data_writes2));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
|
|
| @@ -5067,55 +5119,61 @@ TEST_P(HttpNetworkTransactionTest, WrongAuthIdentityInURL) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Length: 10\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_FAILED),
|
| + MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| + MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Length: 10\r\n\r\n"), MockRead(SYNCHRONOUS, ERR_FAILED),
|
| };
|
|
|
| // After the challenge above, the transaction will be restarted using the
|
| // identity from the url (foo, baz) to answer the challenge.
|
| MockWrite data_writes2[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zm9vOmJheg==\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zm9vOmJheg==\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads2[] = {
|
| - MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Length: 10\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_FAILED),
|
| + MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| + MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Length: 10\r\n\r\n"), MockRead(SYNCHRONOUS, ERR_FAILED),
|
| };
|
|
|
| // After the challenge above, the transaction will be restarted using the
|
| // identity supplied by the user (foo, bar) to answer the challenge.
|
| MockWrite data_writes3[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads3[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"), MockRead("Content-Length: 100\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - data_writes2, arraysize(data_writes2));
|
| - StaticSocketDataProvider data3(data_reads3, arraysize(data_reads3),
|
| - data_writes3, arraysize(data_writes3));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| + StaticSocketDataProvider data2(data_reads2,
|
| + arraysize(data_reads2),
|
| + data_writes2,
|
| + arraysize(data_writes2));
|
| + StaticSocketDataProvider data3(data_reads3,
|
| + arraysize(data_reads3),
|
| + data_writes3,
|
| + arraysize(data_writes3));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data3);
|
| @@ -5141,8 +5199,8 @@ TEST_P(HttpNetworkTransactionTest, WrongAuthIdentityInURL) {
|
| EXPECT_TRUE(CheckBasicServerAuth(response->auth_challenge.get()));
|
|
|
| TestCompletionCallback callback3;
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo, kBar), callback3.callback());
|
| + rv =
|
| + trans->RestartWithAuth(AuthCredentials(kFoo, kBar), callback3.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
| rv = callback3.WaitForResult();
|
| EXPECT_EQ(OK, rv);
|
| @@ -5160,7 +5218,6 @@ TEST_P(HttpNetworkTransactionTest, WrongAuthIdentityInURL) {
|
| base::MessageLoop::current()->RunUntilIdle();
|
| }
|
|
|
| -
|
| // Test the request-challenge-retry sequence for basic auth when there is a
|
| // correct identity in the URL, but its use is being suppressed. The identity
|
| // from the URL should never be used.
|
| @@ -5175,38 +5232,42 @@ TEST_P(HttpNetworkTransactionTest, AuthIdentityInURLSuppressed) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Length: 10\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_FAILED),
|
| + MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| + MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Length: 10\r\n\r\n"), MockRead(SYNCHRONOUS, ERR_FAILED),
|
| };
|
|
|
| // After the challenge above, the transaction will be restarted using the
|
| // identity supplied by the user, not the one in the URL, to answer the
|
| // challenge.
|
| MockWrite data_writes3[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads3[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"), MockRead("Content-Length: 100\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data3(data_reads3, arraysize(data_reads3),
|
| - data_writes3, arraysize(data_writes3));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| + StaticSocketDataProvider data3(data_reads3,
|
| + arraysize(data_reads3),
|
| + data_writes3,
|
| + arraysize(data_writes3));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data3);
|
|
|
| @@ -5222,8 +5283,8 @@ TEST_P(HttpNetworkTransactionTest, AuthIdentityInURLSuppressed) {
|
| EXPECT_TRUE(CheckBasicServerAuth(response->auth_challenge.get()));
|
|
|
| TestCompletionCallback callback3;
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo, kBar), callback3.callback());
|
| + rv =
|
| + trans->RestartWithAuth(AuthCredentials(kFoo, kBar), callback3.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
| rv = callback3.WaitForResult();
|
| EXPECT_EQ(OK, rv);
|
| @@ -5255,37 +5316,42 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET /x/y/z HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /x/y/z HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Length: 10000\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_FAILED),
|
| + MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| + MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Length: 10000\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, ERR_FAILED),
|
| };
|
|
|
| // Resend with authorization (username=foo, password=bar)
|
| MockWrite data_writes2[] = {
|
| - MockWrite("GET /x/y/z HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /x/y/z HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| };
|
|
|
| // Sever accepts the authorization.
|
| MockRead data_reads2[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - data_writes2, arraysize(data_writes2));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| + StaticSocketDataProvider data2(data_reads2,
|
| + arraysize(data_reads2),
|
| + data_writes2,
|
| + arraysize(data_writes2));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
|
|
| @@ -5303,8 +5369,8 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) {
|
|
|
| TestCompletionCallback callback2;
|
|
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo, kBar), callback2.callback());
|
| + rv = trans->RestartWithAuth(AuthCredentials(kFoo, kBar),
|
| + callback2.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback2.WaitForResult();
|
| @@ -5331,41 +5397,46 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET /x/y/a/b HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - // Send preemptive authorization for MyRealm1
|
| - "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /x/y/a/b HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + // Send preemptive authorization for MyRealm1
|
| + "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| };
|
|
|
| // The server didn't like the preemptive authorization, and
|
| // challenges us for a different realm (MyRealm2).
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm2\"\r\n"),
|
| - MockRead("Content-Length: 10000\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_FAILED),
|
| + MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| + MockRead("WWW-Authenticate: Basic realm=\"MyRealm2\"\r\n"),
|
| + MockRead("Content-Length: 10000\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, ERR_FAILED),
|
| };
|
|
|
| // Resend with authorization for MyRealm2 (username=foo2, password=bar2)
|
| MockWrite data_writes2[] = {
|
| - MockWrite("GET /x/y/a/b HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zm9vMjpiYXIy\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /x/y/a/b HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zm9vMjpiYXIy\r\n\r\n"),
|
| };
|
|
|
| // Sever accepts the authorization.
|
| MockRead data_reads2[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - data_writes2, arraysize(data_writes2));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| + StaticSocketDataProvider data2(data_reads2,
|
| + arraysize(data_reads2),
|
| + data_writes2,
|
| + arraysize(data_writes2));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
|
|
| @@ -5388,8 +5459,8 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) {
|
|
|
| TestCompletionCallback callback2;
|
|
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo2, kBar2), callback2.callback());
|
| + rv = trans->RestartWithAuth(AuthCredentials(kFoo2, kBar2),
|
| + callback2.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback2.WaitForResult();
|
| @@ -5415,23 +5486,25 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET /x/y/z2 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - // The authorization for MyRealm1 gets sent preemptively
|
| - // (since the url is in the same protection space)
|
| - "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /x/y/z2 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + // The authorization for MyRealm1 gets sent preemptively
|
| + // (since the url is in the same protection space)
|
| + "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| };
|
|
|
| // Sever accepts the preemptive authorization
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
|
|
| TestCompletionCallback callback1;
|
| @@ -5463,37 +5536,42 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET /x/1 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /x/1 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Length: 10000\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_FAILED),
|
| + MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| + MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Length: 10000\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, ERR_FAILED),
|
| };
|
|
|
| // Resend with authorization from MyRealm's cache.
|
| MockWrite data_writes2[] = {
|
| - MockWrite("GET /x/1 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /x/1 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| };
|
|
|
| // Sever accepts the authorization.
|
| MockRead data_reads2[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - data_writes2, arraysize(data_writes2));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| + StaticSocketDataProvider data2(data_reads2,
|
| + arraysize(data_reads2),
|
| + data_writes2,
|
| + arraysize(data_writes2));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
|
|
| @@ -5533,56 +5611,64 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET /p/q/t HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /p/q/t HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Length: 10000\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_FAILED),
|
| + MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| + MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Length: 10000\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, ERR_FAILED),
|
| };
|
|
|
| // Resend with authorization from cache for MyRealm.
|
| MockWrite data_writes2[] = {
|
| - MockWrite("GET /p/q/t HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /p/q/t HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| };
|
|
|
| // Sever rejects the authorization.
|
| MockRead data_reads2[] = {
|
| - MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Length: 10000\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_FAILED),
|
| + MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| + MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Length: 10000\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, ERR_FAILED),
|
| };
|
|
|
| // At this point we should prompt for new credentials for MyRealm.
|
| // Restart with username=foo3, password=foo4.
|
| MockWrite data_writes3[] = {
|
| - MockWrite("GET /p/q/t HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zm9vMzpiYXIz\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /p/q/t HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zm9vMzpiYXIz\r\n\r\n"),
|
| };
|
|
|
| // Sever accepts the authorization.
|
| MockRead data_reads3[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - data_writes2, arraysize(data_writes2));
|
| - StaticSocketDataProvider data3(data_reads3, arraysize(data_reads3),
|
| - data_writes3, arraysize(data_writes3));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| + StaticSocketDataProvider data2(data_reads2,
|
| + arraysize(data_reads2),
|
| + data_writes2,
|
| + arraysize(data_writes2));
|
| + StaticSocketDataProvider data3(data_reads3,
|
| + arraysize(data_reads3),
|
| + data_writes3,
|
| + arraysize(data_writes3));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data3);
|
| @@ -5609,8 +5695,8 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) {
|
|
|
| TestCompletionCallback callback3;
|
|
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo3, kBar3), callback3.callback());
|
| + rv = trans->RestartWithAuth(AuthCredentials(kFoo3, kBar3),
|
| + callback3.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback3.WaitForResult();
|
| @@ -5645,39 +5731,45 @@ TEST_P(HttpNetworkTransactionTest, DigestPreAuthNonceCount) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET /x/y/z HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /x/y/z HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| - MockRead("WWW-Authenticate: Digest realm=\"digestive\", nonce=\"OU812\", "
|
| - "algorithm=MD5, qop=\"auth\"\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 401 Unauthorized\r\n"),
|
| + MockRead(
|
| + "WWW-Authenticate: Digest realm=\"digestive\", nonce=\"OU812\", "
|
| + "algorithm=MD5, qop=\"auth\"\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| // Resend with authorization (username=foo, password=bar)
|
| MockWrite data_writes2[] = {
|
| - MockWrite("GET /x/y/z HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Digest username=\"foo\", realm=\"digestive\", "
|
| - "nonce=\"OU812\", uri=\"/x/y/z\", algorithm=MD5, "
|
| - "response=\"03ffbcd30add722589c1de345d7a927f\", qop=auth, "
|
| - "nc=00000001, cnonce=\"0123456789abcdef\"\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /x/y/z HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Digest username=\"foo\", realm=\"digestive\", "
|
| + "nonce=\"OU812\", uri=\"/x/y/z\", algorithm=MD5, "
|
| + "response=\"03ffbcd30add722589c1de345d7a927f\", qop=auth, "
|
| + "nc=00000001, cnonce=\"0123456789abcdef\"\r\n\r\n"),
|
| };
|
|
|
| // Sever accepts the authorization.
|
| MockRead data_reads2[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - data_writes2, arraysize(data_writes2));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| + StaticSocketDataProvider data2(data_reads2,
|
| + arraysize(data_reads2),
|
| + data_writes2,
|
| + arraysize(data_writes2));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
|
|
| @@ -5695,8 +5787,8 @@ TEST_P(HttpNetworkTransactionTest, DigestPreAuthNonceCount) {
|
|
|
| TestCompletionCallback callback2;
|
|
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo, kBar), callback2.callback());
|
| + rv = trans->RestartWithAuth(AuthCredentials(kFoo, kBar),
|
| + callback2.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback2.WaitForResult();
|
| @@ -5724,24 +5816,26 @@ TEST_P(HttpNetworkTransactionTest, DigestPreAuthNonceCount) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET /x/y/a/b HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Digest username=\"foo\", realm=\"digestive\", "
|
| - "nonce=\"OU812\", uri=\"/x/y/a/b\", algorithm=MD5, "
|
| - "response=\"d6f9a2c07d1c5df7b89379dca1269b35\", qop=auth, "
|
| - "nc=00000002, cnonce=\"0123456789abcdef\"\r\n\r\n"),
|
| + MockWrite(
|
| + "GET /x/y/a/b HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Digest username=\"foo\", realm=\"digestive\", "
|
| + "nonce=\"OU812\", uri=\"/x/y/a/b\", algorithm=MD5, "
|
| + "response=\"d6f9a2c07d1c5df7b89379dca1269b35\", qop=auth, "
|
| + "nc=00000002, cnonce=\"0123456789abcdef\"\r\n\r\n"),
|
| };
|
|
|
| // Sever accepts the authorization.
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
|
|
| TestCompletionCallback callback1;
|
| @@ -5777,7 +5871,7 @@ TEST_P(HttpNetworkTransactionTest, ResetStateForRestart) {
|
| response->response_time = base::Time::Now();
|
| response->was_cached = true; // (Wouldn't ever actually be true...)
|
|
|
| - { // Setup state for response_.vary_data
|
| + { // Setup state for response_.vary_data
|
| HttpRequestInfo request;
|
| std::string temp("HTTP/1.1 200 OK\nVary: foo, bar\n\n");
|
| std::replace(temp.begin(), temp.end(), '\n', '\0');
|
| @@ -5813,21 +5907,21 @@ TEST_P(HttpNetworkTransactionTest, HTTPSBadCertificate) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| StaticSocketDataProvider ssl_bad_certificate;
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| SSLSocketDataProvider ssl_bad(ASYNC, ERR_CERT_AUTHORITY_INVALID);
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
|
|
| @@ -5867,38 +5961,40 @@ TEST_P(HttpNetworkTransactionTest, HTTPSBadCertificateViaProxy) {
|
| request.load_flags = 0;
|
|
|
| MockWrite proxy_writes[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| - MockRead proxy_reads[] = {
|
| - MockRead("HTTP/1.0 200 Connected\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK)
|
| - };
|
| + MockRead proxy_reads[] = {MockRead("HTTP/1.0 200 Connected\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, OK)};
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 Connected\r\n\r\n"),
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| - };
|
| -
|
| - StaticSocketDataProvider ssl_bad_certificate(
|
| - proxy_reads, arraysize(proxy_reads),
|
| - proxy_writes, arraysize(proxy_writes));
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + MockRead("HTTP/1.0 200 Connected\r\n\r\n"),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| + };
|
| +
|
| + StaticSocketDataProvider ssl_bad_certificate(proxy_reads,
|
| + arraysize(proxy_reads),
|
| + proxy_writes,
|
| + arraysize(proxy_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| SSLSocketDataProvider ssl_bad(ASYNC, ERR_CERT_AUTHORITY_INVALID);
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
|
|
| @@ -5935,7 +6031,6 @@ TEST_P(HttpNetworkTransactionTest, HTTPSBadCertificateViaProxy) {
|
| }
|
| }
|
|
|
| -
|
| // Test HTTPS connections to a site, going through an HTTPS proxy
|
| TEST_P(HttpNetworkTransactionTest, HTTPSViaHttpsProxy) {
|
| session_deps_.proxy_service.reset(
|
| @@ -5949,25 +6044,27 @@ TEST_P(HttpNetworkTransactionTest, HTTPSViaHttpsProxy) {
|
| request.load_flags = 0;
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 Connected\r\n\r\n"),
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 Connected\r\n\r\n"),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| - SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| + SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy
|
| SSLSocketDataProvider tunnel_ssl(ASYNC, OK); // SSL through the tunnel
|
|
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| @@ -6013,20 +6110,20 @@ TEST_P(HttpNetworkTransactionTest, RedirectOfHttpsConnectViaHttpsProxy) {
|
| request.load_flags = 0;
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 302 Redirect\r\n"),
|
| - MockRead("Location: http://login.example.com/\r\n"),
|
| - MockRead("Content-Length: 0\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 302 Redirect\r\n"),
|
| + MockRead("Location: http://login.example.com/\r\n"),
|
| + MockRead("Content-Length: 0\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy
|
|
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| @@ -6086,31 +6183,30 @@ TEST_P(HttpNetworkTransactionTest, RedirectOfHttpsConnectViaSpdyProxy) {
|
| request.url = GURL("https://www.google.com/");
|
| request.load_flags = 0;
|
|
|
| - scoped_ptr<SpdyFrame> conn(spdy_util_.ConstructSpdyConnect(NULL, 0, 1,
|
| - LOWEST));
|
| + scoped_ptr<SpdyFrame> conn(
|
| + spdy_util_.ConstructSpdyConnect(NULL, 0, 1, LOWEST));
|
| scoped_ptr<SpdyFrame> goaway(
|
| spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL));
|
| MockWrite data_writes[] = {
|
| - CreateMockWrite(*conn.get(), 0, SYNCHRONOUS),
|
| - CreateMockWrite(*goaway.get(), 3, SYNCHRONOUS),
|
| + CreateMockWrite(*conn.get(), 0, SYNCHRONOUS),
|
| + CreateMockWrite(*goaway.get(), 3, SYNCHRONOUS),
|
| };
|
|
|
| static const char* const kExtraHeaders[] = {
|
| - "location",
|
| - "http://login.example.com/",
|
| + "location", "http://login.example.com/",
|
| };
|
| - scoped_ptr<SpdyFrame> resp(
|
| - spdy_util_.ConstructSpdySynReplyError("302 Redirect", kExtraHeaders,
|
| - arraysize(kExtraHeaders)/2, 1));
|
| + scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdySynReplyError(
|
| + "302 Redirect", kExtraHeaders, arraysize(kExtraHeaders) / 2, 1));
|
| MockRead data_reads[] = {
|
| - CreateMockRead(*resp.get(), 1, SYNCHRONOUS),
|
| - MockRead(ASYNC, 0, 2), // EOF
|
| + CreateMockRead(*resp.get(), 1, SYNCHRONOUS),
|
| + MockRead(ASYNC, 0, 2), // EOF
|
| };
|
|
|
| - DelayedSocketData data(
|
| - 1, // wait for one write to finish before reading.
|
| - data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + DelayedSocketData data(1, // wait for one write to finish before reading.
|
| + data_reads,
|
| + arraysize(data_reads),
|
| + data_writes,
|
| + arraysize(data_writes));
|
| SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy
|
| proxy_ssl.SetNextProto(GetParam());
|
|
|
| @@ -6139,8 +6235,7 @@ TEST_P(HttpNetworkTransactionTest, RedirectOfHttpsConnectViaSpdyProxy) {
|
| }
|
|
|
| // Test that an HTTPS proxy's response to a CONNECT request is filtered.
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - ErrorResponseToHttpsConnectViaHttpsProxy) {
|
| +TEST_P(HttpNetworkTransactionTest, ErrorResponseToHttpsConnectViaHttpsProxy) {
|
| session_deps_.proxy_service.reset(
|
| ProxyService::CreateFixed("https://proxy:70"));
|
|
|
| @@ -6150,20 +6245,20 @@ TEST_P(HttpNetworkTransactionTest,
|
| request.load_flags = 0;
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 404 Not Found\r\n"),
|
| - MockRead("Content-Length: 23\r\n\r\n"),
|
| - MockRead("The host does not exist"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 404 Not Found\r\n"),
|
| + MockRead("Content-Length: 23\r\n\r\n"),
|
| + MockRead("The host does not exist"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy
|
|
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| @@ -6185,45 +6280,42 @@ TEST_P(HttpNetworkTransactionTest,
|
| }
|
|
|
| // Test that a SPDY proxy's response to a CONNECT request is filtered.
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - ErrorResponseToHttpsConnectViaSpdyProxy) {
|
| +TEST_P(HttpNetworkTransactionTest, ErrorResponseToHttpsConnectViaSpdyProxy) {
|
| session_deps_.proxy_service.reset(
|
| - ProxyService::CreateFixed("https://proxy:70"));
|
| + ProxyService::CreateFixed("https://proxy:70"));
|
|
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.google.com/");
|
| request.load_flags = 0;
|
|
|
| - scoped_ptr<SpdyFrame> conn(spdy_util_.ConstructSpdyConnect(NULL, 0, 1,
|
| - LOWEST));
|
| + scoped_ptr<SpdyFrame> conn(
|
| + spdy_util_.ConstructSpdyConnect(NULL, 0, 1, LOWEST));
|
| scoped_ptr<SpdyFrame> rst(
|
| spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL));
|
| MockWrite data_writes[] = {
|
| - CreateMockWrite(*conn.get(), 0, SYNCHRONOUS),
|
| - CreateMockWrite(*rst.get(), 3, SYNCHRONOUS),
|
| + CreateMockWrite(*conn.get(), 0, SYNCHRONOUS),
|
| + CreateMockWrite(*rst.get(), 3, SYNCHRONOUS),
|
| };
|
|
|
| static const char* const kExtraHeaders[] = {
|
| - "location",
|
| - "http://login.example.com/",
|
| - };
|
| - scoped_ptr<SpdyFrame> resp(
|
| - spdy_util_.ConstructSpdySynReplyError("404 Not Found", kExtraHeaders,
|
| - arraysize(kExtraHeaders)/2, 1));
|
| - scoped_ptr<SpdyFrame> body(
|
| - spdy_util_.ConstructSpdyBodyFrame(
|
| - 1, "The host does not exist", 23, true));
|
| + "location", "http://login.example.com/",
|
| + };
|
| + scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdySynReplyError(
|
| + "404 Not Found", kExtraHeaders, arraysize(kExtraHeaders) / 2, 1));
|
| + scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(
|
| + 1, "The host does not exist", 23, true));
|
| MockRead data_reads[] = {
|
| - CreateMockRead(*resp.get(), 1, SYNCHRONOUS),
|
| - CreateMockRead(*body.get(), 2, SYNCHRONOUS),
|
| - MockRead(ASYNC, 0, 4), // EOF
|
| + CreateMockRead(*resp.get(), 1, SYNCHRONOUS),
|
| + CreateMockRead(*body.get(), 2, SYNCHRONOUS),
|
| + MockRead(ASYNC, 0, 4), // EOF
|
| };
|
|
|
| - DelayedSocketData data(
|
| - 1, // wait for one write to finish before reading.
|
| - data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + DelayedSocketData data(1, // wait for one write to finish before reading.
|
| + data_reads,
|
| + arraysize(data_reads),
|
| + data_writes,
|
| + arraysize(data_writes));
|
| SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy
|
| proxy_ssl.SetNextProto(GetParam());
|
|
|
| @@ -6262,8 +6354,8 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthSpdyProxy) {
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| // Since we have proxy, should try to establish tunnel.
|
| - scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyConnect(NULL, 0, 1,
|
| - LOWEST));
|
| + scoped_ptr<SpdyFrame> req(
|
| + spdy_util_.ConstructSpdyConnect(NULL, 0, 1, LOWEST));
|
| scoped_ptr<SpdyFrame> rst(
|
| spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL));
|
|
|
| @@ -6275,25 +6367,24 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthSpdyProxy) {
|
| scoped_ptr<SpdyFrame> connect2(spdy_util_.ConstructSpdyConnect(
|
| kAuthCredentials, arraysize(kAuthCredentials) / 2, 3, LOWEST));
|
| // fetch https://www.google.com/ via HTTP
|
| - const char get[] = "GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n";
|
| + const char get[] =
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n";
|
| scoped_ptr<SpdyFrame> wrapped_get(
|
| spdy_util_.ConstructSpdyBodyFrame(3, get, strlen(get), false));
|
|
|
| MockWrite spdy_writes[] = {
|
| - CreateMockWrite(*req, 1, ASYNC),
|
| - CreateMockWrite(*rst, 4, ASYNC),
|
| - CreateMockWrite(*connect2, 5),
|
| - CreateMockWrite(*wrapped_get, 8),
|
| + CreateMockWrite(*req, 1, ASYNC), CreateMockWrite(*rst, 4, ASYNC),
|
| + CreateMockWrite(*connect2, 5), CreateMockWrite(*wrapped_get, 8),
|
| };
|
|
|
| // The proxy responds to the connect with a 407, using a persistent
|
| // connection.
|
| const char* const kAuthChallenge[] = {
|
| - spdy_util_.GetStatusKey(), "407 Proxy Authentication Required",
|
| - spdy_util_.GetVersionKey(), "HTTP/1.1",
|
| - "proxy-authenticate", "Basic realm=\"MyRealm1\"",
|
| + spdy_util_.GetStatusKey(), "407 Proxy Authentication Required",
|
| + spdy_util_.GetVersionKey(), "HTTP/1.1",
|
| + "proxy-authenticate", "Basic realm=\"MyRealm1\"",
|
| };
|
|
|
| scoped_ptr<SpdyFrame> conn_auth_resp(
|
| @@ -6310,7 +6401,8 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthSpdyProxy) {
|
|
|
| scoped_ptr<SpdyFrame> conn_resp(
|
| spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3));
|
| - const char resp[] = "HTTP/1.1 200 OK\r\n"
|
| + const char resp[] =
|
| + "HTTP/1.1 200 OK\r\n"
|
| "Content-Length: 5\r\n\r\n";
|
|
|
| scoped_ptr<SpdyFrame> wrapped_get_resp(
|
| @@ -6318,16 +6410,15 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthSpdyProxy) {
|
| scoped_ptr<SpdyFrame> wrapped_body(
|
| spdy_util_.ConstructSpdyBodyFrame(3, "hello", 5, false));
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*conn_auth_resp, 2, ASYNC),
|
| - CreateMockRead(*conn_resp, 6, ASYNC),
|
| - CreateMockRead(*wrapped_get_resp, 9, ASYNC),
|
| - CreateMockRead(*wrapped_body, 10, ASYNC),
|
| - MockRead(ASYNC, OK, 11), // EOF. May or may not be read.
|
| + CreateMockRead(*conn_auth_resp, 2, ASYNC),
|
| + CreateMockRead(*conn_resp, 6, ASYNC),
|
| + CreateMockRead(*wrapped_get_resp, 9, ASYNC),
|
| + CreateMockRead(*wrapped_body, 10, ASYNC),
|
| + MockRead(ASYNC, OK, 11), // EOF. May or may not be read.
|
| };
|
|
|
| OrderedSocketData spdy_data(
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + spdy_reads, arraysize(spdy_reads), spdy_writes, arraysize(spdy_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
|
| // Negotiate SPDY to the proxy
|
| SSLSocketDataProvider proxy(ASYNC, OK);
|
| @@ -6350,10 +6441,13 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthSpdyProxy) {
|
| net::CapturingNetLog::CapturedEntryList entries;
|
| log.GetEntries(&entries);
|
| size_t pos = ExpectLogContainsSomewhere(
|
| - entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS,
|
| + entries,
|
| + 0,
|
| + NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS,
|
| NetLog::PHASE_NONE);
|
| ExpectLogContainsSomewhere(
|
| - entries, pos,
|
| + entries,
|
| + pos,
|
| NetLog::TYPE_HTTP_TRANSACTION_READ_TUNNEL_RESPONSE_HEADERS,
|
| NetLog::PHASE_NONE);
|
|
|
| @@ -6367,8 +6461,8 @@ TEST_P(HttpNetworkTransactionTest, BasicAuthSpdyProxy) {
|
|
|
| TestCompletionCallback callback2;
|
|
|
| - rv = trans->RestartWithAuth(AuthCredentials(kFoo, kBar),
|
| - callback2.callback());
|
| + rv =
|
| + trans->RestartWithAuth(AuthCredentials(kFoo, kBar), callback2.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback2.WaitForResult();
|
| @@ -6420,37 +6514,31 @@ TEST_P(HttpNetworkTransactionTest, CrossOriginProxyPush) {
|
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false));
|
|
|
| MockWrite spdy_writes[] = {
|
| - CreateMockWrite(*stream1_syn, 1, ASYNC),
|
| + CreateMockWrite(*stream1_syn, 1, ASYNC),
|
| };
|
|
|
| - scoped_ptr<SpdyFrame>
|
| - stream1_reply(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| + scoped_ptr<SpdyFrame> stream1_reply(
|
| + spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
|
|
| - scoped_ptr<SpdyFrame>
|
| - stream1_body(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| + scoped_ptr<SpdyFrame> stream1_body(
|
| + spdy_util_.ConstructSpdyBodyFrame(1, true));
|
|
|
| - scoped_ptr<SpdyFrame>
|
| - stream2_syn(spdy_util_.ConstructSpdyPush(NULL,
|
| - 0,
|
| - 2,
|
| - 1,
|
| - "http://www.another-origin.com/foo.dat"));
|
| + scoped_ptr<SpdyFrame> stream2_syn(spdy_util_.ConstructSpdyPush(
|
| + NULL, 0, 2, 1, "http://www.another-origin.com/foo.dat"));
|
| const char kPushedData[] = "pushed";
|
| - scoped_ptr<SpdyFrame> stream2_body(
|
| - spdy_util_.ConstructSpdyBodyFrame(
|
| - 2, kPushedData, strlen(kPushedData), true));
|
| + scoped_ptr<SpdyFrame> stream2_body(spdy_util_.ConstructSpdyBodyFrame(
|
| + 2, kPushedData, strlen(kPushedData), true));
|
|
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*stream1_reply, 2, ASYNC),
|
| - CreateMockRead(*stream2_syn, 3, ASYNC),
|
| - CreateMockRead(*stream1_body, 4, ASYNC),
|
| - CreateMockRead(*stream2_body, 5, ASYNC),
|
| - MockRead(ASYNC, ERR_IO_PENDING, 6), // Force a pause
|
| + CreateMockRead(*stream1_reply, 2, ASYNC),
|
| + CreateMockRead(*stream2_syn, 3, ASYNC),
|
| + CreateMockRead(*stream1_body, 4, ASYNC),
|
| + CreateMockRead(*stream2_body, 5, ASYNC),
|
| + MockRead(ASYNC, ERR_IO_PENDING, 6), // Force a pause
|
| };
|
|
|
| OrderedSocketData spdy_data(
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + spdy_reads, arraysize(spdy_reads), spdy_writes, arraysize(spdy_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
|
| // Negotiate SPDY to the proxy
|
| SSLSocketDataProvider proxy(ASYNC, OK);
|
| @@ -6538,33 +6626,27 @@ TEST_P(HttpNetworkTransactionTest, CrossOriginProxyPushCorrectness) {
|
| spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM));
|
|
|
| MockWrite spdy_writes[] = {
|
| - CreateMockWrite(*stream1_syn, 1, ASYNC),
|
| - CreateMockWrite(*push_rst, 4),
|
| + CreateMockWrite(*stream1_syn, 1, ASYNC), CreateMockWrite(*push_rst, 4),
|
| };
|
|
|
| - scoped_ptr<SpdyFrame>
|
| - stream1_reply(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| + scoped_ptr<SpdyFrame> stream1_reply(
|
| + spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
|
|
| - scoped_ptr<SpdyFrame>
|
| - stream1_body(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| + scoped_ptr<SpdyFrame> stream1_body(
|
| + spdy_util_.ConstructSpdyBodyFrame(1, true));
|
|
|
| - scoped_ptr<SpdyFrame>
|
| - stream2_syn(spdy_util_.ConstructSpdyPush(NULL,
|
| - 0,
|
| - 2,
|
| - 1,
|
| - "https://www.another-origin.com/foo.dat"));
|
| + scoped_ptr<SpdyFrame> stream2_syn(spdy_util_.ConstructSpdyPush(
|
| + NULL, 0, 2, 1, "https://www.another-origin.com/foo.dat"));
|
|
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*stream1_reply, 2, ASYNC),
|
| - CreateMockRead(*stream2_syn, 3, ASYNC),
|
| - CreateMockRead(*stream1_body, 5, ASYNC),
|
| - MockRead(ASYNC, ERR_IO_PENDING, 6), // Force a pause
|
| + CreateMockRead(*stream1_reply, 2, ASYNC),
|
| + CreateMockRead(*stream2_syn, 3, ASYNC),
|
| + CreateMockRead(*stream1_body, 5, ASYNC),
|
| + MockRead(ASYNC, ERR_IO_PENDING, 6), // Force a pause
|
| };
|
|
|
| OrderedSocketData spdy_data(
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + spdy_reads, arraysize(spdy_reads), spdy_writes, arraysize(spdy_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
|
| // Negotiate SPDY to the proxy
|
| SSLSocketDataProvider proxy(ASYNC, OK);
|
| @@ -6599,8 +6681,8 @@ TEST_P(HttpNetworkTransactionTest, CrossOriginProxyPushCorrectness) {
|
| // Test HTTPS connections to a site with a bad certificate, going through an
|
| // HTTPS proxy
|
| TEST_P(HttpNetworkTransactionTest, HTTPSBadCertificateViaHttpsProxy) {
|
| - session_deps_.proxy_service.reset(ProxyService::CreateFixed(
|
| - "https://proxy:70"));
|
| + session_deps_.proxy_service.reset(
|
| + ProxyService::CreateFixed("https://proxy:70"));
|
|
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| @@ -6609,39 +6691,43 @@ TEST_P(HttpNetworkTransactionTest, HTTPSBadCertificateViaHttpsProxy) {
|
|
|
| // Attempt to fetch the URL from a server with a bad cert
|
| MockWrite bad_cert_writes[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| - MockRead bad_cert_reads[] = {
|
| - MockRead("HTTP/1.0 200 Connected\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK)
|
| - };
|
| + MockRead bad_cert_reads[] = {MockRead("HTTP/1.0 200 Connected\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, OK)};
|
|
|
| // Attempt to fetch the URL with a good cert
|
| MockWrite good_data_writes[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead good_cert_reads[] = {
|
| - MockRead("HTTP/1.0 200 Connected\r\n\r\n"),
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| - };
|
| -
|
| - StaticSocketDataProvider ssl_bad_certificate(
|
| - bad_cert_reads, arraysize(bad_cert_reads),
|
| - bad_cert_writes, arraysize(bad_cert_writes));
|
| - StaticSocketDataProvider data(good_cert_reads, arraysize(good_cert_reads),
|
| - good_data_writes, arraysize(good_data_writes));
|
| + MockRead("HTTP/1.0 200 Connected\r\n\r\n"),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| + };
|
| +
|
| + StaticSocketDataProvider ssl_bad_certificate(bad_cert_reads,
|
| + arraysize(bad_cert_reads),
|
| + bad_cert_writes,
|
| + arraysize(bad_cert_writes));
|
| + StaticSocketDataProvider data(good_cert_reads,
|
| + arraysize(good_cert_reads),
|
| + good_data_writes,
|
| + arraysize(good_data_writes));
|
| SSLSocketDataProvider ssl_bad(ASYNC, ERR_CERT_AUTHORITY_INVALID);
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
|
|
| @@ -6691,22 +6777,22 @@ TEST_P(HttpNetworkTransactionTest, BuildRequest_UserAgent) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"),
|
| };
|
|
|
| // Lastly, the server responds with the actual content.
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -6731,21 +6817,22 @@ TEST_P(HttpNetworkTransactionTest, BuildRequest_UserAgentOverTunnel) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n"
|
| - "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n"
|
| + "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"),
|
| };
|
| MockRead data_reads[] = {
|
| - // Return an error, so the transaction stops here (this test isn't
|
| - // interested in the rest).
|
| - MockRead("HTTP/1.1 407 Proxy Authentication Required\r\n"),
|
| - MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Proxy-Connection: close\r\n\r\n"),
|
| + // Return an error, so the transaction stops here (this test isn't
|
| + // interested in the rest).
|
| + MockRead("HTTP/1.1 407 Proxy Authentication Required\r\n"),
|
| + MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Proxy-Connection: close\r\n\r\n"),
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -6770,22 +6857,22 @@ TEST_P(HttpNetworkTransactionTest, BuildRequest_Referer) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Referer: http://the.previous.site.com/\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Referer: http://the.previous.site.com/\r\n\r\n"),
|
| };
|
|
|
| // Lastly, the server responds with the actual content.
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -6807,22 +6894,22 @@ TEST_P(HttpNetworkTransactionTest, BuildRequest_PostContentLengthZero) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("POST / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Content-Length: 0\r\n\r\n"),
|
| + MockWrite(
|
| + "POST / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Content-Length: 0\r\n\r\n"),
|
| };
|
|
|
| // Lastly, the server responds with the actual content.
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -6844,22 +6931,22 @@ TEST_P(HttpNetworkTransactionTest, BuildRequest_PutContentLengthZero) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("PUT / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Content-Length: 0\r\n\r\n"),
|
| + MockWrite(
|
| + "PUT / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Content-Length: 0\r\n\r\n"),
|
| };
|
|
|
| // Lastly, the server responds with the actual content.
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -6881,22 +6968,22 @@ TEST_P(HttpNetworkTransactionTest, BuildRequest_HeadContentLengthZero) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("HEAD / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Content-Length: 0\r\n\r\n"),
|
| + MockWrite(
|
| + "HEAD / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Content-Length: 0\r\n\r\n"),
|
| };
|
|
|
| // Lastly, the server responds with the actual content.
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -6919,23 +7006,23 @@ TEST_P(HttpNetworkTransactionTest, BuildRequest_CacheControlNoCache) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Pragma: no-cache\r\n"
|
| - "Cache-Control: no-cache\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Pragma: no-cache\r\n"
|
| + "Cache-Control: no-cache\r\n\r\n"),
|
| };
|
|
|
| // Lastly, the server responds with the actual content.
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -6947,8 +7034,7 @@ TEST_P(HttpNetworkTransactionTest, BuildRequest_CacheControlNoCache) {
|
| EXPECT_EQ(OK, rv);
|
| }
|
|
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - BuildRequest_CacheControlValidateCache) {
|
| +TEST_P(HttpNetworkTransactionTest, BuildRequest_CacheControlValidateCache) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.google.com/");
|
| @@ -6959,22 +7045,22 @@ TEST_P(HttpNetworkTransactionTest,
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Cache-Control: max-age=0\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Cache-Control: max-age=0\r\n\r\n"),
|
| };
|
|
|
| // Lastly, the server responds with the actual content.
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -6997,22 +7083,22 @@ TEST_P(HttpNetworkTransactionTest, BuildRequest_ExtraHeaders) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "FooHeader: Bar\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "FooHeader: Bar\r\n\r\n"),
|
| };
|
|
|
| // Lastly, the server responds with the actual content.
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -7037,24 +7123,24 @@ TEST_P(HttpNetworkTransactionTest, BuildRequest_ExtraHeadersStripped) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "referer: www.foo.com\r\n"
|
| - "hEllo: Kitty\r\n"
|
| - "FoO: bar\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "referer: www.foo.com\r\n"
|
| + "hEllo: Kitty\r\n"
|
| + "FoO: bar\r\n\r\n"),
|
| };
|
|
|
| // Lastly, the server responds with the actual content.
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -7081,26 +7167,24 @@ TEST_P(HttpNetworkTransactionTest, SOCKS4_HTTP_GET) {
|
| scoped_ptr<HttpTransaction> trans(
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| - char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 };
|
| - char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 };
|
| + char write_buffer[] = {0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0};
|
| + char read_buffer[] = {0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0};
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite(ASYNC, write_buffer, arraysize(write_buffer)),
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n")
|
| - };
|
| + MockWrite(ASYNC, write_buffer, arraysize(write_buffer)),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n")};
|
|
|
| MockRead data_reads[] = {
|
| - MockRead(ASYNC, read_buffer, arraysize(read_buffer)),
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n\r\n"),
|
| - MockRead("Payload"),
|
| - MockRead(SYNCHRONOUS, OK)
|
| - };
|
| + MockRead(ASYNC, read_buffer, arraysize(read_buffer)),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n\r\n"),
|
| + MockRead("Payload"), MockRead(SYNCHRONOUS, OK)};
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -7140,28 +7224,26 @@ TEST_P(HttpNetworkTransactionTest, SOCKS4_SSL_GET) {
|
| scoped_ptr<HttpTransaction> trans(
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| - unsigned char write_buffer[] = { 0x04, 0x01, 0x01, 0xBB, 127, 0, 0, 1, 0 };
|
| - unsigned char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 };
|
| + unsigned char write_buffer[] = {0x04, 0x01, 0x01, 0xBB, 127, 0, 0, 1, 0};
|
| + unsigned char read_buffer[] = {0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0};
|
|
|
| - MockWrite data_writes[] = {
|
| - MockWrite(ASYNC, reinterpret_cast<char*>(write_buffer),
|
| - arraysize(write_buffer)),
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n")
|
| - };
|
| + MockWrite data_writes[] = {MockWrite(ASYNC,
|
| + reinterpret_cast<char*>(write_buffer),
|
| + arraysize(write_buffer)),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n")};
|
|
|
| MockRead data_reads[] = {
|
| - MockRead(ASYNC, reinterpret_cast<char*>(read_buffer),
|
| - arraysize(read_buffer)),
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n\r\n"),
|
| - MockRead("Payload"),
|
| - MockRead(SYNCHRONOUS, OK)
|
| - };
|
| + MockRead(
|
| + ASYNC, reinterpret_cast<char*>(read_buffer), arraysize(read_buffer)),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n\r\n"),
|
| + MockRead("Payload"), MockRead(SYNCHRONOUS, OK)};
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| @@ -7204,26 +7286,24 @@ TEST_P(HttpNetworkTransactionTest, SOCKS4_HTTP_GET_no_PAC) {
|
| scoped_ptr<HttpTransaction> trans(
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| - char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 };
|
| - char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 };
|
| + char write_buffer[] = {0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0};
|
| + char read_buffer[] = {0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0};
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite(ASYNC, write_buffer, arraysize(write_buffer)),
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n")
|
| - };
|
| + MockWrite(ASYNC, write_buffer, arraysize(write_buffer)),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n")};
|
|
|
| MockRead data_reads[] = {
|
| - MockRead(ASYNC, read_buffer, arraysize(read_buffer)),
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n\r\n"),
|
| - MockRead("Payload"),
|
| - MockRead(SYNCHRONOUS, OK)
|
| - };
|
| + MockRead(ASYNC, read_buffer, arraysize(read_buffer)),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n\r\n"),
|
| + MockRead("Payload"), MockRead(SYNCHRONOUS, OK)};
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -7263,40 +7343,39 @@ TEST_P(HttpNetworkTransactionTest, SOCKS5_HTTP_GET) {
|
| scoped_ptr<HttpTransaction> trans(
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| - const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 };
|
| - const char kSOCKS5GreetResponse[] = { 0x05, 0x00 };
|
| + const char kSOCKS5GreetRequest[] = {0x05, 0x01, 0x00};
|
| + const char kSOCKS5GreetResponse[] = {0x05, 0x00};
|
| const char kSOCKS5OkRequest[] = {
|
| - 0x05, // Version
|
| - 0x01, // Command (CONNECT)
|
| - 0x00, // Reserved.
|
| - 0x03, // Address type (DOMAINNAME).
|
| - 0x0E, // Length of domain (14)
|
| - // Domain string:
|
| - 'w', 'w', 'w', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm',
|
| - 0x00, 0x50, // 16-bit port (80)
|
| - };
|
| - const char kSOCKS5OkResponse[] =
|
| - { 0x05, 0x00, 0x00, 0x01, 127, 0, 0, 1, 0x00, 0x50 };
|
| + 0x05, // Version
|
| + 0x01, // Command (CONNECT)
|
| + 0x00, // Reserved.
|
| + 0x03, // Address type (DOMAINNAME).
|
| + 0x0E, // Length of domain (14)
|
| + // Domain string:
|
| + 'w', 'w', 'w', '.', 'g', 'o', 'o', 'g',
|
| + 'l', 'e', '.', 'c', 'o', 'm', 0x00, 0x50, // 16-bit port (80)
|
| + };
|
| + const char kSOCKS5OkResponse[] = {0x05, 0x00, 0x00, 0x01, 127,
|
| + 0, 0, 1, 0x00, 0x50};
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite(ASYNC, kSOCKS5GreetRequest, arraysize(kSOCKS5GreetRequest)),
|
| - MockWrite(ASYNC, kSOCKS5OkRequest, arraysize(kSOCKS5OkRequest)),
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n")
|
| - };
|
| + MockWrite(ASYNC, kSOCKS5GreetRequest, arraysize(kSOCKS5GreetRequest)),
|
| + MockWrite(ASYNC, kSOCKS5OkRequest, arraysize(kSOCKS5OkRequest)),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n")};
|
|
|
| MockRead data_reads[] = {
|
| - MockRead(ASYNC, kSOCKS5GreetResponse, arraysize(kSOCKS5GreetResponse)),
|
| - MockRead(ASYNC, kSOCKS5OkResponse, arraysize(kSOCKS5OkResponse)),
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n\r\n"),
|
| - MockRead("Payload"),
|
| - MockRead(SYNCHRONOUS, OK)
|
| - };
|
| + MockRead(ASYNC, kSOCKS5GreetResponse, arraysize(kSOCKS5GreetResponse)),
|
| + MockRead(ASYNC, kSOCKS5OkResponse, arraysize(kSOCKS5OkResponse)),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n\r\n"),
|
| + MockRead("Payload"),
|
| + MockRead(SYNCHRONOUS, OK)};
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -7336,42 +7415,42 @@ TEST_P(HttpNetworkTransactionTest, SOCKS5_SSL_GET) {
|
| scoped_ptr<HttpTransaction> trans(
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| - const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 };
|
| - const char kSOCKS5GreetResponse[] = { 0x05, 0x00 };
|
| + const char kSOCKS5GreetRequest[] = {0x05, 0x01, 0x00};
|
| + const char kSOCKS5GreetResponse[] = {0x05, 0x00};
|
| const unsigned char kSOCKS5OkRequest[] = {
|
| - 0x05, // Version
|
| - 0x01, // Command (CONNECT)
|
| - 0x00, // Reserved.
|
| - 0x03, // Address type (DOMAINNAME).
|
| - 0x0E, // Length of domain (14)
|
| - // Domain string:
|
| - 'w', 'w', 'w', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm',
|
| - 0x01, 0xBB, // 16-bit port (443)
|
| + 0x05, // Version
|
| + 0x01, // Command (CONNECT)
|
| + 0x00, // Reserved.
|
| + 0x03, // Address type (DOMAINNAME).
|
| + 0x0E, // Length of domain (14)
|
| + // Domain string:
|
| + 'w', 'w', 'w', '.', 'g', 'o', 'o', 'g',
|
| + 'l', 'e', '.', 'c', 'o', 'm', 0x01, 0xBB, // 16-bit port (443)
|
| };
|
|
|
| - const char kSOCKS5OkResponse[] =
|
| - { 0x05, 0x00, 0x00, 0x01, 0, 0, 0, 0, 0x00, 0x00 };
|
| + const char kSOCKS5OkResponse[] = {0x05, 0x00, 0x00, 0x01, 0,
|
| + 0, 0, 0, 0x00, 0x00};
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite(ASYNC, kSOCKS5GreetRequest, arraysize(kSOCKS5GreetRequest)),
|
| - MockWrite(ASYNC, reinterpret_cast<const char*>(kSOCKS5OkRequest),
|
| - arraysize(kSOCKS5OkRequest)),
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n")
|
| - };
|
| + MockWrite(ASYNC, kSOCKS5GreetRequest, arraysize(kSOCKS5GreetRequest)),
|
| + MockWrite(ASYNC,
|
| + reinterpret_cast<const char*>(kSOCKS5OkRequest),
|
| + arraysize(kSOCKS5OkRequest)),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n")};
|
|
|
| MockRead data_reads[] = {
|
| - MockRead(ASYNC, kSOCKS5GreetResponse, arraysize(kSOCKS5GreetResponse)),
|
| - MockRead(ASYNC, kSOCKS5OkResponse, arraysize(kSOCKS5OkResponse)),
|
| - MockRead("HTTP/1.0 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n\r\n"),
|
| - MockRead("Payload"),
|
| - MockRead(SYNCHRONOUS, OK)
|
| - };
|
| + MockRead(ASYNC, kSOCKS5GreetResponse, arraysize(kSOCKS5GreetResponse)),
|
| + MockRead(ASYNC, kSOCKS5OkResponse, arraysize(kSOCKS5OkResponse)),
|
| + MockRead("HTTP/1.0 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n\r\n"),
|
| + MockRead("Payload"),
|
| + MockRead(SYNCHRONOUS, OK)};
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| @@ -7418,7 +7497,8 @@ scoped_refptr<HttpNetworkSession> SetupSessionForGroupNameTests(
|
| base::WeakPtr<HttpServerProperties> http_server_properties =
|
| session->http_server_properties();
|
| http_server_properties->SetAlternateProtocol(
|
| - HostPortPair("host.with.alternate", 80), 443,
|
| + HostPortPair("host.with.alternate", 80),
|
| + 443,
|
| AlternateProtocolFromNextProto(next_proto));
|
|
|
| return session;
|
| @@ -7445,38 +7525,29 @@ int GroupNameTransactionHelper(
|
|
|
| TEST_P(HttpNetworkTransactionTest, GroupNameForDirectConnections) {
|
| const GroupNameTest tests[] = {
|
| - {
|
| - "", // unused
|
| - "http://www.google.com/direct",
|
| - "www.google.com:80",
|
| - false,
|
| - },
|
| - {
|
| - "", // unused
|
| - "http://[2001:1418:13:1::25]/direct",
|
| - "[2001:1418:13:1::25]:80",
|
| - false,
|
| - },
|
| -
|
| - // SSL Tests
|
| - {
|
| - "", // unused
|
| - "https://www.google.com/direct_ssl",
|
| - "ssl/www.google.com:443",
|
| - true,
|
| - },
|
| - {
|
| - "", // unused
|
| - "https://[2001:1418:13:1::25]/direct",
|
| - "ssl/[2001:1418:13:1::25]:443",
|
| - true,
|
| - },
|
| - {
|
| - "", // unused
|
| - "http://host.with.alternate/direct",
|
| - "ssl/host.with.alternate:443",
|
| - true,
|
| - },
|
| + {
|
| + "", // unused
|
| + "http://www.google.com/direct", "www.google.com:80", false,
|
| + },
|
| + {
|
| + "", // unused
|
| + "http://[2001:1418:13:1::25]/direct", "[2001:1418:13:1::25]:80", false,
|
| + },
|
| +
|
| + // SSL Tests
|
| + {
|
| + "", // unused
|
| + "https://www.google.com/direct_ssl", "ssl/www.google.com:443", true,
|
| + },
|
| + {
|
| + "", // unused
|
| + "https://[2001:1418:13:1::25]/direct", "ssl/[2001:1418:13:1::25]:443",
|
| + true,
|
| + },
|
| + {
|
| + "", // unused
|
| + "http://host.with.alternate/direct", "ssl/host.with.alternate:443", true,
|
| + },
|
| };
|
|
|
| HttpStreamFactory::set_use_alternate_protocols(true);
|
| @@ -7508,39 +7579,28 @@ TEST_P(HttpNetworkTransactionTest, GroupNameForDirectConnections) {
|
| EXPECT_EQ(tests[i].expected_group_name,
|
| transport_conn_pool->last_group_name_received());
|
| }
|
| -
|
| }
|
|
|
| TEST_P(HttpNetworkTransactionTest, GroupNameForHTTPProxyConnections) {
|
| const GroupNameTest tests[] = {
|
| - {
|
| - "http_proxy",
|
| - "http://www.google.com/http_proxy_normal",
|
| - "www.google.com:80",
|
| - false,
|
| - },
|
| -
|
| - // SSL Tests
|
| - {
|
| - "http_proxy",
|
| - "https://www.google.com/http_connect_ssl",
|
| - "ssl/www.google.com:443",
|
| - true,
|
| - },
|
| -
|
| - {
|
| - "http_proxy",
|
| - "http://host.with.alternate/direct",
|
| - "ssl/host.with.alternate:443",
|
| - true,
|
| - },
|
| -
|
| - {
|
| - "http_proxy",
|
| - "ftp://ftp.google.com/http_proxy_normal",
|
| - "ftp/ftp.google.com:21",
|
| - false,
|
| - },
|
| + {
|
| + "http_proxy", "http://www.google.com/http_proxy_normal",
|
| + "www.google.com:80", false,
|
| + },
|
| +
|
| + // SSL Tests
|
| + {
|
| + "http_proxy", "https://www.google.com/http_connect_ssl",
|
| + "ssl/www.google.com:443", true,
|
| + },
|
| + {
|
| + "http_proxy", "http://host.with.alternate/direct",
|
| + "ssl/host.with.alternate:443", true,
|
| + },
|
| + {
|
| + "http_proxy", "ftp://ftp.google.com/http_proxy_normal",
|
| + "ftp/ftp.google.com:21", false,
|
| + },
|
| };
|
|
|
| HttpStreamFactory::set_use_alternate_protocols(true);
|
| @@ -7579,39 +7639,28 @@ TEST_P(HttpNetworkTransactionTest, GroupNameForHTTPProxyConnections) {
|
|
|
| TEST_P(HttpNetworkTransactionTest, GroupNameForSOCKSConnections) {
|
| const GroupNameTest tests[] = {
|
| - {
|
| - "socks4://socks_proxy:1080",
|
| - "http://www.google.com/socks4_direct",
|
| - "socks4/www.google.com:80",
|
| - false,
|
| - },
|
| - {
|
| - "socks5://socks_proxy:1080",
|
| - "http://www.google.com/socks5_direct",
|
| - "socks5/www.google.com:80",
|
| - false,
|
| - },
|
| -
|
| - // SSL Tests
|
| - {
|
| - "socks4://socks_proxy:1080",
|
| - "https://www.google.com/socks4_ssl",
|
| - "socks4/ssl/www.google.com:443",
|
| - true,
|
| - },
|
| - {
|
| - "socks5://socks_proxy:1080",
|
| - "https://www.google.com/socks5_ssl",
|
| - "socks5/ssl/www.google.com:443",
|
| - true,
|
| - },
|
| -
|
| - {
|
| - "socks4://socks_proxy:1080",
|
| - "http://host.with.alternate/direct",
|
| - "socks4/ssl/host.with.alternate:443",
|
| - true,
|
| - },
|
| + {
|
| + "socks4://socks_proxy:1080", "http://www.google.com/socks4_direct",
|
| + "socks4/www.google.com:80", false,
|
| + },
|
| + {
|
| + "socks5://socks_proxy:1080", "http://www.google.com/socks5_direct",
|
| + "socks5/www.google.com:80", false,
|
| + },
|
| +
|
| + // SSL Tests
|
| + {
|
| + "socks4://socks_proxy:1080", "https://www.google.com/socks4_ssl",
|
| + "socks4/ssl/www.google.com:443", true,
|
| + },
|
| + {
|
| + "socks5://socks_proxy:1080", "https://www.google.com/socks5_ssl",
|
| + "socks5/ssl/www.google.com:443", true,
|
| + },
|
| + {
|
| + "socks4://socks_proxy:1080", "http://host.with.alternate/direct",
|
| + "socks4/ssl/host.with.alternate:443", true,
|
| + },
|
| };
|
|
|
| HttpStreamFactory::set_use_alternate_protocols(true);
|
| @@ -7725,7 +7774,7 @@ void HttpNetworkTransactionTest::BypassHostCacheOnRefreshHelper(
|
|
|
| // Connect up a mock socket which will fail with ERR_UNEXPECTED during the
|
| // first read -- this won't be reached as the host resolution will fail first.
|
| - MockRead data_reads[] = { MockRead(SYNCHRONOUS, ERR_UNEXPECTED) };
|
| + MockRead data_reads[] = {MockRead(SYNCHRONOUS, ERR_UNEXPECTED)};
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| @@ -7761,10 +7810,10 @@ TEST_P(HttpNetworkTransactionTest, RequestWriteError) {
|
| request.load_flags = 0;
|
|
|
| MockWrite write_failure[] = {
|
| - MockWrite(ASYNC, ERR_CONNECTION_RESET),
|
| + MockWrite(ASYNC, ERR_CONNECTION_RESET),
|
| };
|
| - StaticSocketDataProvider data(NULL, 0,
|
| - write_failure, arraysize(write_failure));
|
| + StaticSocketDataProvider data(
|
| + NULL, 0, write_failure, arraysize(write_failure));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| @@ -7788,8 +7837,7 @@ TEST_P(HttpNetworkTransactionTest, ConnectionClosedAfterStartOfHeaders) {
|
| request.load_flags = 0;
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1."),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1."), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| @@ -7828,43 +7876,48 @@ TEST_P(HttpNetworkTransactionTest, DrainResetOK) {
|
| request.load_flags = 0;
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.1 401 Unauthorized\r\n"),
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 14\r\n\r\n"),
|
| - MockRead("Unauth"),
|
| - MockRead(ASYNC, ERR_CONNECTION_RESET),
|
| + MockRead("HTTP/1.1 401 Unauthorized\r\n"),
|
| + MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 14\r\n\r\n"),
|
| + MockRead("Unauth"),
|
| + MockRead(ASYNC, ERR_CONNECTION_RESET),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
|
|
| // After calling trans->RestartWithAuth(), this is the request we should
|
| // be issuing -- the final header line contains the credentials.
|
| MockWrite data_writes2[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| };
|
|
|
| // Lastly, the server responds with the actual content.
|
| MockRead data_reads2[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - data_writes2, arraysize(data_writes2));
|
| + StaticSocketDataProvider data2(data_reads2,
|
| + arraysize(data_reads2),
|
| + data_writes2,
|
| + arraysize(data_writes2));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| @@ -7885,8 +7938,8 @@ TEST_P(HttpNetworkTransactionTest, DrainResetOK) {
|
|
|
| TestCompletionCallback callback2;
|
|
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo, kBar), callback2.callback());
|
| + rv =
|
| + trans->RestartWithAuth(AuthCredentials(kFoo, kBar), callback2.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback2.WaitForResult();
|
| @@ -7908,9 +7961,8 @@ TEST_P(HttpNetworkTransactionTest, HTTPSViaProxyWithExtraData) {
|
| request.load_flags = 0;
|
|
|
| MockRead proxy_reads[] = {
|
| - MockRead("HTTP/1.0 200 Connected\r\n\r\nExtra data"),
|
| - MockRead(SYNCHRONOUS, OK)
|
| - };
|
| + MockRead("HTTP/1.0 200 Connected\r\n\r\nExtra data"),
|
| + MockRead(SYNCHRONOUS, OK)};
|
|
|
| StaticSocketDataProvider data(proxy_reads, arraysize(proxy_reads), NULL, 0);
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| @@ -7944,8 +7996,8 @@ TEST_P(HttpNetworkTransactionTest, LargeContentLengthThenClose) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\nContent-Length:6719476739\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\nContent-Length:6719476739\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| @@ -7996,9 +8048,8 @@ TEST_P(HttpNetworkTransactionTest, UploadFileSmallerThanLength) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| @@ -8029,8 +8080,8 @@ TEST_P(HttpNetworkTransactionTest, UploadUnreadableFile) {
|
| base::FilePath temp_file;
|
| ASSERT_TRUE(base::CreateTemporaryFile(&temp_file));
|
| std::string temp_file_content("Unreadable file.");
|
| - ASSERT_TRUE(base::WriteFile(temp_file, temp_file_content.c_str(),
|
| - temp_file_content.length()));
|
| + ASSERT_TRUE(base::WriteFile(
|
| + temp_file, temp_file_content.c_str(), temp_file_content.length()));
|
| ASSERT_TRUE(file_util::MakeFileUnreadable(temp_file));
|
|
|
| ScopedVector<UploadElementReader> element_readers;
|
| @@ -8128,7 +8179,6 @@ TEST_P(HttpNetworkTransactionTest, CancelDuringInitRequestBody) {
|
|
|
| // Tests that changes to Auth realms are treated like auth rejections.
|
| TEST_P(HttpNetworkTransactionTest, ChangeAuthRealms) {
|
| -
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.google.com/");
|
| @@ -8137,72 +8187,88 @@ TEST_P(HttpNetworkTransactionTest, ChangeAuthRealms) {
|
| // First transaction will request a resource and receive a Basic challenge
|
| // with realm="first_realm".
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "\r\n"),
|
| };
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.1 401 Unauthorized\r\n"
|
| - "WWW-Authenticate: Basic realm=\"first_realm\"\r\n"
|
| - "\r\n"),
|
| + MockRead(
|
| + "HTTP/1.1 401 Unauthorized\r\n"
|
| + "WWW-Authenticate: Basic realm=\"first_realm\"\r\n"
|
| + "\r\n"),
|
| };
|
|
|
| // After calling trans->RestartWithAuth(), provide an Authentication header
|
| // for first_realm. The server will reject and provide a challenge with
|
| // second_realm.
|
| MockWrite data_writes2[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zmlyc3Q6YmF6\r\n"
|
| - "\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zmlyc3Q6YmF6\r\n"
|
| + "\r\n"),
|
| };
|
| MockRead data_reads2[] = {
|
| - MockRead("HTTP/1.1 401 Unauthorized\r\n"
|
| - "WWW-Authenticate: Basic realm=\"second_realm\"\r\n"
|
| - "\r\n"),
|
| + MockRead(
|
| + "HTTP/1.1 401 Unauthorized\r\n"
|
| + "WWW-Authenticate: Basic realm=\"second_realm\"\r\n"
|
| + "\r\n"),
|
| };
|
|
|
| // This again fails, and goes back to first_realm. Make sure that the
|
| // entry is removed from cache.
|
| MockWrite data_writes3[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic c2Vjb25kOmZvdQ==\r\n"
|
| - "\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic c2Vjb25kOmZvdQ==\r\n"
|
| + "\r\n"),
|
| };
|
| MockRead data_reads3[] = {
|
| - MockRead("HTTP/1.1 401 Unauthorized\r\n"
|
| - "WWW-Authenticate: Basic realm=\"first_realm\"\r\n"
|
| - "\r\n"),
|
| + MockRead(
|
| + "HTTP/1.1 401 Unauthorized\r\n"
|
| + "WWW-Authenticate: Basic realm=\"first_realm\"\r\n"
|
| + "\r\n"),
|
| };
|
|
|
| // Try one last time (with the correct password) and get the resource.
|
| MockWrite data_writes4[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: Basic Zmlyc3Q6YmFy\r\n"
|
| - "\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: Basic Zmlyc3Q6YmFy\r\n"
|
| + "\r\n"),
|
| };
|
| MockRead data_reads4[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"
|
| - "Content-Type: text/html; charset=iso-8859-1\r\n"
|
| - "Content-Length: 5\r\n"
|
| - "\r\n"
|
| - "hello"),
|
| - };
|
| -
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - data_writes2, arraysize(data_writes2));
|
| - StaticSocketDataProvider data3(data_reads3, arraysize(data_reads3),
|
| - data_writes3, arraysize(data_writes3));
|
| - StaticSocketDataProvider data4(data_reads4, arraysize(data_reads4),
|
| - data_writes4, arraysize(data_writes4));
|
| + MockRead(
|
| + "HTTP/1.1 200 OK\r\n"
|
| + "Content-Type: text/html; charset=iso-8859-1\r\n"
|
| + "Content-Length: 5\r\n"
|
| + "\r\n"
|
| + "hello"),
|
| + };
|
| +
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| + StaticSocketDataProvider data2(data_reads2,
|
| + arraysize(data_reads2),
|
| + data_writes2,
|
| + arraysize(data_writes2));
|
| + StaticSocketDataProvider data3(data_reads3,
|
| + arraysize(data_reads3),
|
| + data_writes3,
|
| + arraysize(data_writes3));
|
| + StaticSocketDataProvider data4(data_reads4,
|
| + arraysize(data_reads4),
|
| + data_writes4,
|
| + arraysize(data_writes4));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data3);
|
| @@ -8234,8 +8300,8 @@ TEST_P(HttpNetworkTransactionTest, ChangeAuthRealms) {
|
| // password prompt for second_realm waiting to be filled in after the
|
| // transaction completes.
|
| TestCompletionCallback callback2;
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFirst, kBaz), callback2.callback());
|
| + rv = trans->RestartWithAuth(AuthCredentials(kFirst, kBaz),
|
| + callback2.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
| rv = callback2.WaitForResult();
|
| EXPECT_EQ(OK, rv);
|
| @@ -8253,8 +8319,8 @@ TEST_P(HttpNetworkTransactionTest, ChangeAuthRealms) {
|
| // prompt is not present, it indicates that the HttpAuthCacheEntry for
|
| // first_realm was not correctly removed.
|
| TestCompletionCallback callback3;
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kSecond, kFou), callback3.callback());
|
| + rv = trans->RestartWithAuth(AuthCredentials(kSecond, kFou),
|
| + callback3.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
| rv = callback3.WaitForResult();
|
| EXPECT_EQ(OK, rv);
|
| @@ -8269,8 +8335,8 @@ TEST_P(HttpNetworkTransactionTest, ChangeAuthRealms) {
|
|
|
| // Issue the fourth request with the correct password and username.
|
| TestCompletionCallback callback4;
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFirst, kBar), callback4.callback());
|
| + rv = trans->RestartWithAuth(AuthCredentials(kFirst, kBar),
|
| + callback4.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
| rv = callback4.WaitForResult();
|
| EXPECT_EQ(OK, rv);
|
| @@ -8283,14 +8349,12 @@ TEST_P(HttpNetworkTransactionTest, HonorAlternateProtocolHeader) {
|
| HttpStreamFactory::SetNextProtos(SpdyNextProtos());
|
| HttpStreamFactory::set_use_alternate_protocols(true);
|
|
|
| - std::string alternate_protocol_http_header =
|
| - GetAlternateProtocolHttpHeader();
|
| + std::string alternate_protocol_http_header = GetAlternateProtocolHttpHeader();
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead(alternate_protocol_http_header.c_str()),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead(alternate_protocol_http_header.c_str()), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| HttpRequestInfo request;
|
| @@ -8339,8 +8403,7 @@ TEST_P(HttpNetworkTransactionTest, HonorAlternateProtocolHeader) {
|
| EXPECT_TRUE(expected_alternate.Equals(alternate));
|
| }
|
|
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - MarkBrokenAlternateProtocolAndFallback) {
|
| +TEST_P(HttpNetworkTransactionTest, MarkBrokenAlternateProtocolAndFallback) {
|
| HttpStreamFactory::set_use_alternate_protocols(true);
|
|
|
| HttpRequestInfo request;
|
| @@ -8354,9 +8417,8 @@ TEST_P(HttpNetworkTransactionTest,
|
| session_deps_.socket_factory->AddSocketDataProvider(&first_data);
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(ASYNC, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(ASYNC, OK),
|
| };
|
| StaticSocketDataProvider second_data(
|
| data_reads, arraysize(data_reads), NULL, 0);
|
| @@ -8398,8 +8460,7 @@ TEST_P(HttpNetworkTransactionTest,
|
| EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, alternate.protocol);
|
| }
|
|
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - AlternateProtocolPortRestrictedBlocked) {
|
| +TEST_P(HttpNetworkTransactionTest, AlternateProtocolPortRestrictedBlocked) {
|
| // Ensure that we're not allowed to redirect traffic via an alternate
|
| // protocol to an unrestricted (port >= 1024) when the original traffic was
|
| // on a restricted port (port < 1024). Ensure that we can redirect in all
|
| @@ -8417,9 +8478,8 @@ TEST_P(HttpNetworkTransactionTest,
|
| session_deps_.socket_factory->AddSocketDataProvider(&first_data);
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(ASYNC, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(ASYNC, OK),
|
| };
|
| StaticSocketDataProvider second_data(
|
| data_reads, arraysize(data_reads), NULL, 0);
|
| @@ -8440,15 +8500,13 @@ TEST_P(HttpNetworkTransactionTest,
|
| TestCompletionCallback callback;
|
|
|
| int rv = trans->Start(
|
| - &restricted_port_request,
|
| - callback.callback(), BoundNetLog());
|
| + &restricted_port_request, callback.callback(), BoundNetLog());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
| // Invalid change to unrestricted port should fail.
|
| EXPECT_EQ(ERR_CONNECTION_REFUSED, callback.WaitForResult());
|
| }
|
|
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - AlternateProtocolPortRestrictedPermitted) {
|
| +TEST_P(HttpNetworkTransactionTest, AlternateProtocolPortRestrictedPermitted) {
|
| // Ensure that we're allowed to redirect traffic via an alternate
|
| // protocol to an unrestricted (port >= 1024) when the original traffic was
|
| // on a restricted port (port < 1024) if we set
|
| @@ -8468,9 +8526,8 @@ TEST_P(HttpNetworkTransactionTest,
|
| session_deps_.socket_factory->AddSocketDataProvider(&first_data);
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(ASYNC, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(ASYNC, OK),
|
| };
|
| StaticSocketDataProvider second_data(
|
| data_reads, arraysize(data_reads), NULL, 0);
|
| @@ -8490,15 +8547,14 @@ TEST_P(HttpNetworkTransactionTest,
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
| TestCompletionCallback callback;
|
|
|
| - EXPECT_EQ(ERR_IO_PENDING, trans->Start(
|
| - &restricted_port_request,
|
| - callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(ERR_IO_PENDING,
|
| + trans->Start(
|
| + &restricted_port_request, callback.callback(), BoundNetLog()));
|
| // Change to unrestricted port should succeed.
|
| EXPECT_EQ(OK, callback.WaitForResult());
|
| }
|
|
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - AlternateProtocolPortRestrictedAllowed) {
|
| +TEST_P(HttpNetworkTransactionTest, AlternateProtocolPortRestrictedAllowed) {
|
| // Ensure that we're not allowed to redirect traffic via an alternate
|
| // protocol to an unrestricted (port >= 1024) when the original traffic was
|
| // on a restricted port (port < 1024). Ensure that we can redirect in all
|
| @@ -8516,9 +8572,8 @@ TEST_P(HttpNetworkTransactionTest,
|
| session_deps_.socket_factory->AddSocketDataProvider(&first_data);
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(ASYNC, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(ASYNC, OK),
|
| };
|
| StaticSocketDataProvider second_data(
|
| data_reads, arraysize(data_reads), NULL, 0);
|
| @@ -8539,15 +8594,13 @@ TEST_P(HttpNetworkTransactionTest,
|
| TestCompletionCallback callback;
|
|
|
| int rv = trans->Start(
|
| - &restricted_port_request,
|
| - callback.callback(), BoundNetLog());
|
| + &restricted_port_request, callback.callback(), BoundNetLog());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
| // Valid change to restricted port should pass.
|
| EXPECT_EQ(OK, callback.WaitForResult());
|
| }
|
|
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - AlternateProtocolPortUnrestrictedAllowed1) {
|
| +TEST_P(HttpNetworkTransactionTest, AlternateProtocolPortUnrestrictedAllowed1) {
|
| // Ensure that we're not allowed to redirect traffic via an alternate
|
| // protocol to an unrestricted (port >= 1024) when the original traffic was
|
| // on a restricted port (port < 1024). Ensure that we can redirect in all
|
| @@ -8565,9 +8618,8 @@ TEST_P(HttpNetworkTransactionTest,
|
| session_deps_.socket_factory->AddSocketDataProvider(&first_data);
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(ASYNC, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(ASYNC, OK),
|
| };
|
| StaticSocketDataProvider second_data(
|
| data_reads, arraysize(data_reads), NULL, 0);
|
| @@ -8594,8 +8646,7 @@ TEST_P(HttpNetworkTransactionTest,
|
| EXPECT_EQ(OK, callback.WaitForResult());
|
| }
|
|
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - AlternateProtocolPortUnrestrictedAllowed2) {
|
| +TEST_P(HttpNetworkTransactionTest, AlternateProtocolPortUnrestrictedAllowed2) {
|
| // Ensure that we're not allowed to redirect traffic via an alternate
|
| // protocol to an unrestricted (port >= 1024) when the original traffic was
|
| // on a restricted port (port < 1024). Ensure that we can redirect in all
|
| @@ -8613,9 +8664,8 @@ TEST_P(HttpNetworkTransactionTest,
|
| session_deps_.socket_factory->AddSocketDataProvider(&first_data);
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(ASYNC, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(ASYNC, OK),
|
| };
|
| StaticSocketDataProvider second_data(
|
| data_reads, arraysize(data_reads), NULL, 0);
|
| @@ -8642,8 +8692,7 @@ TEST_P(HttpNetworkTransactionTest,
|
| EXPECT_EQ(OK, callback.WaitForResult());
|
| }
|
|
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - AlternateProtocolUnsafeBlocked) {
|
| +TEST_P(HttpNetworkTransactionTest, AlternateProtocolUnsafeBlocked) {
|
| // Ensure that we're not allowed to redirect traffic via an alternate
|
| // protocol to an unsafe port, and that we resume the second
|
| // HttpStreamFactoryImpl::Job once the alternate protocol request fails.
|
| @@ -8657,12 +8706,10 @@ TEST_P(HttpNetworkTransactionTest,
|
| // The alternate protocol request will error out before we attempt to connect,
|
| // so only the standard HTTP request will try to connect.
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(ASYNC, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(ASYNC, OK),
|
| };
|
| - StaticSocketDataProvider data(
|
| - data_reads, arraysize(data_reads), NULL, 0);
|
| + StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| @@ -8706,16 +8753,13 @@ TEST_P(HttpNetworkTransactionTest, UseAlternateProtocolForNpnSpdy) {
|
| request.url = GURL("http://www.google.com/");
|
| request.load_flags = 0;
|
|
|
| - std::string alternate_protocol_http_header =
|
| - GetAlternateProtocolHttpHeader();
|
| + std::string alternate_protocol_http_header = GetAlternateProtocolHttpHeader();
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead(alternate_protocol_http_header.c_str()),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
|
| - MockRead(ASYNC, OK)
|
| - };
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead(alternate_protocol_http_header.c_str()), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
|
| + MockRead(ASYNC, OK)};
|
|
|
| StaticSocketDataProvider first_transaction(
|
| data_reads, arraysize(data_reads), NULL, 0);
|
| @@ -8727,20 +8771,20 @@ TEST_P(HttpNetworkTransactionTest, UseAlternateProtocolForNpnSpdy) {
|
|
|
| scoped_ptr<SpdyFrame> req(
|
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true));
|
| - MockWrite spdy_writes[] = { CreateMockWrite(*req) };
|
| + MockWrite spdy_writes[] = {CreateMockWrite(*req)};
|
|
|
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| scoped_ptr<SpdyFrame> data(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*resp),
|
| - CreateMockRead(*data),
|
| - MockRead(ASYNC, 0, 0),
|
| + CreateMockRead(*resp), CreateMockRead(*data), MockRead(ASYNC, 0, 0),
|
| };
|
|
|
| DelayedSocketData spdy_data(
|
| 1, // wait for one write to finish before reading.
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + spdy_reads,
|
| + arraysize(spdy_reads),
|
| + spdy_writes,
|
| + arraysize(spdy_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
|
|
|
| MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING);
|
| @@ -8796,15 +8840,14 @@ TEST_P(HttpNetworkTransactionTest, AlternateProtocolWithSpdyLateBinding) {
|
| request.url = GURL("http://www.google.com/");
|
| request.load_flags = 0;
|
|
|
| - std::string alternate_protocol_http_header =
|
| - GetAlternateProtocolHttpHeader();
|
| + std::string alternate_protocol_http_header = GetAlternateProtocolHttpHeader();
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead(alternate_protocol_http_header.c_str()),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
|
| - MockRead(ASYNC, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead(alternate_protocol_http_header.c_str()),
|
| + MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
|
| + MockRead(ASYNC, OK),
|
| };
|
|
|
| StaticSocketDataProvider first_transaction(
|
| @@ -8813,8 +8856,7 @@ TEST_P(HttpNetworkTransactionTest, AlternateProtocolWithSpdyLateBinding) {
|
| session_deps_.socket_factory->AddSocketDataProvider(&first_transaction);
|
|
|
| MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING);
|
| - StaticSocketDataProvider hanging_socket(
|
| - NULL, 0, NULL, 0);
|
| + StaticSocketDataProvider hanging_socket(NULL, 0, NULL, 0);
|
| hanging_socket.set_connect_data(never_finishing_connect);
|
| // Socket 2 and 3 are the hanging Alternate-Protocol and
|
| // non-Alternate-Protocol jobs from the 2nd transaction.
|
| @@ -8830,25 +8872,22 @@ TEST_P(HttpNetworkTransactionTest, AlternateProtocolWithSpdyLateBinding) {
|
| scoped_ptr<SpdyFrame> req2(
|
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 3, LOWEST, true));
|
| MockWrite spdy_writes[] = {
|
| - CreateMockWrite(*req1),
|
| - CreateMockWrite(*req2),
|
| + CreateMockWrite(*req1), CreateMockWrite(*req2),
|
| };
|
| scoped_ptr<SpdyFrame> resp1(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| scoped_ptr<SpdyFrame> data1(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| scoped_ptr<SpdyFrame> resp2(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3));
|
| scoped_ptr<SpdyFrame> data2(spdy_util_.ConstructSpdyBodyFrame(3, true));
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*resp1),
|
| - CreateMockRead(*data1),
|
| - CreateMockRead(*resp2),
|
| - CreateMockRead(*data2),
|
| - MockRead(ASYNC, 0, 0),
|
| + CreateMockRead(*resp1), CreateMockRead(*data1), CreateMockRead(*resp2),
|
| + CreateMockRead(*data2), MockRead(ASYNC, 0, 0),
|
| };
|
|
|
| - DelayedSocketData spdy_data(
|
| - 2, // wait for writes to finish before reading.
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + DelayedSocketData spdy_data(2, // wait for writes to finish before reading.
|
| + spdy_reads,
|
| + arraysize(spdy_reads),
|
| + spdy_writes,
|
| + arraysize(spdy_writes));
|
| // Socket 4 is the successful Alternate-Protocol for transaction 3.
|
| session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
|
|
|
| @@ -8913,15 +8952,14 @@ TEST_P(HttpNetworkTransactionTest, StallAlternateProtocolForNpnSpdy) {
|
| request.url = GURL("http://www.google.com/");
|
| request.load_flags = 0;
|
|
|
| - std::string alternate_protocol_http_header =
|
| - GetAlternateProtocolHttpHeader();
|
| + std::string alternate_protocol_http_header = GetAlternateProtocolHttpHeader();
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead(alternate_protocol_http_header.c_str()),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
|
| - MockRead(ASYNC, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead(alternate_protocol_http_header.c_str()),
|
| + MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
|
| + MockRead(ASYNC, OK),
|
| };
|
|
|
| StaticSocketDataProvider first_transaction(
|
| @@ -8933,10 +8971,8 @@ TEST_P(HttpNetworkTransactionTest, StallAlternateProtocolForNpnSpdy) {
|
| session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
|
|
|
| MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING);
|
| - StaticSocketDataProvider hanging_alternate_protocol_socket(
|
| - NULL, 0, NULL, 0);
|
| - hanging_alternate_protocol_socket.set_connect_data(
|
| - never_finishing_connect);
|
| + StaticSocketDataProvider hanging_alternate_protocol_socket(NULL, 0, NULL, 0);
|
| + hanging_alternate_protocol_socket.set_connect_data(never_finishing_connect);
|
| session_deps_.socket_factory->AddSocketDataProvider(
|
| &hanging_alternate_protocol_socket);
|
|
|
| @@ -8996,18 +9032,14 @@ class CapturingProxyResolver : public ProxyResolver {
|
| return OK;
|
| }
|
|
|
| - virtual void CancelRequest(RequestHandle request) OVERRIDE {
|
| - NOTREACHED();
|
| - }
|
| + virtual void CancelRequest(RequestHandle request) OVERRIDE { NOTREACHED(); }
|
|
|
| virtual LoadState GetLoadState(RequestHandle request) const OVERRIDE {
|
| NOTREACHED();
|
| return LOAD_STATE_IDLE;
|
| }
|
|
|
| - virtual void CancelSetPacScript() OVERRIDE {
|
| - NOTREACHED();
|
| - }
|
| + virtual void CancelSetPacScript() OVERRIDE { NOTREACHED(); }
|
|
|
| virtual int SetPacScript(const scoped_refptr<ProxyResolverScriptData>&,
|
| const CompletionCallback& /*callback*/) OVERRIDE {
|
| @@ -9022,8 +9054,7 @@ class CapturingProxyResolver : public ProxyResolver {
|
| DISALLOW_COPY_AND_ASSIGN(CapturingProxyResolver);
|
| };
|
|
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - UseAlternateProtocolForTunneledNpnSpdy) {
|
| +TEST_P(HttpNetworkTransactionTest, UseAlternateProtocolForTunneledNpnSpdy) {
|
| HttpStreamFactory::set_use_alternate_protocols(true);
|
| HttpStreamFactory::SetNextProtos(SpdyNextProtos());
|
|
|
| @@ -9033,9 +9064,10 @@ TEST_P(HttpNetworkTransactionTest,
|
|
|
| CapturingProxyResolver* capturing_proxy_resolver =
|
| new CapturingProxyResolver();
|
| - session_deps_.proxy_service.reset(new ProxyService(
|
| - new ProxyConfigServiceFixed(proxy_config), capturing_proxy_resolver,
|
| - NULL));
|
| + session_deps_.proxy_service.reset(
|
| + new ProxyService(new ProxyConfigServiceFixed(proxy_config),
|
| + capturing_proxy_resolver,
|
| + NULL));
|
| CapturingNetLog net_log;
|
| session_deps_.net_log = &net_log;
|
|
|
| @@ -9044,15 +9076,14 @@ TEST_P(HttpNetworkTransactionTest,
|
| request.url = GURL("http://www.google.com/");
|
| request.load_flags = 0;
|
|
|
| - std::string alternate_protocol_http_header =
|
| - GetAlternateProtocolHttpHeader();
|
| + std::string alternate_protocol_http_header = GetAlternateProtocolHttpHeader();
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead(alternate_protocol_http_header.c_str()),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
|
| - MockRead(ASYNC, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead(alternate_protocol_http_header.c_str()),
|
| + MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
|
| + MockRead(ASYNC, OK),
|
| };
|
|
|
| StaticSocketDataProvider first_transaction(
|
| @@ -9066,10 +9097,11 @@ TEST_P(HttpNetworkTransactionTest,
|
| scoped_ptr<SpdyFrame> req(
|
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true));
|
| MockWrite spdy_writes[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"), // 0
|
| - CreateMockWrite(*req), // 3
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"), // 0
|
| + CreateMockWrite(*req), // 3
|
| };
|
|
|
| const char kCONNECTResponse[] = "HTTP/1.1 200 Connected\r\n\r\n";
|
| @@ -9077,15 +9109,15 @@ TEST_P(HttpNetworkTransactionTest,
|
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| scoped_ptr<SpdyFrame> data(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| MockRead spdy_reads[] = {
|
| - MockRead(ASYNC, kCONNECTResponse, arraysize(kCONNECTResponse) - 1, 1), // 1
|
| - CreateMockRead(*resp.get(), 4), // 2, 4
|
| - CreateMockRead(*data.get(), 4), // 5
|
| - MockRead(ASYNC, 0, 0, 4), // 6
|
| + MockRead(
|
| + ASYNC, kCONNECTResponse, arraysize(kCONNECTResponse) - 1, 1), // 1
|
| + CreateMockRead(*resp.get(), 4), // 2, 4
|
| + CreateMockRead(*data.get(), 4), // 5
|
| + MockRead(ASYNC, 0, 0, 4), // 6
|
| };
|
|
|
| OrderedSocketData spdy_data(
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + spdy_reads, arraysize(spdy_reads), spdy_writes, arraysize(spdy_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
|
|
|
| MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING);
|
| @@ -9154,14 +9186,12 @@ TEST_P(HttpNetworkTransactionTest,
|
| request.url = GURL("http://www.google.com/");
|
| request.load_flags = 0;
|
|
|
| - std::string alternate_protocol_http_header =
|
| - GetAlternateProtocolHttpHeader();
|
| + std::string alternate_protocol_http_header = GetAlternateProtocolHttpHeader();
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead(alternate_protocol_http_header.c_str()),
|
| - MockRead("hello world"),
|
| - MockRead(ASYNC, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead(alternate_protocol_http_header.c_str()), MockRead("hello world"),
|
| + MockRead(ASYNC, OK),
|
| };
|
|
|
| StaticSocketDataProvider first_transaction(
|
| @@ -9174,20 +9204,20 @@ TEST_P(HttpNetworkTransactionTest,
|
|
|
| scoped_ptr<SpdyFrame> req(
|
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true));
|
| - MockWrite spdy_writes[] = { CreateMockWrite(*req) };
|
| + MockWrite spdy_writes[] = {CreateMockWrite(*req)};
|
|
|
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| scoped_ptr<SpdyFrame> data(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*resp),
|
| - CreateMockRead(*data),
|
| - MockRead(ASYNC, 0, 0),
|
| + CreateMockRead(*resp), CreateMockRead(*data), MockRead(ASYNC, 0, 0),
|
| };
|
|
|
| DelayedSocketData spdy_data(
|
| 1, // wait for one write to finish before reading.
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + spdy_reads,
|
| + arraysize(spdy_reads),
|
| + spdy_writes,
|
| + arraysize(spdy_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -9212,8 +9242,8 @@ TEST_P(HttpNetworkTransactionTest,
|
|
|
| // Set up an initial SpdySession in the pool to reuse.
|
| HostPortPair host_port_pair("www.google.com", 443);
|
| - SpdySessionKey key(host_port_pair, ProxyServer::Direct(),
|
| - PRIVACY_MODE_DISABLED);
|
| + SpdySessionKey key(
|
| + host_port_pair, ProxyServer::Direct(), PRIVACY_MODE_DISABLED);
|
| base::WeakPtr<SpdySession> spdy_session =
|
| CreateSecureSpdySession(session, key, BoundNetLog());
|
|
|
| @@ -9306,8 +9336,7 @@ TEST_P(HttpNetworkTransactionTest, GenerateAuthToken) {
|
| "Content-Type: text/html; charset=iso-8859-1\r\n"
|
| "Content-Length: 3\r\n\r\n"
|
| "Yes");
|
| - const MockRead kFailure(
|
| - "Should not be called.");
|
| + const MockRead kFailure("Should not be called.");
|
| const MockRead kServerChallenge(
|
| "HTTP/1.1 401 Unauthorized\r\n"
|
| "WWW-Authenticate: Mock realm=server\r\n"
|
| @@ -9321,8 +9350,7 @@ TEST_P(HttpNetworkTransactionTest, GenerateAuthToken) {
|
| "Content-Type: text/html; charset=iso-8859-1\r\n"
|
| "Content-Length: 14\r\n\r\n"
|
| "Unauthorized\r\n");
|
| - const MockRead kProxyConnected(
|
| - "HTTP/1.1 200 Connection Established\r\n\r\n");
|
| + const MockRead kProxyConnected("HTTP/1.1 200 Connection Established\r\n\r\n");
|
|
|
| // NOTE(cbentzel): I wanted TestReadWriteRound to be a simple struct with
|
| // no constructors, but the C++ compiler on Windows warns about
|
| @@ -9330,27 +9358,25 @@ TEST_P(HttpNetworkTransactionTest, GenerateAuthToken) {
|
| // and TestRound's created with the default constructor should not be used.
|
| struct TestRound {
|
| TestRound()
|
| - : expected_rv(ERR_UNEXPECTED),
|
| - extra_write(NULL),
|
| - extra_read(NULL) {
|
| - }
|
| - TestRound(const MockWrite& write_arg, const MockRead& read_arg,
|
| + : expected_rv(ERR_UNEXPECTED), extra_write(NULL), extra_read(NULL) {}
|
| + TestRound(const MockWrite& write_arg,
|
| + const MockRead& read_arg,
|
| int expected_rv_arg)
|
| : write(write_arg),
|
| read(read_arg),
|
| expected_rv(expected_rv_arg),
|
| extra_write(NULL),
|
| - extra_read(NULL) {
|
| - }
|
| - TestRound(const MockWrite& write_arg, const MockRead& read_arg,
|
| - int expected_rv_arg, const MockWrite* extra_write_arg,
|
| + extra_read(NULL) {}
|
| + TestRound(const MockWrite& write_arg,
|
| + const MockRead& read_arg,
|
| + int expected_rv_arg,
|
| + const MockWrite* extra_write_arg,
|
| const MockRead* extra_read_arg)
|
| : write(write_arg),
|
| read(read_arg),
|
| expected_rv(expected_rv_arg),
|
| extra_write(extra_write_arg),
|
| - extra_read(extra_read_arg) {
|
| - }
|
| + extra_read(extra_read_arg) {}
|
| MockWrite write;
|
| MockRead read;
|
| int expected_rv;
|
| @@ -9371,171 +9397,479 @@ TEST_P(HttpNetworkTransactionTest, GenerateAuthToken) {
|
| int first_ssl_round;
|
| TestRound rounds[3];
|
| } test_configs[] = {
|
| - // Non-authenticating HTTP server with a direct connection.
|
| - { NULL, AUTH_NONE, OK, kServer, AUTH_NONE, OK, 1, kNoSSL,
|
| - { TestRound(kGet, kSuccess, OK)}},
|
| - // Authenticating HTTP server with a direct connection.
|
| - { NULL, AUTH_NONE, OK, kServer, AUTH_SYNC, OK, 2, kNoSSL,
|
| - { TestRound(kGet, kServerChallenge, OK),
|
| - TestRound(kGetAuth, kSuccess, OK)}},
|
| - { NULL, AUTH_NONE, OK, kServer, AUTH_SYNC, kAuthErr, 2, kNoSSL,
|
| - { TestRound(kGet, kServerChallenge, OK),
|
| - TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| - { NULL, AUTH_NONE, OK, kServer, AUTH_ASYNC, OK, 2, kNoSSL,
|
| - { TestRound(kGet, kServerChallenge, OK),
|
| - TestRound(kGetAuth, kSuccess, OK)}},
|
| - { NULL, AUTH_NONE, OK, kServer, AUTH_ASYNC, kAuthErr, 2, kNoSSL,
|
| - { TestRound(kGet, kServerChallenge, OK),
|
| - TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| - // Non-authenticating HTTP server through a non-authenticating proxy.
|
| - { kProxy, AUTH_NONE, OK, kServer, AUTH_NONE, OK, 1, kNoSSL,
|
| - { TestRound(kGetProxy, kSuccess, OK)}},
|
| - // Authenticating HTTP server through a non-authenticating proxy.
|
| - { kProxy, AUTH_NONE, OK, kServer, AUTH_SYNC, OK, 2, kNoSSL,
|
| - { TestRound(kGetProxy, kServerChallenge, OK),
|
| - TestRound(kGetAuthThroughProxy, kSuccess, OK)}},
|
| - { kProxy, AUTH_NONE, OK, kServer, AUTH_SYNC, kAuthErr, 2, kNoSSL,
|
| - { TestRound(kGetProxy, kServerChallenge, OK),
|
| - TestRound(kGetAuthThroughProxy, kFailure, kAuthErr)}},
|
| - { kProxy, AUTH_NONE, OK, kServer, AUTH_ASYNC, OK, 2, kNoSSL,
|
| - { TestRound(kGetProxy, kServerChallenge, OK),
|
| - TestRound(kGetAuthThroughProxy, kSuccess, OK)}},
|
| - { kProxy, AUTH_NONE, OK, kServer, AUTH_ASYNC, kAuthErr, 2, kNoSSL,
|
| - { TestRound(kGetProxy, kServerChallenge, OK),
|
| - TestRound(kGetAuthThroughProxy, kFailure, kAuthErr)}},
|
| - // Non-authenticating HTTP server through an authenticating proxy.
|
| - { kProxy, AUTH_SYNC, OK, kServer, AUTH_NONE, OK, 2, kNoSSL,
|
| - { TestRound(kGetProxy, kProxyChallenge, OK),
|
| - TestRound(kGetProxyAuth, kSuccess, OK)}},
|
| - { kProxy, AUTH_SYNC, kAuthErr, kServer, AUTH_NONE, OK, 2, kNoSSL,
|
| - { TestRound(kGetProxy, kProxyChallenge, OK),
|
| - TestRound(kGetProxyAuth, kFailure, kAuthErr)}},
|
| - { kProxy, AUTH_ASYNC, OK, kServer, AUTH_NONE, OK, 2, kNoSSL,
|
| - { TestRound(kGetProxy, kProxyChallenge, OK),
|
| - TestRound(kGetProxyAuth, kSuccess, OK)}},
|
| - { kProxy, AUTH_ASYNC, kAuthErr, kServer, AUTH_NONE, OK, 2, kNoSSL,
|
| - { TestRound(kGetProxy, kProxyChallenge, OK),
|
| - TestRound(kGetProxyAuth, kFailure, kAuthErr)}},
|
| - // Authenticating HTTP server through an authenticating proxy.
|
| - { kProxy, AUTH_SYNC, OK, kServer, AUTH_SYNC, OK, 3, kNoSSL,
|
| - { TestRound(kGetProxy, kProxyChallenge, OK),
|
| - TestRound(kGetProxyAuth, kServerChallenge, OK),
|
| - TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}},
|
| - { kProxy, AUTH_SYNC, OK, kServer, AUTH_SYNC, kAuthErr, 3, kNoSSL,
|
| - { TestRound(kGetProxy, kProxyChallenge, OK),
|
| - TestRound(kGetProxyAuth, kServerChallenge, OK),
|
| - TestRound(kGetAuthWithProxyAuth, kFailure, kAuthErr)}},
|
| - { kProxy, AUTH_ASYNC, OK, kServer, AUTH_SYNC, OK, 3, kNoSSL,
|
| - { TestRound(kGetProxy, kProxyChallenge, OK),
|
| - TestRound(kGetProxyAuth, kServerChallenge, OK),
|
| - TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}},
|
| - { kProxy, AUTH_ASYNC, OK, kServer, AUTH_SYNC, kAuthErr, 3, kNoSSL,
|
| - { TestRound(kGetProxy, kProxyChallenge, OK),
|
| - TestRound(kGetProxyAuth, kServerChallenge, OK),
|
| - TestRound(kGetAuthWithProxyAuth, kFailure, kAuthErr)}},
|
| - { kProxy, AUTH_SYNC, OK, kServer, AUTH_ASYNC, OK, 3, kNoSSL,
|
| - { TestRound(kGetProxy, kProxyChallenge, OK),
|
| - TestRound(kGetProxyAuth, kServerChallenge, OK),
|
| - TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}},
|
| - { kProxy, AUTH_SYNC, OK, kServer, AUTH_ASYNC, kAuthErr, 3, kNoSSL,
|
| - { TestRound(kGetProxy, kProxyChallenge, OK),
|
| - TestRound(kGetProxyAuth, kServerChallenge, OK),
|
| - TestRound(kGetAuthWithProxyAuth, kFailure, kAuthErr)}},
|
| - { kProxy, AUTH_ASYNC, OK, kServer, AUTH_ASYNC, OK, 3, kNoSSL,
|
| - { TestRound(kGetProxy, kProxyChallenge, OK),
|
| - TestRound(kGetProxyAuth, kServerChallenge, OK),
|
| - TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}},
|
| - { kProxy, AUTH_ASYNC, OK, kServer, AUTH_ASYNC, kAuthErr, 3, kNoSSL,
|
| - { TestRound(kGetProxy, kProxyChallenge, OK),
|
| - TestRound(kGetProxyAuth, kServerChallenge, OK),
|
| - TestRound(kGetAuthWithProxyAuth, kFailure, kAuthErr)}},
|
| - // Non-authenticating HTTPS server with a direct connection.
|
| - { NULL, AUTH_NONE, OK, kSecureServer, AUTH_NONE, OK, 1, 0,
|
| - { TestRound(kGet, kSuccess, OK)}},
|
| - // Authenticating HTTPS server with a direct connection.
|
| - { NULL, AUTH_NONE, OK, kSecureServer, AUTH_SYNC, OK, 2, 0,
|
| - { TestRound(kGet, kServerChallenge, OK),
|
| - TestRound(kGetAuth, kSuccess, OK)}},
|
| - { NULL, AUTH_NONE, OK, kSecureServer, AUTH_SYNC, kAuthErr, 2, 0,
|
| - { TestRound(kGet, kServerChallenge, OK),
|
| - TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| - { NULL, AUTH_NONE, OK, kSecureServer, AUTH_ASYNC, OK, 2, 0,
|
| - { TestRound(kGet, kServerChallenge, OK),
|
| - TestRound(kGetAuth, kSuccess, OK)}},
|
| - { NULL, AUTH_NONE, OK, kSecureServer, AUTH_ASYNC, kAuthErr, 2, 0,
|
| - { TestRound(kGet, kServerChallenge, OK),
|
| - TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| - // Non-authenticating HTTPS server with a non-authenticating proxy.
|
| - { kProxy, AUTH_NONE, OK, kSecureServer, AUTH_NONE, OK, 1, 0,
|
| - { TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}},
|
| - // Authenticating HTTPS server through a non-authenticating proxy.
|
| - { kProxy, AUTH_NONE, OK, kSecureServer, AUTH_SYNC, OK, 2, 0,
|
| - { TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge),
|
| - TestRound(kGetAuth, kSuccess, OK)}},
|
| - { kProxy, AUTH_NONE, OK, kSecureServer, AUTH_SYNC, kAuthErr, 2, 0,
|
| - { TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge),
|
| - TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| - { kProxy, AUTH_NONE, OK, kSecureServer, AUTH_ASYNC, OK, 2, 0,
|
| - { TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge),
|
| - TestRound(kGetAuth, kSuccess, OK)}},
|
| - { kProxy, AUTH_NONE, OK, kSecureServer, AUTH_ASYNC, kAuthErr, 2, 0,
|
| - { TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge),
|
| - TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| - // Non-Authenticating HTTPS server through an authenticating proxy.
|
| - { kProxy, AUTH_SYNC, OK, kSecureServer, AUTH_NONE, OK, 2, 1,
|
| - { TestRound(kConnect, kProxyChallenge, OK),
|
| - TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}},
|
| - { kProxy, AUTH_SYNC, kAuthErr, kSecureServer, AUTH_NONE, OK, 2, kNoSSL,
|
| - { TestRound(kConnect, kProxyChallenge, OK),
|
| - TestRound(kConnectProxyAuth, kFailure, kAuthErr)}},
|
| - { kProxy, AUTH_ASYNC, OK, kSecureServer, AUTH_NONE, OK, 2, 1,
|
| - { TestRound(kConnect, kProxyChallenge, OK),
|
| - TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}},
|
| - { kProxy, AUTH_ASYNC, kAuthErr, kSecureServer, AUTH_NONE, OK, 2, kNoSSL,
|
| - { TestRound(kConnect, kProxyChallenge, OK),
|
| - TestRound(kConnectProxyAuth, kFailure, kAuthErr)}},
|
| - // Authenticating HTTPS server through an authenticating proxy.
|
| - { kProxy, AUTH_SYNC, OK, kSecureServer, AUTH_SYNC, OK, 3, 1,
|
| - { TestRound(kConnect, kProxyChallenge, OK),
|
| - TestRound(kConnectProxyAuth, kProxyConnected, OK,
|
| - &kGet, &kServerChallenge),
|
| - TestRound(kGetAuth, kSuccess, OK)}},
|
| - { kProxy, AUTH_SYNC, OK, kSecureServer, AUTH_SYNC, kAuthErr, 3, 1,
|
| - { TestRound(kConnect, kProxyChallenge, OK),
|
| - TestRound(kConnectProxyAuth, kProxyConnected, OK,
|
| - &kGet, &kServerChallenge),
|
| - TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| - { kProxy, AUTH_ASYNC, OK, kSecureServer, AUTH_SYNC, OK, 3, 1,
|
| - { TestRound(kConnect, kProxyChallenge, OK),
|
| - TestRound(kConnectProxyAuth, kProxyConnected, OK,
|
| - &kGet, &kServerChallenge),
|
| - TestRound(kGetAuth, kSuccess, OK)}},
|
| - { kProxy, AUTH_ASYNC, OK, kSecureServer, AUTH_SYNC, kAuthErr, 3, 1,
|
| - { TestRound(kConnect, kProxyChallenge, OK),
|
| - TestRound(kConnectProxyAuth, kProxyConnected, OK,
|
| - &kGet, &kServerChallenge),
|
| - TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| - { kProxy, AUTH_SYNC, OK, kSecureServer, AUTH_ASYNC, OK, 3, 1,
|
| - { TestRound(kConnect, kProxyChallenge, OK),
|
| - TestRound(kConnectProxyAuth, kProxyConnected, OK,
|
| - &kGet, &kServerChallenge),
|
| - TestRound(kGetAuth, kSuccess, OK)}},
|
| - { kProxy, AUTH_SYNC, OK, kSecureServer, AUTH_ASYNC, kAuthErr, 3, 1,
|
| - { TestRound(kConnect, kProxyChallenge, OK),
|
| - TestRound(kConnectProxyAuth, kProxyConnected, OK,
|
| - &kGet, &kServerChallenge),
|
| - TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| - { kProxy, AUTH_ASYNC, OK, kSecureServer, AUTH_ASYNC, OK, 3, 1,
|
| - { TestRound(kConnect, kProxyChallenge, OK),
|
| - TestRound(kConnectProxyAuth, kProxyConnected, OK,
|
| - &kGet, &kServerChallenge),
|
| - TestRound(kGetAuth, kSuccess, OK)}},
|
| - { kProxy, AUTH_ASYNC, OK, kSecureServer, AUTH_ASYNC, kAuthErr, 3, 1,
|
| - { TestRound(kConnect, kProxyChallenge, OK),
|
| - TestRound(kConnectProxyAuth, kProxyConnected, OK,
|
| - &kGet, &kServerChallenge),
|
| - TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| - };
|
| + // Non-authenticating HTTP server with a direct connection.
|
| + {NULL,
|
| + AUTH_NONE,
|
| + OK,
|
| + kServer,
|
| + AUTH_NONE,
|
| + OK,
|
| + 1,
|
| + kNoSSL,
|
| + {TestRound(kGet, kSuccess, OK)}},
|
| + // Authenticating HTTP server with a direct connection.
|
| + {NULL,
|
| + AUTH_NONE,
|
| + OK,
|
| + kServer,
|
| + AUTH_SYNC,
|
| + OK,
|
| + 2,
|
| + kNoSSL,
|
| + {TestRound(kGet, kServerChallenge, OK),
|
| + TestRound(kGetAuth, kSuccess, OK)}},
|
| + {NULL,
|
| + AUTH_NONE,
|
| + OK,
|
| + kServer,
|
| + AUTH_SYNC,
|
| + kAuthErr,
|
| + 2,
|
| + kNoSSL,
|
| + {TestRound(kGet, kServerChallenge, OK),
|
| + TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| + {NULL,
|
| + AUTH_NONE,
|
| + OK,
|
| + kServer,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + 2,
|
| + kNoSSL,
|
| + {TestRound(kGet, kServerChallenge, OK),
|
| + TestRound(kGetAuth, kSuccess, OK)}},
|
| + {NULL,
|
| + AUTH_NONE,
|
| + OK,
|
| + kServer,
|
| + AUTH_ASYNC,
|
| + kAuthErr,
|
| + 2,
|
| + kNoSSL,
|
| + {TestRound(kGet, kServerChallenge, OK),
|
| + TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| + // Non-authenticating HTTP server through a non-authenticating proxy.
|
| + {kProxy,
|
| + AUTH_NONE,
|
| + OK,
|
| + kServer,
|
| + AUTH_NONE,
|
| + OK,
|
| + 1,
|
| + kNoSSL,
|
| + {TestRound(kGetProxy, kSuccess, OK)}},
|
| + // Authenticating HTTP server through a non-authenticating proxy.
|
| + {kProxy,
|
| + AUTH_NONE,
|
| + OK,
|
| + kServer,
|
| + AUTH_SYNC,
|
| + OK,
|
| + 2,
|
| + kNoSSL,
|
| + {TestRound(kGetProxy, kServerChallenge, OK),
|
| + TestRound(kGetAuthThroughProxy, kSuccess, OK)}},
|
| + {kProxy,
|
| + AUTH_NONE,
|
| + OK,
|
| + kServer,
|
| + AUTH_SYNC,
|
| + kAuthErr,
|
| + 2,
|
| + kNoSSL,
|
| + {TestRound(kGetProxy, kServerChallenge, OK),
|
| + TestRound(kGetAuthThroughProxy, kFailure, kAuthErr)}},
|
| + {kProxy,
|
| + AUTH_NONE,
|
| + OK,
|
| + kServer,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + 2,
|
| + kNoSSL,
|
| + {TestRound(kGetProxy, kServerChallenge, OK),
|
| + TestRound(kGetAuthThroughProxy, kSuccess, OK)}},
|
| + {kProxy,
|
| + AUTH_NONE,
|
| + OK,
|
| + kServer,
|
| + AUTH_ASYNC,
|
| + kAuthErr,
|
| + 2,
|
| + kNoSSL,
|
| + {TestRound(kGetProxy, kServerChallenge, OK),
|
| + TestRound(kGetAuthThroughProxy, kFailure, kAuthErr)}},
|
| + // Non-authenticating HTTP server through an authenticating proxy.
|
| + {kProxy,
|
| + AUTH_SYNC,
|
| + OK,
|
| + kServer,
|
| + AUTH_NONE,
|
| + OK,
|
| + 2,
|
| + kNoSSL,
|
| + {TestRound(kGetProxy, kProxyChallenge, OK),
|
| + TestRound(kGetProxyAuth, kSuccess, OK)}},
|
| + {kProxy,
|
| + AUTH_SYNC,
|
| + kAuthErr,
|
| + kServer,
|
| + AUTH_NONE,
|
| + OK,
|
| + 2,
|
| + kNoSSL,
|
| + {TestRound(kGetProxy, kProxyChallenge, OK),
|
| + TestRound(kGetProxyAuth, kFailure, kAuthErr)}},
|
| + {kProxy,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + kServer,
|
| + AUTH_NONE,
|
| + OK,
|
| + 2,
|
| + kNoSSL,
|
| + {TestRound(kGetProxy, kProxyChallenge, OK),
|
| + TestRound(kGetProxyAuth, kSuccess, OK)}},
|
| + {kProxy,
|
| + AUTH_ASYNC,
|
| + kAuthErr,
|
| + kServer,
|
| + AUTH_NONE,
|
| + OK,
|
| + 2,
|
| + kNoSSL,
|
| + {TestRound(kGetProxy, kProxyChallenge, OK),
|
| + TestRound(kGetProxyAuth, kFailure, kAuthErr)}},
|
| + // Authenticating HTTP server through an authenticating proxy.
|
| + {kProxy,
|
| + AUTH_SYNC,
|
| + OK,
|
| + kServer,
|
| + AUTH_SYNC,
|
| + OK,
|
| + 3,
|
| + kNoSSL,
|
| + {TestRound(kGetProxy, kProxyChallenge, OK),
|
| + TestRound(kGetProxyAuth, kServerChallenge, OK),
|
| + TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}},
|
| + {kProxy,
|
| + AUTH_SYNC,
|
| + OK,
|
| + kServer,
|
| + AUTH_SYNC,
|
| + kAuthErr,
|
| + 3,
|
| + kNoSSL,
|
| + {TestRound(kGetProxy, kProxyChallenge, OK),
|
| + TestRound(kGetProxyAuth, kServerChallenge, OK),
|
| + TestRound(kGetAuthWithProxyAuth, kFailure, kAuthErr)}},
|
| + {kProxy,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + kServer,
|
| + AUTH_SYNC,
|
| + OK,
|
| + 3,
|
| + kNoSSL,
|
| + {TestRound(kGetProxy, kProxyChallenge, OK),
|
| + TestRound(kGetProxyAuth, kServerChallenge, OK),
|
| + TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}},
|
| + {kProxy,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + kServer,
|
| + AUTH_SYNC,
|
| + kAuthErr,
|
| + 3,
|
| + kNoSSL,
|
| + {TestRound(kGetProxy, kProxyChallenge, OK),
|
| + TestRound(kGetProxyAuth, kServerChallenge, OK),
|
| + TestRound(kGetAuthWithProxyAuth, kFailure, kAuthErr)}},
|
| + {kProxy,
|
| + AUTH_SYNC,
|
| + OK,
|
| + kServer,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + 3,
|
| + kNoSSL,
|
| + {TestRound(kGetProxy, kProxyChallenge, OK),
|
| + TestRound(kGetProxyAuth, kServerChallenge, OK),
|
| + TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}},
|
| + {kProxy,
|
| + AUTH_SYNC,
|
| + OK,
|
| + kServer,
|
| + AUTH_ASYNC,
|
| + kAuthErr,
|
| + 3,
|
| + kNoSSL,
|
| + {TestRound(kGetProxy, kProxyChallenge, OK),
|
| + TestRound(kGetProxyAuth, kServerChallenge, OK),
|
| + TestRound(kGetAuthWithProxyAuth, kFailure, kAuthErr)}},
|
| + {kProxy,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + kServer,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + 3,
|
| + kNoSSL,
|
| + {TestRound(kGetProxy, kProxyChallenge, OK),
|
| + TestRound(kGetProxyAuth, kServerChallenge, OK),
|
| + TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}},
|
| + {kProxy,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + kServer,
|
| + AUTH_ASYNC,
|
| + kAuthErr,
|
| + 3,
|
| + kNoSSL,
|
| + {TestRound(kGetProxy, kProxyChallenge, OK),
|
| + TestRound(kGetProxyAuth, kServerChallenge, OK),
|
| + TestRound(kGetAuthWithProxyAuth, kFailure, kAuthErr)}},
|
| + // Non-authenticating HTTPS server with a direct connection.
|
| + {NULL,
|
| + AUTH_NONE,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_NONE,
|
| + OK,
|
| + 1,
|
| + 0,
|
| + {TestRound(kGet, kSuccess, OK)}},
|
| + // Authenticating HTTPS server with a direct connection.
|
| + {NULL,
|
| + AUTH_NONE,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_SYNC,
|
| + OK,
|
| + 2,
|
| + 0,
|
| + {TestRound(kGet, kServerChallenge, OK),
|
| + TestRound(kGetAuth, kSuccess, OK)}},
|
| + {NULL,
|
| + AUTH_NONE,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_SYNC,
|
| + kAuthErr,
|
| + 2,
|
| + 0,
|
| + {TestRound(kGet, kServerChallenge, OK),
|
| + TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| + {NULL,
|
| + AUTH_NONE,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + 2,
|
| + 0,
|
| + {TestRound(kGet, kServerChallenge, OK),
|
| + TestRound(kGetAuth, kSuccess, OK)}},
|
| + {NULL,
|
| + AUTH_NONE,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_ASYNC,
|
| + kAuthErr,
|
| + 2,
|
| + 0,
|
| + {TestRound(kGet, kServerChallenge, OK),
|
| + TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| + // Non-authenticating HTTPS server with a non-authenticating proxy.
|
| + {kProxy,
|
| + AUTH_NONE,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_NONE,
|
| + OK,
|
| + 1,
|
| + 0,
|
| + {TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}},
|
| + // Authenticating HTTPS server through a non-authenticating proxy.
|
| + {kProxy,
|
| + AUTH_NONE,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_SYNC,
|
| + OK,
|
| + 2,
|
| + 0,
|
| + {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge),
|
| + TestRound(kGetAuth, kSuccess, OK)}},
|
| + {kProxy,
|
| + AUTH_NONE,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_SYNC,
|
| + kAuthErr,
|
| + 2,
|
| + 0,
|
| + {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge),
|
| + TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| + {kProxy,
|
| + AUTH_NONE,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + 2,
|
| + 0,
|
| + {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge),
|
| + TestRound(kGetAuth, kSuccess, OK)}},
|
| + {kProxy,
|
| + AUTH_NONE,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_ASYNC,
|
| + kAuthErr,
|
| + 2,
|
| + 0,
|
| + {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge),
|
| + TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| + // Non-Authenticating HTTPS server through an authenticating proxy.
|
| + {kProxy,
|
| + AUTH_SYNC,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_NONE,
|
| + OK,
|
| + 2,
|
| + 1,
|
| + {TestRound(kConnect, kProxyChallenge, OK),
|
| + TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}},
|
| + {kProxy,
|
| + AUTH_SYNC,
|
| + kAuthErr,
|
| + kSecureServer,
|
| + AUTH_NONE,
|
| + OK,
|
| + 2,
|
| + kNoSSL,
|
| + {TestRound(kConnect, kProxyChallenge, OK),
|
| + TestRound(kConnectProxyAuth, kFailure, kAuthErr)}},
|
| + {kProxy,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_NONE,
|
| + OK,
|
| + 2,
|
| + 1,
|
| + {TestRound(kConnect, kProxyChallenge, OK),
|
| + TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}},
|
| + {kProxy,
|
| + AUTH_ASYNC,
|
| + kAuthErr,
|
| + kSecureServer,
|
| + AUTH_NONE,
|
| + OK,
|
| + 2,
|
| + kNoSSL,
|
| + {TestRound(kConnect, kProxyChallenge, OK),
|
| + TestRound(kConnectProxyAuth, kFailure, kAuthErr)}},
|
| + // Authenticating HTTPS server through an authenticating proxy.
|
| + {kProxy,
|
| + AUTH_SYNC,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_SYNC,
|
| + OK,
|
| + 3,
|
| + 1,
|
| + {TestRound(kConnect, kProxyChallenge, OK),
|
| + TestRound(
|
| + kConnectProxyAuth, kProxyConnected, OK, &kGet, &kServerChallenge),
|
| + TestRound(kGetAuth, kSuccess, OK)}},
|
| + {kProxy,
|
| + AUTH_SYNC,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_SYNC,
|
| + kAuthErr,
|
| + 3,
|
| + 1,
|
| + {TestRound(kConnect, kProxyChallenge, OK),
|
| + TestRound(
|
| + kConnectProxyAuth, kProxyConnected, OK, &kGet, &kServerChallenge),
|
| + TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| + {kProxy,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_SYNC,
|
| + OK,
|
| + 3,
|
| + 1,
|
| + {TestRound(kConnect, kProxyChallenge, OK),
|
| + TestRound(
|
| + kConnectProxyAuth, kProxyConnected, OK, &kGet, &kServerChallenge),
|
| + TestRound(kGetAuth, kSuccess, OK)}},
|
| + {kProxy,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_SYNC,
|
| + kAuthErr,
|
| + 3,
|
| + 1,
|
| + {TestRound(kConnect, kProxyChallenge, OK),
|
| + TestRound(
|
| + kConnectProxyAuth, kProxyConnected, OK, &kGet, &kServerChallenge),
|
| + TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| + {kProxy,
|
| + AUTH_SYNC,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + 3,
|
| + 1,
|
| + {TestRound(kConnect, kProxyChallenge, OK),
|
| + TestRound(
|
| + kConnectProxyAuth, kProxyConnected, OK, &kGet, &kServerChallenge),
|
| + TestRound(kGetAuth, kSuccess, OK)}},
|
| + {kProxy,
|
| + AUTH_SYNC,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_ASYNC,
|
| + kAuthErr,
|
| + 3,
|
| + 1,
|
| + {TestRound(kConnect, kProxyChallenge, OK),
|
| + TestRound(
|
| + kConnectProxyAuth, kProxyConnected, OK, &kGet, &kServerChallenge),
|
| + TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| + {kProxy,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + 3,
|
| + 1,
|
| + {TestRound(kConnect, kProxyChallenge, OK),
|
| + TestRound(
|
| + kConnectProxyAuth, kProxyConnected, OK, &kGet, &kServerChallenge),
|
| + TestRound(kGetAuth, kSuccess, OK)}},
|
| + {kProxy,
|
| + AUTH_ASYNC,
|
| + OK,
|
| + kSecureServer,
|
| + AUTH_ASYNC,
|
| + kAuthErr,
|
| + 3,
|
| + 1,
|
| + {TestRound(kConnect, kProxyChallenge, OK),
|
| + TestRound(
|
| + kConnectProxyAuth, kProxyConnected, OK, &kGet, &kServerChallenge),
|
| + TestRound(kGetAuth, kFailure, kAuthErr)}},
|
| + };
|
|
|
| for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_configs); ++i) {
|
| HttpAuthHandlerMock::Factory* auth_factory(
|
| @@ -9551,8 +9885,8 @@ TEST_P(HttpNetworkTransactionTest, GenerateAuthToken) {
|
| GURL origin(test_config.proxy_url);
|
| HttpAuthChallengeTokenizer tokenizer(auth_challenge.begin(),
|
| auth_challenge.end());
|
| - auth_handler->InitFromChallenge(&tokenizer, HttpAuth::AUTH_PROXY,
|
| - origin, BoundNetLog());
|
| + auth_handler->InitFromChallenge(
|
| + &tokenizer, HttpAuth::AUTH_PROXY, origin, BoundNetLog());
|
| auth_handler->SetGenerateExpectation(
|
| test_config.proxy_auth_timing == AUTH_ASYNC,
|
| test_config.proxy_auth_rv);
|
| @@ -9565,8 +9899,8 @@ TEST_P(HttpNetworkTransactionTest, GenerateAuthToken) {
|
| GURL origin(test_config.server_url);
|
| HttpAuthChallengeTokenizer tokenizer(auth_challenge.begin(),
|
| auth_challenge.end());
|
| - auth_handler->InitFromChallenge(&tokenizer, HttpAuth::AUTH_SERVER,
|
| - origin, BoundNetLog());
|
| + auth_handler->InitFromChallenge(
|
| + &tokenizer, HttpAuth::AUTH_SERVER, origin, BoundNetLog());
|
| auth_handler->SetGenerateExpectation(
|
| test_config.server_auth_timing == AUTH_ASYNC,
|
| test_config.server_auth_rv);
|
| @@ -9622,8 +9956,8 @@ TEST_P(HttpNetworkTransactionTest, GenerateAuthToken) {
|
| if (round == 0) {
|
| rv = trans.Start(&request, callback.callback(), BoundNetLog());
|
| } else {
|
| - rv = trans.RestartWithAuth(
|
| - AuthCredentials(kFoo, kBar), callback.callback());
|
| + rv = trans.RestartWithAuth(AuthCredentials(kFoo, kBar),
|
| + callback.callback());
|
| }
|
| if (rv == ERR_IO_PENDING)
|
| rv = callback.WaitForResult();
|
| @@ -9662,8 +9996,8 @@ TEST_P(HttpNetworkTransactionTest, MultiRoundAuth) {
|
| GURL origin("http://www.example.com");
|
| HttpAuthChallengeTokenizer tokenizer(auth_challenge.begin(),
|
| auth_challenge.end());
|
| - auth_handler->InitFromChallenge(&tokenizer, HttpAuth::AUTH_SERVER,
|
| - origin, BoundNetLog());
|
| + auth_handler->InitFromChallenge(
|
| + &tokenizer, HttpAuth::AUTH_SERVER, origin, BoundNetLog());
|
| auth_factory->AddMockHandler(auth_handler, HttpAuth::AUTH_SERVER);
|
|
|
| int rv = OK;
|
| @@ -9680,13 +10014,13 @@ TEST_P(HttpNetworkTransactionTest, MultiRoundAuth) {
|
| // each round of multi-round authentication.
|
| HttpNetworkSessionPeer session_peer(session);
|
| ClientSocketPoolHistograms transport_pool_histograms("SmallTCP");
|
| - TransportClientSocketPool* transport_pool = new TransportClientSocketPool(
|
| - 50, // Max sockets for pool
|
| - 1, // Max sockets per group
|
| - &transport_pool_histograms,
|
| - session_deps_.host_resolver.get(),
|
| - session_deps_.socket_factory.get(),
|
| - session_deps_.net_log);
|
| + TransportClientSocketPool* transport_pool =
|
| + new TransportClientSocketPool(50, // Max sockets for pool
|
| + 1, // Max sockets per group
|
| + &transport_pool_histograms,
|
| + session_deps_.host_resolver.get(),
|
| + session_deps_.socket_factory.get(),
|
| + session_deps_.net_log);
|
| scoped_ptr<MockClientSocketPoolManager> mock_pool_manager(
|
| new MockClientSocketPoolManager);
|
| mock_pool_manager->SetTransportSocketPool(transport_pool);
|
| @@ -9719,32 +10053,30 @@ TEST_P(HttpNetworkTransactionTest, MultiRoundAuth) {
|
| "Content-Length: 3\r\n\r\n"
|
| "Yes");
|
|
|
| - MockWrite writes[] = {
|
| - // First round
|
| - kGet,
|
| - // Second round
|
| - kGetAuth,
|
| - // Third round
|
| - kGetAuth,
|
| - // Fourth round
|
| - kGetAuth,
|
| - // Competing request
|
| - kGet,
|
| - };
|
| - MockRead reads[] = {
|
| - // First round
|
| - kServerChallenge,
|
| - // Second round
|
| - kServerChallenge,
|
| - // Third round
|
| - kServerChallenge,
|
| - // Fourth round
|
| - kSuccess,
|
| - // Competing response
|
| - kSuccess,
|
| - };
|
| - StaticSocketDataProvider data_provider(reads, arraysize(reads),
|
| - writes, arraysize(writes));
|
| + MockWrite writes[] = {// First round
|
| + kGet,
|
| + // Second round
|
| + kGetAuth,
|
| + // Third round
|
| + kGetAuth,
|
| + // Fourth round
|
| + kGetAuth,
|
| + // Competing request
|
| + kGet,
|
| + };
|
| + MockRead reads[] = {// First round
|
| + kServerChallenge,
|
| + // Second round
|
| + kServerChallenge,
|
| + // Third round
|
| + kServerChallenge,
|
| + // Fourth round
|
| + kSuccess,
|
| + // Competing response
|
| + kSuccess,
|
| + };
|
| + StaticSocketDataProvider data_provider(
|
| + reads, arraysize(reads), writes, arraysize(writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data_provider);
|
|
|
| const char* const kSocketGroup = "www.example.com:80";
|
| @@ -9847,19 +10179,18 @@ TEST_P(HttpNetworkTransactionTest, NpnWithHttpOverSSL) {
|
| request.load_flags = 0;
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| - std::string alternate_protocol_http_header =
|
| - GetAlternateProtocolHttpHeader();
|
| + std::string alternate_protocol_http_header = GetAlternateProtocolHttpHeader();
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead(alternate_protocol_http_header.c_str()),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead(alternate_protocol_http_header.c_str()), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| @@ -9869,8 +10200,8 @@ TEST_P(HttpNetworkTransactionTest, NpnWithHttpOverSSL) {
|
|
|
| session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -9915,16 +10246,17 @@ TEST_P(HttpNetworkTransactionTest, SpdyPostNPNServerHangup) {
|
|
|
| scoped_ptr<SpdyFrame> req(
|
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true));
|
| - MockWrite spdy_writes[] = { CreateMockWrite(*req) };
|
| + MockWrite spdy_writes[] = {CreateMockWrite(*req)};
|
|
|
| MockRead spdy_reads[] = {
|
| - MockRead(SYNCHRONOUS, 0, 0) // Not async - return 0 immediately.
|
| + MockRead(SYNCHRONOUS, 0, 0) // Not async - return 0 immediately.
|
| };
|
|
|
| - DelayedSocketData spdy_data(
|
| - 0, // don't wait in this case, immediate hangup.
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + DelayedSocketData spdy_data(0, // don't wait in this case, immediate hangup.
|
| + spdy_reads,
|
| + arraysize(spdy_reads),
|
| + spdy_writes,
|
| + arraysize(spdy_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -9989,20 +10321,24 @@ TEST_P(HttpNetworkTransactionTest, SpdyAlternateProtocolThroughProxy) {
|
|
|
| // First round goes unauthenticated through the proxy.
|
| MockWrite data_writes_1[] = {
|
| - MockWrite("GET http://www.google.com/ HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n"
|
| - "\r\n"),
|
| + MockWrite(
|
| + "GET http://www.google.com/ HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n"
|
| + "\r\n"),
|
| };
|
| MockRead data_reads_1[] = {
|
| - MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
|
| - MockRead("HTTP/1.1 200 OK\r\n"
|
| - "Alternate-Protocol: 443:npn-spdy/2\r\n"
|
| - "Proxy-Connection: close\r\n"
|
| - "\r\n"),
|
| - };
|
| - StaticSocketDataProvider data_1(data_reads_1, arraysize(data_reads_1),
|
| - data_writes_1, arraysize(data_writes_1));
|
| + MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
|
| + MockRead(
|
| + "HTTP/1.1 200 OK\r\n"
|
| + "Alternate-Protocol: 443:npn-spdy/2\r\n"
|
| + "Proxy-Connection: close\r\n"
|
| + "\r\n"),
|
| + };
|
| + StaticSocketDataProvider data_1(data_reads_1,
|
| + arraysize(data_reads_1),
|
| + data_writes_1,
|
| + arraysize(data_writes_1));
|
|
|
| // Second round tries to tunnel to www.google.com due to the
|
| // Alternate-Protocol announcement in the first round. It fails due
|
| @@ -10027,45 +10363,52 @@ TEST_P(HttpNetworkTransactionTest, SpdyAlternateProtocolThroughProxy) {
|
| scoped_ptr<SpdyFrame> data(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
|
|
| MockWrite data_writes_2[] = {
|
| - // First connection attempt without Proxy-Authorization.
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n"
|
| - "\r\n"),
|
| -
|
| - // Second connection attempt with Proxy-Authorization.
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n"
|
| - "Proxy-Authorization: auth_token\r\n"
|
| - "\r\n"),
|
| -
|
| - // SPDY request
|
| - CreateMockWrite(*req),
|
| - };
|
| - const char kRejectConnectResponse[] = ("HTTP/1.1 407 Unauthorized\r\n"
|
| - "Proxy-Authenticate: Mock\r\n"
|
| - "Proxy-Connection: close\r\n"
|
| - "\r\n");
|
| + // First connection attempt without Proxy-Authorization.
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n"
|
| + "\r\n"),
|
| +
|
| + // Second connection attempt with Proxy-Authorization.
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n"
|
| + "Proxy-Authorization: auth_token\r\n"
|
| + "\r\n"),
|
| +
|
| + // SPDY request
|
| + CreateMockWrite(*req),
|
| + };
|
| + const char kRejectConnectResponse[] =
|
| + ("HTTP/1.1 407 Unauthorized\r\n"
|
| + "Proxy-Authenticate: Mock\r\n"
|
| + "Proxy-Connection: close\r\n"
|
| + "\r\n");
|
| const char kAcceptConnectResponse[] = "HTTP/1.1 200 Connected\r\n\r\n";
|
| MockRead data_reads_2[] = {
|
| - // First connection attempt fails
|
| - MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ, 1),
|
| - MockRead(ASYNC, kRejectConnectResponse,
|
| - arraysize(kRejectConnectResponse) - 1, 1),
|
| -
|
| - // Second connection attempt passes
|
| - MockRead(ASYNC, kAcceptConnectResponse,
|
| - arraysize(kAcceptConnectResponse) -1, 4),
|
| -
|
| - // SPDY response
|
| - CreateMockRead(*resp.get(), 6),
|
| - CreateMockRead(*data.get(), 6),
|
| - MockRead(ASYNC, 0, 0, 6),
|
| - };
|
| - OrderedSocketData data_2(
|
| - data_reads_2, arraysize(data_reads_2),
|
| - data_writes_2, arraysize(data_writes_2));
|
| + // First connection attempt fails
|
| + MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ, 1),
|
| + MockRead(ASYNC,
|
| + kRejectConnectResponse,
|
| + arraysize(kRejectConnectResponse) - 1,
|
| + 1),
|
| +
|
| + // Second connection attempt passes
|
| + MockRead(ASYNC,
|
| + kAcceptConnectResponse,
|
| + arraysize(kAcceptConnectResponse) - 1,
|
| + 4),
|
| +
|
| + // SPDY response
|
| + CreateMockRead(*resp.get(), 6), CreateMockRead(*data.get(), 6),
|
| + MockRead(ASYNC, 0, 0, 6),
|
| + };
|
| + OrderedSocketData data_2(data_reads_2,
|
| + arraysize(data_reads_2),
|
| + data_writes_2,
|
| + arraysize(data_writes_2));
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| ssl.SetNextProto(GetParam());
|
| @@ -10104,8 +10447,8 @@ TEST_P(HttpNetworkTransactionTest, SpdyAlternateProtocolThroughProxy) {
|
|
|
| // Restart with auth. Tunnel should work and response received.
|
| TestCompletionCallback callback_3;
|
| - rv = trans_2->RestartWithAuth(
|
| - AuthCredentials(kFoo, kBar), callback_3.callback());
|
| + rv = trans_2->RestartWithAuth(AuthCredentials(kFoo, kBar),
|
| + callback_3.callback());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
| EXPECT_EQ(OK, callback_3.WaitForResult());
|
|
|
| @@ -10130,9 +10473,8 @@ TEST_P(HttpNetworkTransactionTest, SimpleCancel) {
|
| // Verify that we don't crash.
|
| MockConnect mock_connect(SYNCHRONOUS, OK);
|
| MockRead data_reads[] = {
|
| - MockRead(SYNCHRONOUS, "HTTP/1.0 200 OK\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, "hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead(SYNCHRONOUS, "HTTP/1.0 200 OK\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, "hello world"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| HttpRequestInfo request;
|
| @@ -10172,20 +10514,22 @@ TEST_P(HttpNetworkTransactionTest, ProxyGet) {
|
| request.url = GURL("http://www.google.com/");
|
|
|
| MockWrite data_writes1[] = {
|
| - MockWrite("GET http://www.google.com/ HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET http://www.google.com/ HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"), MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
|
|
| TestCompletionCallback callback1;
|
| @@ -10228,26 +10572,28 @@ TEST_P(HttpNetworkTransactionTest, ProxyTunnelGet) {
|
|
|
| // Since we have proxy, should try to establish tunnel.
|
| MockWrite data_writes1[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| -
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead("HTTP/1.1 200 Connection Established\r\n\r\n"),
|
| -
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 100\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 200 Connection Established\r\n\r\n"),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 100\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
|
| @@ -10265,10 +10611,13 @@ TEST_P(HttpNetworkTransactionTest, ProxyTunnelGet) {
|
| net::CapturingNetLog::CapturedEntryList entries;
|
| log.GetEntries(&entries);
|
| size_t pos = ExpectLogContainsSomewhere(
|
| - entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS,
|
| + entries,
|
| + 0,
|
| + NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS,
|
| NetLog::PHASE_NONE);
|
| ExpectLogContainsSomewhere(
|
| - entries, pos,
|
| + entries,
|
| + pos,
|
| NetLog::TYPE_HTTP_TRANSACTION_READ_TUNNEL_RESPONSE_HEADERS,
|
| NetLog::PHASE_NONE);
|
|
|
| @@ -10301,23 +10650,26 @@ TEST_P(HttpNetworkTransactionTest, ProxyTunnelGetHangup) {
|
|
|
| // Since we have proxy, should try to establish tunnel.
|
| MockWrite data_writes1[] = {
|
| - MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Proxy-Connection: keep-alive\r\n\r\n"),
|
| -
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "CONNECT www.google.com:443 HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Proxy-Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead data_reads1[] = {
|
| - MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
|
| - MockRead("HTTP/1.1 200 Connection Established\r\n\r\n"),
|
| - MockRead(ASYNC, 0, 0), // EOF
|
| + MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
|
| + MockRead("HTTP/1.1 200 Connection Established\r\n\r\n"),
|
| + MockRead(ASYNC, 0, 0), // EOF
|
| };
|
|
|
| - StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1),
|
| - data_writes1, arraysize(data_writes1));
|
| + StaticSocketDataProvider data1(data_reads1,
|
| + arraysize(data_reads1),
|
| + data_writes1,
|
| + arraysize(data_writes1));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data1);
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
|
| @@ -10335,10 +10687,13 @@ TEST_P(HttpNetworkTransactionTest, ProxyTunnelGetHangup) {
|
| net::CapturingNetLog::CapturedEntryList entries;
|
| log.GetEntries(&entries);
|
| size_t pos = ExpectLogContainsSomewhere(
|
| - entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS,
|
| + entries,
|
| + 0,
|
| + NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS,
|
| NetLog::PHASE_NONE);
|
| ExpectLogContainsSomewhere(
|
| - entries, pos,
|
| + entries,
|
| + pos,
|
| NetLog::TYPE_HTTP_TRANSACTION_READ_TUNNEL_RESPONSE_HEADERS,
|
| NetLog::PHASE_NONE);
|
| }
|
| @@ -10347,20 +10702,20 @@ TEST_P(HttpNetworkTransactionTest, ProxyTunnelGetHangup) {
|
| TEST_P(HttpNetworkTransactionTest, PreconnectWithExistingSpdySession) {
|
| scoped_ptr<SpdyFrame> req(
|
| spdy_util_.ConstructSpdyGet("https://www.google.com", false, 1, LOWEST));
|
| - MockWrite spdy_writes[] = { CreateMockWrite(*req) };
|
| + MockWrite spdy_writes[] = {CreateMockWrite(*req)};
|
|
|
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| scoped_ptr<SpdyFrame> data(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*resp),
|
| - CreateMockRead(*data),
|
| - MockRead(ASYNC, 0, 0),
|
| + CreateMockRead(*resp), CreateMockRead(*data), MockRead(ASYNC, 0, 0),
|
| };
|
|
|
| DelayedSocketData spdy_data(
|
| 1, // wait for one write to finish before reading.
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + spdy_reads,
|
| + arraysize(spdy_reads),
|
| + spdy_writes,
|
| + arraysize(spdy_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| @@ -10371,8 +10726,8 @@ TEST_P(HttpNetworkTransactionTest, PreconnectWithExistingSpdySession) {
|
|
|
| // Set up an initial SpdySession in the pool to reuse.
|
| HostPortPair host_port_pair("www.google.com", 443);
|
| - SpdySessionKey key(host_port_pair, ProxyServer::Direct(),
|
| - PRIVACY_MODE_DISABLED);
|
| + SpdySessionKey key(
|
| + host_port_pair, ProxyServer::Direct(), PRIVACY_MODE_DISABLED);
|
| base::WeakPtr<SpdySession> spdy_session =
|
| CreateInsecureSpdySession(session, key, BoundNetLog());
|
|
|
| @@ -10395,8 +10750,8 @@ TEST_P(HttpNetworkTransactionTest, PreconnectWithExistingSpdySession) {
|
|
|
| // Given a net error, cause that error to be returned from the first Write()
|
| // call and verify that the HttpTransaction fails with that error.
|
| -void HttpNetworkTransactionTest::CheckErrorIsPassedBack(
|
| - int error, IoMode mode) {
|
| +void HttpNetworkTransactionTest::CheckErrorIsPassedBack(int error,
|
| + IoMode mode) {
|
| net::HttpRequestInfo request_info;
|
| request_info.url = GURL("https://www.example.com/");
|
| request_info.method = "GET";
|
| @@ -10404,10 +10759,10 @@ void HttpNetworkTransactionTest::CheckErrorIsPassedBack(
|
|
|
| SSLSocketDataProvider ssl_data(mode, OK);
|
| net::MockWrite data_writes[] = {
|
| - net::MockWrite(mode, error),
|
| + net::MockWrite(mode, error),
|
| };
|
| - net::StaticSocketDataProvider data(NULL, 0,
|
| - data_writes, arraysize(data_writes));
|
| + net::StaticSocketDataProvider data(
|
| + NULL, 0, data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data);
|
|
|
| @@ -10425,9 +10780,8 @@ void HttpNetworkTransactionTest::CheckErrorIsPassedBack(
|
| TEST_P(HttpNetworkTransactionTest, SSLWriteCertError) {
|
| // Just check a grab bag of cert errors.
|
| static const int kErrors[] = {
|
| - ERR_CERT_COMMON_NAME_INVALID,
|
| - ERR_CERT_AUTHORITY_INVALID,
|
| - ERR_CERT_DATE_INVALID,
|
| + ERR_CERT_COMMON_NAME_INVALID, ERR_CERT_AUTHORITY_INVALID,
|
| + ERR_CERT_DATE_INVALID,
|
| };
|
| for (size_t i = 0; i < arraysize(kErrors); i++) {
|
| CheckErrorIsPassedBack(kErrors[i], ASYNC);
|
| @@ -10441,8 +10795,7 @@ TEST_P(HttpNetworkTransactionTest, SSLWriteCertError) {
|
| // 2) TLS False Start is disabled.
|
| // 3) The initial TLS handshake requests a client certificate.
|
| // 4) The client supplies an invalid/unacceptable certificate.
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - ClientAuthCertCache_Direct_NoFalseStart) {
|
| +TEST_P(HttpNetworkTransactionTest, ClientAuthCertCache_Direct_NoFalseStart) {
|
| net::HttpRequestInfo request_info;
|
| request_info.url = GURL("https://www.example.com/");
|
| request_info.method = "GET";
|
| @@ -10551,8 +10904,7 @@ TEST_P(HttpNetworkTransactionTest,
|
| // 2) TLS False Start is enabled.
|
| // 3) The initial TLS handshake requests a client certificate.
|
| // 4) The client supplies an invalid/unacceptable certificate.
|
| -TEST_P(HttpNetworkTransactionTest,
|
| - ClientAuthCertCache_Direct_FalseStart) {
|
| +TEST_P(HttpNetworkTransactionTest, ClientAuthCertCache_Direct_FalseStart) {
|
| net::HttpRequestInfo request_info;
|
| request_info.url = GURL("https://www.example.com/");
|
| request_info.method = "GET";
|
| @@ -10593,7 +10945,7 @@ TEST_P(HttpNetworkTransactionTest,
|
| ssl_data2.cert_request_info = cert_request.get();
|
| session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data2);
|
| net::MockRead data2_reads[] = {
|
| - net::MockRead(ASYNC /* async */, net::ERR_SSL_PROTOCOL_ERROR),
|
| + net::MockRead(ASYNC /* async */, net::ERR_SSL_PROTOCOL_ERROR),
|
| };
|
| net::StaticSocketDataProvider data2(
|
| data2_reads, arraysize(data2_reads), NULL, 0);
|
| @@ -10699,7 +11051,7 @@ TEST_P(HttpNetworkTransactionTest, ClientAuthCertCache_Proxy_Fail) {
|
| net::StaticSocketDataProvider data2(NULL, 0, NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data2);
|
|
|
| - // TODO(wtc): find out why this unit test doesn't need [ssl_]data3.
|
| +// TODO(wtc): find out why this unit test doesn't need [ssl_]data3.
|
| #if 0
|
| SSLSocketDataProvider ssl_data3(ASYNC, net::ERR_SSL_PROTOCOL_ERROR);
|
| ssl_data3.cert_request_info = cert_request.get();
|
| @@ -10725,8 +11077,8 @@ TEST_P(HttpNetworkTransactionTest, ClientAuthCertCache_Proxy_Fail) {
|
|
|
| // Begin the SSL handshake with the proxy.
|
| TestCompletionCallback callback;
|
| - int rv = trans->Start(
|
| - &requests[i], callback.callback(), net::BoundNetLog());
|
| + int rv =
|
| + trans->Start(&requests[i], callback.callback(), net::BoundNetLog());
|
| ASSERT_EQ(net::ERR_IO_PENDING, rv);
|
|
|
| // Complete the SSL handshake, which should abort due to requiring a
|
| @@ -10802,8 +11154,7 @@ WRAPPED_TEST_P(HttpNetworkTransactionTest, MAYBE_UseIPConnectionPooling) {
|
| scoped_ptr<SpdyFrame> host2_req(
|
| spdy_util_.ConstructSpdyGet("https://www.gmail.com", false, 3, LOWEST));
|
| MockWrite spdy_writes[] = {
|
| - CreateMockWrite(*host1_req, 1),
|
| - CreateMockWrite(*host2_req, 4),
|
| + CreateMockWrite(*host1_req, 1), CreateMockWrite(*host2_req, 4),
|
| };
|
| scoped_ptr<SpdyFrame> host1_resp(
|
| spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| @@ -10814,21 +11165,20 @@ WRAPPED_TEST_P(HttpNetworkTransactionTest, MAYBE_UseIPConnectionPooling) {
|
| scoped_ptr<SpdyFrame> host2_resp_body(
|
| spdy_util_.ConstructSpdyBodyFrame(3, true));
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*host1_resp, 2),
|
| - CreateMockRead(*host1_resp_body, 3),
|
| - CreateMockRead(*host2_resp, 5),
|
| - CreateMockRead(*host2_resp_body, 6),
|
| - MockRead(ASYNC, 0, 7),
|
| + CreateMockRead(*host1_resp, 2), CreateMockRead(*host1_resp_body, 3),
|
| + CreateMockRead(*host2_resp, 5), CreateMockRead(*host2_resp_body, 6),
|
| + MockRead(ASYNC, 0, 7),
|
| };
|
|
|
| IPAddressNumber ip;
|
| ASSERT_TRUE(ParseIPLiteralToNumber("127.0.0.1", &ip));
|
| IPEndPoint peer_addr = IPEndPoint(ip, 443);
|
| MockConnect connect(ASYNC, OK, peer_addr);
|
| - OrderedSocketData spdy_data(
|
| - connect,
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + OrderedSocketData spdy_data(connect,
|
| + spdy_reads,
|
| + arraysize(spdy_reads),
|
| + spdy_writes,
|
| + arraysize(spdy_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -10905,8 +11255,7 @@ TEST_P(HttpNetworkTransactionTest, UseIPConnectionPoolingAfterResolution) {
|
| scoped_ptr<SpdyFrame> host2_req(
|
| spdy_util_.ConstructSpdyGet("https://www.gmail.com", false, 3, LOWEST));
|
| MockWrite spdy_writes[] = {
|
| - CreateMockWrite(*host1_req, 1),
|
| - CreateMockWrite(*host2_req, 4),
|
| + CreateMockWrite(*host1_req, 1), CreateMockWrite(*host2_req, 4),
|
| };
|
| scoped_ptr<SpdyFrame> host1_resp(
|
| spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| @@ -10917,21 +11266,20 @@ TEST_P(HttpNetworkTransactionTest, UseIPConnectionPoolingAfterResolution) {
|
| scoped_ptr<SpdyFrame> host2_resp_body(
|
| spdy_util_.ConstructSpdyBodyFrame(3, true));
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*host1_resp, 2),
|
| - CreateMockRead(*host1_resp_body, 3),
|
| - CreateMockRead(*host2_resp, 5),
|
| - CreateMockRead(*host2_resp_body, 6),
|
| - MockRead(ASYNC, 0, 7),
|
| + CreateMockRead(*host1_resp, 2), CreateMockRead(*host1_resp_body, 3),
|
| + CreateMockRead(*host2_resp, 5), CreateMockRead(*host2_resp_body, 6),
|
| + MockRead(ASYNC, 0, 7),
|
| };
|
|
|
| IPAddressNumber ip;
|
| ASSERT_TRUE(ParseIPLiteralToNumber("127.0.0.1", &ip));
|
| IPEndPoint peer_addr = IPEndPoint(ip, 443);
|
| MockConnect connect(ASYNC, OK, peer_addr);
|
| - OrderedSocketData spdy_data(
|
| - connect,
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + OrderedSocketData spdy_data(connect,
|
| + spdy_reads,
|
| + arraysize(spdy_reads),
|
| + spdy_writes,
|
| + arraysize(spdy_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -11006,9 +11354,7 @@ class OneTimeCachingHostResolver : public net::HostResolver {
|
| host_resolver_.CancelRequest(req);
|
| }
|
|
|
| - MockCachingHostResolver* GetMockHostResolver() {
|
| - return &host_resolver_;
|
| - }
|
| + MockCachingHostResolver* GetMockHostResolver() { return &host_resolver_; }
|
|
|
| private:
|
| MockCachingHostResolver host_resolver_;
|
| @@ -11018,10 +11364,10 @@ class OneTimeCachingHostResolver : public net::HostResolver {
|
| // Times out on Win7 dbg(2) bot. http://crbug.com/124776
|
| #if defined(OS_WIN)
|
| #define MAYBE_UseIPConnectionPoolingWithHostCacheExpiration \
|
| - DISABLED_UseIPConnectionPoolingWithHostCacheExpiration
|
| + DISABLED_UseIPConnectionPoolingWithHostCacheExpiration
|
| #else
|
| #define MAYBE_UseIPConnectionPoolingWithHostCacheExpiration \
|
| - UseIPConnectionPoolingWithHostCacheExpiration
|
| + UseIPConnectionPoolingWithHostCacheExpiration
|
| #endif
|
| WRAPPED_TEST_P(HttpNetworkTransactionTest,
|
| MAYBE_UseIPConnectionPoolingWithHostCacheExpiration) {
|
| @@ -11051,8 +11397,7 @@ WRAPPED_TEST_P(HttpNetworkTransactionTest,
|
| scoped_ptr<SpdyFrame> host2_req(
|
| spdy_util_.ConstructSpdyGet("https://www.gmail.com", false, 3, LOWEST));
|
| MockWrite spdy_writes[] = {
|
| - CreateMockWrite(*host1_req, 1),
|
| - CreateMockWrite(*host2_req, 4),
|
| + CreateMockWrite(*host1_req, 1), CreateMockWrite(*host2_req, 4),
|
| };
|
| scoped_ptr<SpdyFrame> host1_resp(
|
| spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| @@ -11063,21 +11408,20 @@ WRAPPED_TEST_P(HttpNetworkTransactionTest,
|
| scoped_ptr<SpdyFrame> host2_resp_body(
|
| spdy_util_.ConstructSpdyBodyFrame(3, true));
|
| MockRead spdy_reads[] = {
|
| - CreateMockRead(*host1_resp, 2),
|
| - CreateMockRead(*host1_resp_body, 3),
|
| - CreateMockRead(*host2_resp, 5),
|
| - CreateMockRead(*host2_resp_body, 6),
|
| - MockRead(ASYNC, 0, 7),
|
| + CreateMockRead(*host1_resp, 2), CreateMockRead(*host1_resp_body, 3),
|
| + CreateMockRead(*host2_resp, 5), CreateMockRead(*host2_resp_body, 6),
|
| + MockRead(ASYNC, 0, 7),
|
| };
|
|
|
| IPAddressNumber ip;
|
| ASSERT_TRUE(ParseIPLiteralToNumber("127.0.0.1", &ip));
|
| IPEndPoint peer_addr = IPEndPoint(ip, 443);
|
| MockConnect connect(ASYNC, OK, peer_addr);
|
| - OrderedSocketData spdy_data(
|
| - connect,
|
| - spdy_reads, arraysize(spdy_reads),
|
| - spdy_writes, arraysize(spdy_writes));
|
| + OrderedSocketData spdy_data(connect,
|
| + spdy_reads,
|
| + arraysize(spdy_reads),
|
| + spdy_writes,
|
| + arraysize(spdy_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -11137,16 +11481,15 @@ WRAPPED_TEST_P(HttpNetworkTransactionTest,
|
|
|
| TEST_P(HttpNetworkTransactionTest, ReadPipelineEvictionFallback) {
|
| MockRead data_reads1[] = {
|
| - MockRead(SYNCHRONOUS, ERR_PIPELINE_EVICTION),
|
| + MockRead(SYNCHRONOUS, ERR_PIPELINE_EVICTION),
|
| };
|
| MockRead data_reads2[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
| StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), NULL, 0);
|
| StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), NULL, 0);
|
| - StaticSocketDataProvider* data[] = { &data1, &data2 };
|
| + StaticSocketDataProvider* data[] = {&data1, &data2};
|
|
|
| SimpleGetHelperResult out = SimpleGetHelperForData(data, arraysize(data));
|
|
|
| @@ -11157,23 +11500,25 @@ TEST_P(HttpNetworkTransactionTest, ReadPipelineEvictionFallback) {
|
|
|
| TEST_P(HttpNetworkTransactionTest, SendPipelineEvictionFallback) {
|
| MockWrite data_writes1[] = {
|
| - MockWrite(SYNCHRONOUS, ERR_PIPELINE_EVICTION),
|
| + MockWrite(SYNCHRONOUS, ERR_PIPELINE_EVICTION),
|
| };
|
| MockWrite data_writes2[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead data_reads2[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
| - StaticSocketDataProvider data1(NULL, 0,
|
| - data_writes1, arraysize(data_writes1));
|
| - StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
|
| - data_writes2, arraysize(data_writes2));
|
| - StaticSocketDataProvider* data[] = { &data1, &data2 };
|
| + StaticSocketDataProvider data1(
|
| + NULL, 0, data_writes1, arraysize(data_writes1));
|
| + StaticSocketDataProvider data2(data_reads2,
|
| + arraysize(data_reads2),
|
| + data_writes2,
|
| + arraysize(data_writes2));
|
| + StaticSocketDataProvider* data[] = {&data1, &data2};
|
|
|
| SimpleGetHelperResult out = SimpleGetHelperForData(data, arraysize(data));
|
|
|
| @@ -11191,40 +11536,35 @@ TEST_P(HttpNetworkTransactionTest, DoNotUseSpdySessionForHttp) {
|
| spdy_util_.ConstructSpdyGet(https_url.c_str(), false, 1, LOWEST));
|
|
|
| MockWrite writes1[] = {
|
| - CreateMockWrite(*req1, 0),
|
| + CreateMockWrite(*req1, 0),
|
| };
|
|
|
| scoped_ptr<SpdyFrame> resp1(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| scoped_ptr<SpdyFrame> body1(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| - MockRead reads1[] = {
|
| - CreateMockRead(*resp1, 1),
|
| - CreateMockRead(*body1, 2),
|
| - MockRead(ASYNC, ERR_IO_PENDING, 3)
|
| - };
|
| + MockRead reads1[] = {CreateMockRead(*resp1, 1), CreateMockRead(*body1, 2),
|
| + MockRead(ASYNC, ERR_IO_PENDING, 3)};
|
|
|
| DelayedSocketData data1(
|
| - 1, reads1, arraysize(reads1),
|
| - writes1, arraysize(writes1));
|
| + 1, reads1, arraysize(reads1), writes1, arraysize(writes1));
|
| MockConnect connect_data1(ASYNC, OK);
|
| data1.set_connect_data(connect_data1);
|
|
|
| // HTTP GET for the HTTP URL
|
| MockWrite writes2[] = {
|
| - MockWrite(ASYNC, 4,
|
| - "GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com:443\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(ASYNC,
|
| + 4,
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com:443\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead reads2[] = {
|
| - MockRead(ASYNC, 5, "HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"),
|
| - MockRead(ASYNC, 6, "hello"),
|
| - MockRead(ASYNC, 7, OK),
|
| + MockRead(ASYNC, 5, "HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"),
|
| + MockRead(ASYNC, 6, "hello"), MockRead(ASYNC, 7, OK),
|
| };
|
|
|
| DelayedSocketData data2(
|
| - 1, reads2, arraysize(reads2),
|
| - writes2, arraysize(writes2));
|
| + 1, reads2, arraysize(reads2), writes2, arraysize(writes2));
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| ssl.SetNextProto(GetParam());
|
| @@ -11268,8 +11608,8 @@ TEST_P(HttpNetworkTransactionTest, DoNotUseSpdySessionForHttpOverTunnel) {
|
| const std::string http_url = "http://www.google.com:443/";
|
|
|
| // SPDY GET for HTTPS URL (through CONNECT tunnel)
|
| - scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect(NULL, 0, 1,
|
| - LOWEST));
|
| + scoped_ptr<SpdyFrame> connect(
|
| + spdy_util_.ConstructSpdyConnect(NULL, 0, 1, LOWEST));
|
| scoped_ptr<SpdyFrame> req1(
|
| spdy_util_.ConstructSpdyGet(https_url.c_str(), false, 1, LOWEST));
|
| scoped_ptr<SpdyFrame> wrapped_req1(
|
| @@ -11289,9 +11629,8 @@ TEST_P(HttpNetworkTransactionTest, DoNotUseSpdySessionForHttpOverTunnel) {
|
| spdy_util_.CreateFramer(false)->SerializeFrame(req2_ir));
|
|
|
| MockWrite writes1[] = {
|
| - CreateMockWrite(*connect, 0),
|
| - CreateMockWrite(*wrapped_req1, 2),
|
| - CreateMockWrite(*req2, 5),
|
| + CreateMockWrite(*connect, 0), CreateMockWrite(*wrapped_req1, 2),
|
| + CreateMockWrite(*req2, 5),
|
| };
|
|
|
| scoped_ptr<SpdyFrame> conn_resp(
|
| @@ -11305,16 +11644,12 @@ TEST_P(HttpNetworkTransactionTest, DoNotUseSpdySessionForHttpOverTunnel) {
|
| scoped_ptr<SpdyFrame> resp2(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3));
|
| scoped_ptr<SpdyFrame> body2(spdy_util_.ConstructSpdyBodyFrame(3, true));
|
| MockRead reads1[] = {
|
| - CreateMockRead(*conn_resp, 1),
|
| - CreateMockRead(*wrapped_resp1, 3),
|
| - CreateMockRead(*wrapped_body1, 4),
|
| - CreateMockRead(*resp2, 6),
|
| - CreateMockRead(*body2, 7),
|
| - MockRead(ASYNC, ERR_IO_PENDING, 8)
|
| - };
|
| + CreateMockRead(*conn_resp, 1), CreateMockRead(*wrapped_resp1, 3),
|
| + CreateMockRead(*wrapped_body1, 4), CreateMockRead(*resp2, 6),
|
| + CreateMockRead(*body2, 7), MockRead(ASYNC, ERR_IO_PENDING, 8)};
|
|
|
| - DeterministicSocketData data1(reads1, arraysize(reads1),
|
| - writes1, arraysize(writes1));
|
| + DeterministicSocketData data1(
|
| + reads1, arraysize(reads1), writes1, arraysize(writes1));
|
| MockConnect connect_data1(ASYNC, OK);
|
| data1.set_connect_data(connect_data1);
|
|
|
| @@ -11390,24 +11725,18 @@ TEST_P(HttpNetworkTransactionTest, UseSpdySessionForHttpWhenForced) {
|
| spdy_util_.ConstructSpdyGet(http_url.c_str(), false, 3, MEDIUM));
|
|
|
| MockWrite writes[] = {
|
| - CreateMockWrite(*req1, 1),
|
| - CreateMockWrite(*req2, 4),
|
| + CreateMockWrite(*req1, 1), CreateMockWrite(*req2, 4),
|
| };
|
|
|
| scoped_ptr<SpdyFrame> resp1(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| scoped_ptr<SpdyFrame> body1(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| scoped_ptr<SpdyFrame> resp2(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3));
|
| scoped_ptr<SpdyFrame> body2(spdy_util_.ConstructSpdyBodyFrame(3, true));
|
| - MockRead reads[] = {
|
| - CreateMockRead(*resp1, 2),
|
| - CreateMockRead(*body1, 3),
|
| - CreateMockRead(*resp2, 5),
|
| - CreateMockRead(*body2, 6),
|
| - MockRead(ASYNC, ERR_IO_PENDING, 7)
|
| - };
|
| + MockRead reads[] = {CreateMockRead(*resp1, 2), CreateMockRead(*body1, 3),
|
| + CreateMockRead(*resp2, 5), CreateMockRead(*body2, 6),
|
| + MockRead(ASYNC, ERR_IO_PENDING, 7)};
|
|
|
| - OrderedSocketData data(reads, arraysize(reads),
|
| - writes, arraysize(writes));
|
| + OrderedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| ssl.SetNextProto(GetParam());
|
| @@ -11461,20 +11790,18 @@ TEST_P(HttpNetworkTransactionTest, DoNotUseSpdySessionIfCertDoesNotMatch) {
|
| headers.Pass(), false, 1, LOWEST, SYN_STREAM, CONTROL_FLAG_FIN, 0));
|
|
|
| MockWrite writes1[] = {
|
| - CreateMockWrite(*req1, 0),
|
| + CreateMockWrite(*req1, 0),
|
| };
|
|
|
| scoped_ptr<SpdyFrame> resp1(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| scoped_ptr<SpdyFrame> body1(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| MockRead reads1[] = {
|
| - CreateMockRead(*resp1, 1),
|
| - CreateMockRead(*body1, 2),
|
| - MockRead(ASYNC, OK, 3) // EOF
|
| + CreateMockRead(*resp1, 1), CreateMockRead(*body1, 2),
|
| + MockRead(ASYNC, OK, 3) // EOF
|
| };
|
|
|
| - scoped_ptr<DeterministicSocketData> data1(
|
| - new DeterministicSocketData(reads1, arraysize(reads1),
|
| - writes1, arraysize(writes1)));
|
| + scoped_ptr<DeterministicSocketData> data1(new DeterministicSocketData(
|
| + reads1, arraysize(reads1), writes1, arraysize(writes1)));
|
| IPAddressNumber ip;
|
| ASSERT_TRUE(ParseIPLiteralToNumber(ip_addr, &ip));
|
| IPEndPoint peer_addr = IPEndPoint(ip, 443);
|
| @@ -11486,20 +11813,18 @@ TEST_P(HttpNetworkTransactionTest, DoNotUseSpdySessionIfCertDoesNotMatch) {
|
| spdy_util_.ConstructSpdyGet(url2.c_str(), false, 1, MEDIUM));
|
|
|
| MockWrite writes2[] = {
|
| - CreateMockWrite(*req2, 0),
|
| + CreateMockWrite(*req2, 0),
|
| };
|
|
|
| scoped_ptr<SpdyFrame> resp2(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| scoped_ptr<SpdyFrame> body2(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| MockRead reads2[] = {
|
| - CreateMockRead(*resp2, 1),
|
| - CreateMockRead(*body2, 2),
|
| - MockRead(ASYNC, OK, 3) // EOF
|
| + CreateMockRead(*resp2, 1), CreateMockRead(*body2, 2),
|
| + MockRead(ASYNC, OK, 3) // EOF
|
| };
|
|
|
| - scoped_ptr<DeterministicSocketData> data2(
|
| - new DeterministicSocketData(reads2, arraysize(reads2),
|
| - writes2, arraysize(writes2)));
|
| + scoped_ptr<DeterministicSocketData> data2(new DeterministicSocketData(
|
| + reads2, arraysize(reads2), writes2, arraysize(writes2)));
|
| MockConnect connect_data2(ASYNC, OK);
|
| data2->set_connect_data(connect_data2);
|
|
|
| @@ -11509,9 +11834,10 @@ TEST_P(HttpNetworkTransactionTest, DoNotUseSpdySessionIfCertDoesNotMatch) {
|
| proxy_config.proxy_rules().ParseFromString("http=https://proxy:443");
|
| CapturingProxyResolver* capturing_proxy_resolver =
|
| new CapturingProxyResolver();
|
| - session_deps_.proxy_service.reset(new ProxyService(
|
| - new ProxyConfigServiceFixed(proxy_config), capturing_proxy_resolver,
|
| - NULL));
|
| + session_deps_.proxy_service.reset(
|
| + new ProxyService(new ProxyConfigServiceFixed(proxy_config),
|
| + capturing_proxy_resolver,
|
| + NULL));
|
|
|
| // Load a valid cert. Note, that this does not need to
|
| // be valid for proxy because the MockSSLClientSocket does
|
| @@ -11581,9 +11907,7 @@ TEST_P(HttpNetworkTransactionTest, DoNotUseSpdySessionIfCertDoesNotMatch) {
|
| TEST_P(HttpNetworkTransactionTest, ErrorSocketNotConnected) {
|
| const std::string https_url = "https://www.google.com/";
|
|
|
| - MockRead reads1[] = {
|
| - MockRead(SYNCHRONOUS, ERR_CONNECTION_CLOSED, 0)
|
| - };
|
| + MockRead reads1[] = {MockRead(SYNCHRONOUS, ERR_CONNECTION_CLOSED, 0)};
|
|
|
| scoped_ptr<DeterministicSocketData> data1(
|
| new DeterministicSocketData(reads1, arraysize(reads1), NULL, 0));
|
| @@ -11592,20 +11916,18 @@ TEST_P(HttpNetworkTransactionTest, ErrorSocketNotConnected) {
|
| scoped_ptr<SpdyFrame> req2(
|
| spdy_util_.ConstructSpdyGet(https_url.c_str(), false, 1, MEDIUM));
|
| MockWrite writes2[] = {
|
| - CreateMockWrite(*req2, 0),
|
| + CreateMockWrite(*req2, 0),
|
| };
|
|
|
| scoped_ptr<SpdyFrame> resp2(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| scoped_ptr<SpdyFrame> body2(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| MockRead reads2[] = {
|
| - CreateMockRead(*resp2, 1),
|
| - CreateMockRead(*body2, 2),
|
| - MockRead(ASYNC, OK, 3) // EOF
|
| + CreateMockRead(*resp2, 1), CreateMockRead(*body2, 2),
|
| + MockRead(ASYNC, OK, 3) // EOF
|
| };
|
|
|
| - scoped_ptr<DeterministicSocketData> data2(
|
| - new DeterministicSocketData(reads2, arraysize(reads2),
|
| - writes2, arraysize(writes2)));
|
| + scoped_ptr<DeterministicSocketData> data2(new DeterministicSocketData(
|
| + reads2, arraysize(reads2), writes2, arraysize(writes2)));
|
|
|
| SSLSocketDataProvider ssl1(ASYNC, OK);
|
| ssl1.SetNextProto(GetParam());
|
| @@ -11674,59 +11996,59 @@ TEST_P(HttpNetworkTransactionTest, CloseIdleSpdySessionToOpenNewOne) {
|
| scoped_ptr<SpdyFrame> host1_req(spdy_util_.ConstructSpdyGet(
|
| "https://www.a.com", false, 1, DEFAULT_PRIORITY));
|
| MockWrite spdy1_writes[] = {
|
| - CreateMockWrite(*host1_req, 1),
|
| + CreateMockWrite(*host1_req, 1),
|
| };
|
| scoped_ptr<SpdyFrame> host1_resp(
|
| spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| scoped_ptr<SpdyFrame> host1_resp_body(
|
| spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| MockRead spdy1_reads[] = {
|
| - CreateMockRead(*host1_resp, 2),
|
| - CreateMockRead(*host1_resp_body, 3),
|
| - MockRead(ASYNC, ERR_IO_PENDING, 4),
|
| + CreateMockRead(*host1_resp, 2), CreateMockRead(*host1_resp_body, 3),
|
| + MockRead(ASYNC, ERR_IO_PENDING, 4),
|
| };
|
|
|
| scoped_ptr<OrderedSocketData> spdy1_data(
|
| - new OrderedSocketData(
|
| - spdy1_reads, arraysize(spdy1_reads),
|
| - spdy1_writes, arraysize(spdy1_writes)));
|
| + new OrderedSocketData(spdy1_reads,
|
| + arraysize(spdy1_reads),
|
| + spdy1_writes,
|
| + arraysize(spdy1_writes)));
|
| session_deps_.socket_factory->AddSocketDataProvider(spdy1_data.get());
|
|
|
| scoped_ptr<SpdyFrame> host2_req(spdy_util_.ConstructSpdyGet(
|
| "https://www.b.com", false, 1, DEFAULT_PRIORITY));
|
| MockWrite spdy2_writes[] = {
|
| - CreateMockWrite(*host2_req, 1),
|
| + CreateMockWrite(*host2_req, 1),
|
| };
|
| scoped_ptr<SpdyFrame> host2_resp(
|
| spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| scoped_ptr<SpdyFrame> host2_resp_body(
|
| spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| MockRead spdy2_reads[] = {
|
| - CreateMockRead(*host2_resp, 2),
|
| - CreateMockRead(*host2_resp_body, 3),
|
| - MockRead(ASYNC, ERR_IO_PENDING, 4),
|
| + CreateMockRead(*host2_resp, 2), CreateMockRead(*host2_resp_body, 3),
|
| + MockRead(ASYNC, ERR_IO_PENDING, 4),
|
| };
|
|
|
| scoped_ptr<OrderedSocketData> spdy2_data(
|
| - new OrderedSocketData(
|
| - spdy2_reads, arraysize(spdy2_reads),
|
| - spdy2_writes, arraysize(spdy2_writes)));
|
| + new OrderedSocketData(spdy2_reads,
|
| + arraysize(spdy2_reads),
|
| + spdy2_writes,
|
| + arraysize(spdy2_writes)));
|
| session_deps_.socket_factory->AddSocketDataProvider(spdy2_data.get());
|
|
|
| MockWrite http_write[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.a.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.a.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
|
|
| MockRead http_read[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| - MockRead("Content-Length: 6\r\n\r\n"),
|
| - MockRead("hello!"),
|
| + MockRead("HTTP/1.1 200 OK\r\n"),
|
| + MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"),
|
| + MockRead("Content-Length: 6\r\n\r\n"), MockRead("hello!"),
|
| };
|
| - StaticSocketDataProvider http_data(http_read, arraysize(http_read),
|
| - http_write, arraysize(http_write));
|
| + StaticSocketDataProvider http_data(
|
| + http_read, arraysize(http_read), http_write, arraysize(http_write));
|
| session_deps_.socket_factory->AddSocketDataProvider(&http_data);
|
|
|
| HostPortPair host_port_pair_a("www.a.com", 443);
|
| @@ -11758,8 +12080,7 @@ TEST_P(HttpNetworkTransactionTest, CloseIdleSpdySessionToOpenNewOne) {
|
| ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data));
|
| EXPECT_EQ("hello!", response_data);
|
| trans.reset();
|
| - EXPECT_TRUE(
|
| - HasSpdySession(session->spdy_session_pool(), spdy_session_key_a));
|
| + EXPECT_TRUE(HasSpdySession(session->spdy_session_pool(), spdy_session_key_a));
|
|
|
| HostPortPair host_port_pair_b("www.b.com", 443);
|
| SpdySessionKey spdy_session_key_b(
|
| @@ -11786,8 +12107,7 @@ TEST_P(HttpNetworkTransactionTest, CloseIdleSpdySessionToOpenNewOne) {
|
| EXPECT_EQ("hello!", response_data);
|
| EXPECT_FALSE(
|
| HasSpdySession(session->spdy_session_pool(), spdy_session_key_a));
|
| - EXPECT_TRUE(
|
| - HasSpdySession(session->spdy_session_pool(), spdy_session_key_b));
|
| + EXPECT_TRUE(HasSpdySession(session->spdy_session_pool(), spdy_session_key_b));
|
|
|
| HostPortPair host_port_pair_a1("www.a.com", 80);
|
| SpdySessionKey spdy_session_key_a1(
|
| @@ -11889,14 +12209,14 @@ TEST_P(HttpNetworkTransactionTest, HttpSyncWriteError) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| + MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| };
|
| MockRead data_reads[] = {
|
| - MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached.
|
| + MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached.
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -11925,14 +12245,14 @@ TEST_P(HttpNetworkTransactionTest, HttpAsyncWriteError) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite(ASYNC, ERR_CONNECTION_RESET),
|
| + MockWrite(ASYNC, ERR_CONNECTION_RESET),
|
| };
|
| MockRead data_reads[] = {
|
| - MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached.
|
| + MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached.
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -11961,16 +12281,17 @@ TEST_P(HttpNetworkTransactionTest, HttpSyncReadError) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead data_reads[] = {
|
| - MockRead(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| + MockRead(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -11999,16 +12320,17 @@ TEST_P(HttpNetworkTransactionTest, HttpAsyncReadError) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead data_reads[] = {
|
| - MockRead(ASYNC, ERR_CONNECTION_RESET),
|
| + MockRead(ASYNC, ERR_CONNECTION_RESET),
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -12038,20 +12360,22 @@ TEST_P(HttpNetworkTransactionTest, GetFullRequestHeadersIncludesExtraHeader) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "X-Foo: bar\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "X-Foo: bar\r\n\r\n"),
|
| };
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"
|
| - "Content-Length: 5\r\n\r\n"
|
| - "hello"),
|
| - MockRead(ASYNC, ERR_UNEXPECTED),
|
| + MockRead(
|
| + "HTTP/1.1 200 OK\r\n"
|
| + "Content-Length: 5\r\n\r\n"
|
| + "hello"),
|
| + MockRead(ASYNC, ERR_UNEXPECTED),
|
| };
|
|
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads),
|
| - data_writes, arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -12104,7 +12428,8 @@ class FakeStream : public HttpStreamBase,
|
| return NULL;
|
| }
|
|
|
| - virtual int ReadResponseBody(IOBuffer* buf, int buf_len,
|
| + virtual int ReadResponseBody(IOBuffer* buf,
|
| + int buf_len,
|
| const CompletionCallback& callback) OVERRIDE {
|
| ADD_FAILURE();
|
| return ERR_UNEXPECTED;
|
| @@ -12117,18 +12442,14 @@ class FakeStream : public HttpStreamBase,
|
| return false;
|
| }
|
|
|
| - virtual bool CanFindEndOfResponse() const OVERRIDE {
|
| - return false;
|
| - }
|
| + virtual bool CanFindEndOfResponse() const OVERRIDE { return false; }
|
|
|
| virtual bool IsConnectionReused() const OVERRIDE {
|
| ADD_FAILURE();
|
| return false;
|
| }
|
|
|
| - virtual void SetConnectionReused() OVERRIDE {
|
| - ADD_FAILURE();
|
| - }
|
| + virtual void SetConnectionReused() OVERRIDE { ADD_FAILURE(); }
|
|
|
| virtual bool IsConnectionReusable() const OVERRIDE {
|
| ADD_FAILURE();
|
| @@ -12146,9 +12467,7 @@ class FakeStream : public HttpStreamBase,
|
| return false;
|
| }
|
|
|
| - virtual void GetSSLInfo(SSLInfo* ssl_info) OVERRIDE {
|
| - ADD_FAILURE();
|
| - }
|
| + virtual void GetSSLInfo(SSLInfo* ssl_info) OVERRIDE { ADD_FAILURE(); }
|
|
|
| virtual void GetSSLCertRequestInfo(
|
| SSLCertRequestInfo* cert_request_info) OVERRIDE {
|
| @@ -12160,9 +12479,7 @@ class FakeStream : public HttpStreamBase,
|
| return false;
|
| }
|
|
|
| - virtual void Drain(HttpNetworkSession* session) OVERRIDE {
|
| - ADD_FAILURE();
|
| - }
|
| + virtual void Drain(HttpNetworkSession* session) OVERRIDE { ADD_FAILURE(); }
|
|
|
| virtual void SetPriority(RequestPriority priority) OVERRIDE {
|
| priority_ = priority;
|
| @@ -12227,17 +12544,13 @@ class FakeStreamRequest : public HttpStreamRequest,
|
| priority_ = priority;
|
| }
|
|
|
| - virtual bool was_npn_negotiated() const OVERRIDE {
|
| - return false;
|
| - }
|
| + virtual bool was_npn_negotiated() const OVERRIDE { return false; }
|
|
|
| virtual NextProto protocol_negotiated() const OVERRIDE {
|
| return kProtoUnknown;
|
| }
|
|
|
| - virtual bool using_spdy() const OVERRIDE {
|
| - return false;
|
| - }
|
| + virtual bool using_spdy() const OVERRIDE { return false; }
|
|
|
| private:
|
| RequestPriority priority_;
|
| @@ -12311,8 +12624,8 @@ class FakeStreamFactory : public HttpStreamFactory {
|
|
|
| // TODO(yhirano): Split this class out into a net/websockets file, if it is
|
| // worth doing.
|
| -class FakeWebSocketStreamCreateHelper :
|
| - public WebSocketHandshakeStreamBase::CreateHelper {
|
| +class FakeWebSocketStreamCreateHelper
|
| + : public WebSocketHandshakeStreamBase::CreateHelper {
|
| public:
|
| virtual WebSocketHandshakeStreamBase* CreateBasicStream(
|
| scoped_ptr<ClientSocketHandle> connection,
|
| @@ -12460,18 +12773,17 @@ TEST_P(HttpNetworkTransactionTest, CloseSSLSocketOnIdleForHttpRequest) {
|
| ssl_request.url = GURL("https://www.google.com/");
|
|
|
| MockWrite ssl_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead ssl_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Length: 11\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n"), MockRead("Content-Length: 11\r\n\r\n"),
|
| + MockRead("hello world"), MockRead(SYNCHRONOUS, OK),
|
| };
|
| - StaticSocketDataProvider ssl_data(ssl_reads, arraysize(ssl_reads),
|
| - ssl_writes, arraysize(ssl_writes));
|
| + StaticSocketDataProvider ssl_data(
|
| + ssl_reads, arraysize(ssl_reads), ssl_writes, arraysize(ssl_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&ssl_data);
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| @@ -12484,18 +12796,17 @@ TEST_P(HttpNetworkTransactionTest, CloseSSLSocketOnIdleForHttpRequest) {
|
| http_request.url = GURL("http://www.google.com/");
|
|
|
| MockWrite http_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead http_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Length: 7\r\n\r\n"),
|
| - MockRead("falafel"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n"), MockRead("Content-Length: 7\r\n\r\n"),
|
| + MockRead("falafel"), MockRead(SYNCHRONOUS, OK),
|
| };
|
| - StaticSocketDataProvider http_data(http_reads, arraysize(http_reads),
|
| - http_writes, arraysize(http_writes));
|
| + StaticSocketDataProvider http_data(
|
| + http_reads, arraysize(http_reads), http_writes, arraysize(http_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&http_data);
|
|
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| @@ -12504,17 +12815,17 @@ TEST_P(HttpNetworkTransactionTest, CloseSSLSocketOnIdleForHttpRequest) {
|
| TestCompletionCallback ssl_callback;
|
| scoped_ptr<HttpTransaction> ssl_trans(
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
| - ASSERT_EQ(ERR_IO_PENDING,
|
| - ssl_trans->Start(&ssl_request, ssl_callback.callback(),
|
| - BoundNetLog()));
|
| + ASSERT_EQ(
|
| + ERR_IO_PENDING,
|
| + ssl_trans->Start(&ssl_request, ssl_callback.callback(), BoundNetLog()));
|
|
|
| // Start the HTTP request. Pool should stall.
|
| TestCompletionCallback http_callback;
|
| scoped_ptr<HttpTransaction> http_trans(
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
| ASSERT_EQ(ERR_IO_PENDING,
|
| - http_trans->Start(&http_request, http_callback.callback(),
|
| - BoundNetLog()));
|
| + http_trans->Start(
|
| + &http_request, http_callback.callback(), BoundNetLog()));
|
| EXPECT_TRUE(IsTransportSocketPoolStalled(session));
|
|
|
| // Wait for response from SSL request.
|
| @@ -12565,18 +12876,17 @@ TEST_P(HttpNetworkTransactionTest, CloseSSLSocketOnIdleForHttpRequest2) {
|
| http_request.url = GURL("http://www.google.com/");
|
|
|
| MockWrite http_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.google.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead http_reads[] = {
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Length: 7\r\n\r\n"),
|
| - MockRead("falafel"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.1 200 OK\r\n"), MockRead("Content-Length: 7\r\n\r\n"),
|
| + MockRead("falafel"), MockRead(SYNCHRONOUS, OK),
|
| };
|
| - StaticSocketDataProvider http_data(http_reads, arraysize(http_reads),
|
| - http_writes, arraysize(http_writes));
|
| + StaticSocketDataProvider http_data(
|
| + http_reads, arraysize(http_reads), http_writes, arraysize(http_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&http_data);
|
|
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| @@ -12586,8 +12896,8 @@ TEST_P(HttpNetworkTransactionTest, CloseSSLSocketOnIdleForHttpRequest2) {
|
| net::HttpStreamFactory* http_stream_factory = session->http_stream_factory();
|
| net::SSLConfig ssl_config;
|
| session->ssl_config_service()->GetSSLConfig(&ssl_config);
|
| - http_stream_factory->PreconnectStreams(1, ssl_request, DEFAULT_PRIORITY,
|
| - ssl_config, ssl_config);
|
| + http_stream_factory->PreconnectStreams(
|
| + 1, ssl_request, DEFAULT_PRIORITY, ssl_config, ssl_config);
|
| EXPECT_EQ(0, GetIdleSocketCountInSSLSocketPool(session));
|
|
|
| // Start the HTTP request. Pool should stall.
|
| @@ -12595,8 +12905,8 @@ TEST_P(HttpNetworkTransactionTest, CloseSSLSocketOnIdleForHttpRequest2) {
|
| scoped_ptr<HttpTransaction> http_trans(
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
| ASSERT_EQ(ERR_IO_PENDING,
|
| - http_trans->Start(&http_request, http_callback.callback(),
|
| - BoundNetLog()));
|
| + http_trans->Start(
|
| + &http_request, http_callback.callback(), BoundNetLog()));
|
| EXPECT_TRUE(IsTransportSocketPoolStalled(session));
|
|
|
| // The SSL connection will automatically be closed once the connection is
|
| @@ -12625,20 +12935,20 @@ TEST_P(HttpNetworkTransactionTest, PostReadsErrorResponseAfterReset) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
| // Send headers successfully, but get an error while sending the body.
|
| MockWrite data_writes[] = {
|
| - MockWrite("POST / HTTP/1.1\r\n"
|
| - "Host: www.foo.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Content-Length: 3\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| + MockWrite(
|
| + "POST / HTTP/1.1\r\n"
|
| + "Host: www.foo.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Content-Length: 3\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 400 Not OK\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 400 Not OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes,
|
| - arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -12667,27 +12977,29 @@ TEST_P(HttpNetworkTransactionTest,
|
| PostReadsErrorResponseAfterResetOnReusedSocket) {
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| MockWrite data_writes[] = {
|
| - MockWrite("GET / HTTP/1.1\r\n"
|
| - "Host: www.foo.com\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite("POST / HTTP/1.1\r\n"
|
| - "Host: www.foo.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Content-Length: 3\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| + MockWrite(
|
| + "GET / HTTP/1.1\r\n"
|
| + "Host: www.foo.com\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(
|
| + "POST / HTTP/1.1\r\n"
|
| + "Host: www.foo.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Content-Length: 3\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 200 Peachy\r\n"
|
| - "Content-Length: 14\r\n\r\n"),
|
| - MockRead("first response"),
|
| - MockRead("HTTP/1.1 400 Not OK\r\n"
|
| - "Content-Length: 15\r\n\r\n"),
|
| - MockRead("second response"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| - };
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes,
|
| - arraysize(data_writes));
|
| + MockRead(
|
| + "HTTP/1.1 200 Peachy\r\n"
|
| + "Content-Length: 14\r\n\r\n"),
|
| + MockRead("first response"), MockRead(
|
| + "HTTP/1.1 400 Not OK\r\n"
|
| + "Content-Length: 15\r\n\r\n"),
|
| + MockRead("second response"), MockRead(SYNCHRONOUS, OK),
|
| + };
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -12764,21 +13076,21 @@ TEST_P(HttpNetworkTransactionTest,
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
| // Send headers successfully, but get an error while sending the body.
|
| MockWrite data_writes[] = {
|
| - MockWrite("POST / HTTP/1.1\r\n"
|
| - "Host: www.foo.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Content-Length: 3\r\n\r\n"
|
| - "fo"),
|
| - MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| + MockWrite(
|
| + "POST / HTTP/1.1\r\n"
|
| + "Host: www.foo.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Content-Length: 3\r\n\r\n"
|
| + "fo"),
|
| + MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 400 Not OK\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 400 Not OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes,
|
| - arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -12819,20 +13131,20 @@ TEST_P(HttpNetworkTransactionTest, ChunkedPostReadsErrorResponseAfterReset) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
| // Send headers successfully, but get an error while sending the body.
|
| MockWrite data_writes[] = {
|
| - MockWrite("POST / HTTP/1.1\r\n"
|
| - "Host: www.foo.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Transfer-Encoding: chunked\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| + MockWrite(
|
| + "POST / HTTP/1.1\r\n"
|
| + "Host: www.foo.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Transfer-Encoding: chunked\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 400 Not OK\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 400 Not OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes,
|
| - arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -12878,21 +13190,21 @@ TEST_P(HttpNetworkTransactionTest, PostReadsErrorResponseAfterResetAnd100) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| MockWrite data_writes[] = {
|
| - MockWrite("POST / HTTP/1.1\r\n"
|
| - "Host: www.foo.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Content-Length: 3\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| + MockWrite(
|
| + "POST / HTTP/1.1\r\n"
|
| + "Host: www.foo.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Content-Length: 3\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 100 Continue\r\n\r\n"),
|
| - MockRead("HTTP/1.0 400 Not OK\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 100 Continue\r\n\r\n"),
|
| + MockRead("HTTP/1.0 400 Not OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes,
|
| - arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -12931,20 +13243,20 @@ TEST_P(HttpNetworkTransactionTest, PostIgnoresNonErrorResponseAfterReset) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
| // Send headers successfully, but get an error while sending the body.
|
| MockWrite data_writes[] = {
|
| - MockWrite("POST / HTTP/1.1\r\n"
|
| - "Host: www.foo.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Content-Length: 3\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| + MockWrite(
|
| + "POST / HTTP/1.1\r\n"
|
| + "Host: www.foo.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Content-Length: 3\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 Just Dandy\r\n\r\n"),
|
| - MockRead("hello world"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 200 Just Dandy\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes,
|
| - arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -12976,22 +13288,23 @@ TEST_P(HttpNetworkTransactionTest,
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
| // Send headers successfully, but get an error while sending the body.
|
| MockWrite data_writes[] = {
|
| - MockWrite("POST / HTTP/1.1\r\n"
|
| - "Host: www.foo.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Content-Length: 3\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| + MockWrite(
|
| + "POST / HTTP/1.1\r\n"
|
| + "Host: www.foo.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Content-Length: 3\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 100 Continue\r\n\r\n"),
|
| - MockRead("HTTP/1.0 302 Redirect\r\n"),
|
| - MockRead("Location: http://somewhere-else.com/\r\n"),
|
| - MockRead("Content-Length: 0\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| - };
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes,
|
| - arraysize(data_writes));
|
| + MockRead("HTTP/1.0 100 Continue\r\n\r\n"),
|
| + MockRead("HTTP/1.0 302 Redirect\r\n"),
|
| + MockRead("Location: http://somewhere-else.com/\r\n"),
|
| + MockRead("Content-Length: 0\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| + };
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -13022,19 +13335,19 @@ TEST_P(HttpNetworkTransactionTest, PostIgnoresHttp09ResponseAfterReset) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
| // Send headers successfully, but get an error while sending the body.
|
| MockWrite data_writes[] = {
|
| - MockWrite("POST / HTTP/1.1\r\n"
|
| - "Host: www.foo.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Content-Length: 3\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| + MockWrite(
|
| + "POST / HTTP/1.1\r\n"
|
| + "Host: www.foo.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Content-Length: 3\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP 0.9 rocks!"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP 0.9 rocks!"), MockRead(SYNCHRONOUS, OK),
|
| };
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes,
|
| - arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -13065,19 +13378,20 @@ TEST_P(HttpNetworkTransactionTest, PostIgnoresPartial400HeadersAfterReset) {
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
| // Send headers successfully, but get an error while sending the body.
|
| MockWrite data_writes[] = {
|
| - MockWrite("POST / HTTP/1.1\r\n"
|
| - "Host: www.foo.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Content-Length: 3\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| + MockWrite(
|
| + "POST / HTTP/1.1\r\n"
|
| + "Host: www.foo.com\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Content-Length: 3\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET),
|
| };
|
|
|
| MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 400 Not a Full Response\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| + MockRead("HTTP/1.0 400 Not a Full Response\r\n"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| };
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes,
|
| - arraysize(data_writes));
|
| + StaticSocketDataProvider data(
|
| + data_reads, arraysize(data_reads), data_writes, arraysize(data_writes));
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
|
|