diff options
-rw-r--r-- | net/ftp/ftp_network_transaction_unittest.cc | 16 | ||||
-rw-r--r-- | net/http/http_network_layer_unittest.cc | 3 | ||||
-rw-r--r-- | net/http/http_network_transaction_unittest.cc | 239 | ||||
-rw-r--r-- | net/socket/socket_test_util.cc | 9 | ||||
-rw-r--r-- | net/socket/socket_test_util.h | 29 | ||||
-rw-r--r-- | net/socket/socks5_client_socket_unittest.cc | 34 | ||||
-rw-r--r-- | net/socket/socks_client_socket_unittest.cc | 48 | ||||
-rw-r--r-- | net/socket_stream/socket_stream_unittest.cc | 6 | ||||
-rw-r--r-- | net/spdy/spdy_network_transaction_unittest.cc | 65 | ||||
-rw-r--r-- | net/websockets/websocket_unittest.cc | 6 |
10 files changed, 288 insertions, 167 deletions
diff --git a/net/ftp/ftp_network_transaction_unittest.cc b/net/ftp/ftp_network_transaction_unittest.cc index d8479aa5..e46e1ba 100644 --- a/net/ftp/ftp_network_transaction_unittest.cc +++ b/net/ftp/ftp_network_transaction_unittest.cc @@ -574,8 +574,8 @@ class FtpNetworkTransactionTest : public PlatformTest { }; // For compatibility with FileZilla, the transaction code will use two data // sockets for directory requests. For more info see http://crbug.com/25316. - StaticSocketDataProvider data1(data_reads, NULL); - StaticSocketDataProvider data2(data_reads, NULL); + StaticSocketDataProvider data1(data_reads, arraysize(data_reads), NULL, 0); + StaticSocketDataProvider data2(data_reads, arraysize(data_reads), NULL, 0); mock_socket_factory_.AddSocketDataProvider(ctrl_socket); mock_socket_factory_.AddSocketDataProvider(&data1); mock_socket_factory_.AddSocketDataProvider(&data2); @@ -707,7 +707,8 @@ TEST_F(FtpNetworkTransactionTest, DownloadTransactionAcceptedDataConnection) { MockRead data_reads[] = { MockRead(mock_data.c_str()), }; - StaticSocketDataProvider data_socket1(data_reads, NULL); + StaticSocketDataProvider data_socket1(data_reads, arraysize(data_reads), + NULL, 0); mock_socket_factory_.AddSocketDataProvider(&ctrl_socket); mock_socket_factory_.AddSocketDataProvider(&data_socket1); FtpRequestInfo request_info = GetRequestInfo("ftp://host/file"); @@ -791,7 +792,8 @@ TEST_F(FtpNetworkTransactionTest, DownloadTransactionEvilPasvUnsafeHost) { MockRead data_reads[] = { MockRead(mock_data.c_str()), }; - StaticSocketDataProvider data_socket1(data_reads, NULL); + StaticSocketDataProvider data_socket1(data_reads, arraysize(data_reads), + NULL, 0); mock_socket_factory_.AddSocketDataProvider(&ctrl_socket); mock_socket_factory_.AddSocketDataProvider(&data_socket1); FtpRequestInfo request_info = GetRequestInfo("ftp://host/file"); @@ -857,7 +859,8 @@ TEST_F(FtpNetworkTransactionTest, EvilRestartUser) { MockWrite ctrl_writes[] = { MockWrite("QUIT\r\n"), }; - StaticSocketDataProvider ctrl_socket2(ctrl_reads, ctrl_writes); + StaticSocketDataProvider ctrl_socket2(ctrl_reads, arraysize(ctrl_reads), + ctrl_writes, arraysize(ctrl_writes)); mock_socket_factory_.AddSocketDataProvider(&ctrl_socket2); ASSERT_EQ(ERR_IO_PENDING, transaction_.RestartWithAuth(L"foo\nownz0red", L"innocent", @@ -888,7 +891,8 @@ TEST_F(FtpNetworkTransactionTest, EvilRestartPassword) { MockWrite("USER innocent\r\n"), MockWrite("QUIT\r\n"), }; - StaticSocketDataProvider ctrl_socket2(ctrl_reads, ctrl_writes); + StaticSocketDataProvider ctrl_socket2(ctrl_reads, arraysize(ctrl_reads), + ctrl_writes, arraysize(ctrl_writes)); mock_socket_factory_.AddSocketDataProvider(&ctrl_socket2); ASSERT_EQ(ERR_IO_PENDING, transaction_.RestartWithAuth(L"innocent", L"foo\nownz0red", diff --git a/net/http/http_network_layer_unittest.cc b/net/http/http_network_layer_unittest.cc index 1e75ece..8425304 100644 --- a/net/http/http_network_layer_unittest.cc +++ b/net/http/http_network_layer_unittest.cc @@ -62,7 +62,8 @@ TEST_F(HttpNetworkLayerTest, GET) { "Connection: keep-alive\r\n" "User-Agent: Foo/1.0\r\n\r\n"), }; - net::StaticSocketDataProvider data(data_reads, data_writes); + net::StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_reads)); mock_socket_factory.AddSocketDataProvider(&data); net::HttpNetworkLayer factory(&mock_socket_factory, NULL, diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc index 73b5082..548ee16 100644 --- a/net/http/http_network_transaction_unittest.cc +++ b/net/http/http_network_transaction_unittest.cc @@ -91,7 +91,8 @@ class HttpNetworkTransactionTest : public PlatformTest { std::string response_data; }; - SimpleGetHelperResult SimpleGetHelper(MockRead data_reads[]) { + SimpleGetHelperResult SimpleGetHelper(MockRead data_reads[], + size_t reads_count) { SimpleGetHelperResult out; SessionDependencies session_deps; @@ -103,7 +104,7 @@ class HttpNetworkTransactionTest : public PlatformTest { request.url = GURL("http://www.google.com/"); request.load_flags = 0; - StaticSocketDataProvider data(data_reads, NULL); + StaticSocketDataProvider data(data_reads, reads_count, NULL, 0); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -230,7 +231,8 @@ TEST_F(HttpNetworkTransactionTest, SimpleGET) { MockRead("hello world"), MockRead(false, OK), }; - SimpleGetHelperResult out = SimpleGetHelper(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); @@ -242,7 +244,8 @@ TEST_F(HttpNetworkTransactionTest, SimpleGETNoHeaders) { MockRead("hello world"), MockRead(false, OK), }; - SimpleGetHelperResult out = SimpleGetHelper(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); @@ -254,7 +257,8 @@ TEST_F(HttpNetworkTransactionTest, StatusLineJunk2Bytes) { MockRead("xxxHTTP/1.0 404 Not Found\nServer: blah\n\nDATA"), MockRead(false, OK), }; - SimpleGetHelperResult out = SimpleGetHelper(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); @@ -266,7 +270,8 @@ TEST_F(HttpNetworkTransactionTest, StatusLineJunk4Bytes) { MockRead("\n\nQJHTTP/1.0 404 Not Found\nServer: blah\n\nDATA"), MockRead(false, OK), }; - SimpleGetHelperResult out = SimpleGetHelper(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); @@ -278,7 +283,8 @@ TEST_F(HttpNetworkTransactionTest, StatusLineJunk5Bytes) { MockRead("xxxxxHTTP/1.1 404 Not Found\nServer: blah"), MockRead(false, OK), }; - SimpleGetHelperResult out = SimpleGetHelper(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); @@ -294,7 +300,8 @@ TEST_F(HttpNetworkTransactionTest, StatusLineJunk4Bytes_Slow) { MockRead("HTTP/1.0 404 Not Found\nServer: blah\n\nDATA"), MockRead(false, OK), }; - SimpleGetHelperResult out = SimpleGetHelper(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); @@ -306,7 +313,8 @@ TEST_F(HttpNetworkTransactionTest, StatusLinePartial) { MockRead("HTT"), MockRead(false, OK), }; - SimpleGetHelperResult out = SimpleGetHelper(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); @@ -321,7 +329,8 @@ TEST_F(HttpNetworkTransactionTest, StopsReading204) { MockRead("junk"), // Should not be read!! MockRead(false, OK), }; - SimpleGetHelperResult out = SimpleGetHelper(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); @@ -339,7 +348,8 @@ TEST_F(HttpNetworkTransactionTest, ChunkedEncoding) { MockRead("0\r\n\r\nHTTP/1.1 200 OK\r\n"), MockRead(false, OK), }; - SimpleGetHelperResult out = SimpleGetHelper(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 world", out.response_data); @@ -372,7 +382,8 @@ TEST_F(HttpNetworkTransactionTest, Head) { MockRead(false, ERR_UNEXPECTED), // Should not be reached. }; - StaticSocketDataProvider data1(data_reads1, data_writes1); + StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), + data_writes1, arraysize(data_writes1)); session_deps.socket_factory.AddSocketDataProvider(&data1); TestCompletionCallback callback1; @@ -417,7 +428,7 @@ TEST_F(HttpNetworkTransactionTest, ReuseConnection) { MockRead("world"), MockRead(false, OK), }; - StaticSocketDataProvider data(data_reads, NULL); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); session_deps.socket_factory.AddSocketDataProvider(&data); const char* kExpectedResponseData[] = { @@ -471,7 +482,7 @@ TEST_F(HttpNetworkTransactionTest, Ignores100) { MockRead("hello world"), MockRead(false, OK), }; - StaticSocketDataProvider data(data_reads, NULL); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -513,7 +524,7 @@ TEST_F(HttpNetworkTransactionTest, Ignores1xx) { MockRead("hello world"), MockRead(false, OK), }; - StaticSocketDataProvider data(data_reads, NULL); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -550,7 +561,7 @@ TEST_F(HttpNetworkTransactionTest, Incomplete100ThenEOF) { MockRead(false, "HTTP/1.0 100 Continue\r\n"), MockRead(true, 0), }; - StaticSocketDataProvider data(data_reads, NULL); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -580,7 +591,7 @@ TEST_F(HttpNetworkTransactionTest, EmptyResponse) { MockRead data_reads[] = { MockRead(true, 0), }; - StaticSocketDataProvider data(data_reads, NULL); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -609,7 +620,7 @@ void HttpNetworkTransactionTest::KeepAliveConnectionResendRequestTest( MockRead("hello"), read_failure, // Now, we reuse the connection and fail the first read. }; - StaticSocketDataProvider data1(data1_reads, NULL); + StaticSocketDataProvider data1(data1_reads, arraysize(data1_reads), NULL, 0); session_deps.socket_factory.AddSocketDataProvider(&data1); MockRead data2_reads[] = { @@ -617,7 +628,7 @@ void HttpNetworkTransactionTest::KeepAliveConnectionResendRequestTest( MockRead("world"), MockRead(true, OK), }; - StaticSocketDataProvider data2(data2_reads, NULL); + StaticSocketDataProvider data2(data2_reads, arraysize(data2_reads), NULL, 0); session_deps.socket_factory.AddSocketDataProvider(&data2); const char* kExpectedResponseData[] = { @@ -674,7 +685,7 @@ TEST_F(HttpNetworkTransactionTest, NonKeepAliveConnectionReset) { MockRead("hello world"), MockRead(false, OK), }; - StaticSocketDataProvider data(data_reads, NULL); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -705,7 +716,8 @@ TEST_F(HttpNetworkTransactionTest, NonKeepAliveConnectionEOF) { MockRead("hello world"), MockRead(false, OK), }; - SimpleGetHelperResult out = SimpleGetHelper(data_reads); + SimpleGetHelperResult out = SimpleGetHelper(data_reads, + arraysize(data_reads)); EXPECT_EQ(ERR_EMPTY_RESPONSE, out.rv); } @@ -757,8 +769,10 @@ TEST_F(HttpNetworkTransactionTest, BasicAuth) { MockRead(false, OK), }; - StaticSocketDataProvider data1(data_reads1, data_writes1); - StaticSocketDataProvider data2(data_reads2, 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); @@ -819,7 +833,8 @@ TEST_F(HttpNetworkTransactionTest, DoNotSendAuth) { MockRead(false, ERR_FAILED), }; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -873,7 +888,8 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthKeepAlive) { MockRead(false, OK), }; - StaticSocketDataProvider data1(data_reads1, data_writes1); + StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), + data_writes1, arraysize(data_writes1)); session_deps.socket_factory.AddSocketDataProvider(&data1); TestCompletionCallback callback1; @@ -945,7 +961,8 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthKeepAliveNoBody) { MockRead(false, OK), }; - StaticSocketDataProvider data1(data_reads1, data_writes1); + StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), + data_writes1, arraysize(data_writes1)); session_deps.socket_factory.AddSocketDataProvider(&data1); TestCompletionCallback callback1; @@ -1025,7 +1042,8 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthKeepAliveLargeBody) { MockRead(false, OK), }; - StaticSocketDataProvider data1(data_reads1, data_writes1); + StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), + data_writes1, arraysize(data_writes1)); session_deps.socket_factory.AddSocketDataProvider(&data1); TestCompletionCallback callback1; @@ -1112,8 +1130,10 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthKeepAliveImpatientServer) { MockRead(false, OK), }; - StaticSocketDataProvider data1(data_reads1, data_writes1); - StaticSocketDataProvider data2(data_reads2, 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); @@ -1196,7 +1216,8 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthProxyKeepAlive) { MockRead(false, ERR_UNEXPECTED), // Should not be reached. }; - StaticSocketDataProvider data1(data_reads1, data_writes1); + StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), + data_writes1, arraysize(data_writes1)); session_deps.socket_factory.AddSocketDataProvider(&data1); TestCompletionCallback callback1; @@ -1277,7 +1298,8 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthProxyCancelTunnel) { MockRead(false, ERR_UNEXPECTED), // Should not be reached. }; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -1329,7 +1351,8 @@ void HttpNetworkTransactionTest::ConnectStatusHelperWithExpectedStatus( MockRead(false, ERR_UNEXPECTED), // Should not be reached. }; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -1584,9 +1607,12 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthProxyThenServer) { MockRead(false, OK), }; - StaticSocketDataProvider data1(data_reads1, data_writes1); - StaticSocketDataProvider data2(data_reads2, data_writes2); - StaticSocketDataProvider data3(data_reads3, 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); @@ -1723,8 +1749,10 @@ TEST_F(HttpNetworkTransactionTest, NTLMAuth1) { MockRead(false, OK), }; - StaticSocketDataProvider data1(data_reads1, data_writes1); - StaticSocketDataProvider data2(data_reads2, 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); @@ -1893,9 +1921,12 @@ TEST_F(HttpNetworkTransactionTest, NTLMAuth2) { MockRead(false, OK), }; - StaticSocketDataProvider data1(data_reads1, data_writes1); - StaticSocketDataProvider data2(data_reads2, data_writes2); - StaticSocketDataProvider data3(data_reads3, 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); @@ -1991,7 +2022,7 @@ TEST_F(HttpNetworkTransactionTest, LargeHeadersNoBody) { MockRead("\r\nBODY"), MockRead(false, OK), }; - StaticSocketDataProvider data(data_reads, NULL); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -2038,7 +2069,8 @@ TEST_F(HttpNetworkTransactionTest, DontRecycleTCPSocketForSSLTunnel) { MockRead(false, ERR_UNEXPECTED), // Should not be reached. }; - StaticSocketDataProvider data1(data_reads1, data_writes1); + StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), + data_writes1, arraysize(data_writes1)); session_deps.socket_factory.AddSocketDataProvider(&data1); TestCompletionCallback callback1; @@ -2087,7 +2119,7 @@ TEST_F(HttpNetworkTransactionTest, RecycleSocket) { MockRead(false, OK), }; - StaticSocketDataProvider data(data_reads, NULL); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -2144,7 +2176,7 @@ TEST_F(HttpNetworkTransactionTest, RecycleSocketAfterZeroContentLength) { MockRead(false, OK), }; - StaticSocketDataProvider data(data_reads, NULL); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -2213,7 +2245,8 @@ TEST_F(HttpNetworkTransactionTest, ResendRequestOnWriteBodyError) { MockWrite(false, 93), // POST MockWrite(false, ERR_CONNECTION_ABORTED), // POST data }; - StaticSocketDataProvider data1(data_reads1, 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. @@ -2228,7 +2261,8 @@ TEST_F(HttpNetworkTransactionTest, ResendRequestOnWriteBodyError) { MockWrite(false, 93), // POST MockWrite(false, 3), // POST data }; - StaticSocketDataProvider data2(data_reads2, 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); @@ -2309,8 +2343,10 @@ TEST_F(HttpNetworkTransactionTest, AuthIdentityInURL) { MockRead(false, OK), }; - StaticSocketDataProvider data1(data_reads1, data_writes1); - StaticSocketDataProvider data2(data_reads2, 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); @@ -2402,9 +2438,12 @@ TEST_F(HttpNetworkTransactionTest, WrongAuthIdentityInURL) { MockRead(false, OK), }; - StaticSocketDataProvider data1(data_reads1, data_writes1); - StaticSocketDataProvider data2(data_reads2, data_writes2); - StaticSocketDataProvider data3(data_reads3, 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); @@ -2495,8 +2534,10 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) { MockRead(false, OK), }; - StaticSocketDataProvider data1(data_reads1, data_writes1); - StaticSocketDataProvider data2(data_reads2, 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); @@ -2578,8 +2619,10 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) { MockRead(false, OK), }; - StaticSocketDataProvider data1(data_reads1, data_writes1); - StaticSocketDataProvider data2(data_reads2, 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); @@ -2644,7 +2687,8 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) { MockRead(false, OK), }; - StaticSocketDataProvider data1(data_reads1, data_writes1); + StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), + data_writes1, arraysize(data_writes1)); session_deps.socket_factory.AddSocketDataProvider(&data1); TestCompletionCallback callback1; @@ -2702,8 +2746,10 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) { MockRead(false, OK), }; - StaticSocketDataProvider data1(data_reads1, data_writes1); - StaticSocketDataProvider data2(data_reads2, 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); @@ -2786,9 +2832,12 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) { MockRead(false, OK), }; - StaticSocketDataProvider data1(data_reads1, data_writes1); - StaticSocketDataProvider data2(data_reads2, data_writes2); - StaticSocketDataProvider data3(data_reads3, 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); @@ -2902,7 +2951,8 @@ TEST_F(HttpNetworkTransactionTest, HTTPSBadCertificate) { }; StaticSocketDataProvider ssl_bad_certificate; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); SSLSocketDataProvider ssl_bad(true, ERR_CERT_AUTHORITY_INVALID); SSLSocketDataProvider ssl(true, OK); @@ -2969,8 +3019,11 @@ TEST_F(HttpNetworkTransactionTest, HTTPSBadCertificateViaProxy) { MockRead(false, OK), }; - StaticSocketDataProvider ssl_bad_certificate(proxy_reads, proxy_writes); - StaticSocketDataProvider data(data_reads, data_writes); + 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(true, ERR_CERT_AUTHORITY_INVALID); SSLSocketDataProvider ssl(true, OK); @@ -3031,7 +3084,8 @@ TEST_F(HttpNetworkTransactionTest, BuildRequest_UserAgent) { MockRead(false, OK), }; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -3069,7 +3123,8 @@ TEST_F(HttpNetworkTransactionTest, BuildRequest_Referer) { MockRead(false, OK), }; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -3105,7 +3160,8 @@ TEST_F(HttpNetworkTransactionTest, BuildRequest_PostContentLengthZero) { MockRead(false, OK), }; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -3141,7 +3197,8 @@ TEST_F(HttpNetworkTransactionTest, BuildRequest_PutContentLengthZero) { MockRead(false, OK), }; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -3177,7 +3234,8 @@ TEST_F(HttpNetworkTransactionTest, BuildRequest_HeadContentLengthZero) { MockRead(false, OK), }; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -3215,7 +3273,8 @@ TEST_F(HttpNetworkTransactionTest, BuildRequest_CacheControlNoCache) { MockRead(false, OK), }; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -3253,7 +3312,8 @@ TEST_F(HttpNetworkTransactionTest, MockRead(false, OK), }; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -3290,7 +3350,8 @@ TEST_F(HttpNetworkTransactionTest, BuildRequest_ExtraHeaders) { MockRead(false, OK), }; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -3332,7 +3393,8 @@ TEST_F(HttpNetworkTransactionTest, SOCKS4_HTTP_GET) { MockRead(false, OK) }; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -3384,7 +3446,8 @@ TEST_F(HttpNetworkTransactionTest, SOCKS4_SSL_GET) { MockRead(false, OK) }; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); session_deps.socket_factory.AddSocketDataProvider(&data); SSLSocketDataProvider ssl(true, OK); @@ -3451,7 +3514,8 @@ TEST_F(HttpNetworkTransactionTest, SOCKS5_HTTP_GET) { MockRead(false, OK) }; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -3517,7 +3581,8 @@ TEST_F(HttpNetworkTransactionTest, SOCKS5_SSL_GET) { MockRead(false, OK) }; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); session_deps.socket_factory.AddSocketDataProvider(&data); SSLSocketDataProvider ssl(true, OK); @@ -3689,7 +3754,7 @@ TEST_F(HttpNetworkTransactionTest, ResolveMadeWithReferrer) { MockRead data_reads[] = { MockRead(false, ERR_FAILED), }; - StaticSocketDataProvider data(data_reads, NULL); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); session_deps.socket_factory.AddSocketDataProvider(&data); // Issue a request, containing an HTTP referrer. @@ -3744,7 +3809,7 @@ TEST_F(HttpNetworkTransactionTest, BypassHostCacheOnRefresh) { // 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(false, ERR_UNEXPECTED) }; - StaticSocketDataProvider data(data_reads, NULL); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); session_deps.socket_factory.AddSocketDataProvider(&data); // Issue a request, asking to bypass the cache(s). @@ -3777,7 +3842,8 @@ TEST_F(HttpNetworkTransactionTest, RequestWriteError) { MockWrite write_failure[] = { MockWrite(true, ERR_CONNECTION_RESET), }; - StaticSocketDataProvider data(NULL, write_failure); + StaticSocketDataProvider data(NULL, 0, + write_failure, arraysize(write_failure)); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -3807,7 +3873,7 @@ TEST_F(HttpNetworkTransactionTest, ConnectionClosedAfterStartOfHeaders) { MockRead(false, OK), }; - StaticSocketDataProvider data(data_reads, NULL); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -3860,7 +3926,8 @@ TEST_F(HttpNetworkTransactionTest, DrainResetOK) { MockRead(true, ERR_CONNECTION_RESET), }; - StaticSocketDataProvider data1(data_reads1, 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 @@ -3880,7 +3947,8 @@ TEST_F(HttpNetworkTransactionTest, DrainResetOK) { MockRead(false, OK), }; - StaticSocketDataProvider data2(data_reads2, data_writes2); + StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), + data_writes2, arraysize(data_writes2)); session_deps.socket_factory.AddSocketDataProvider(&data2); TestCompletionCallback callback1; @@ -3929,7 +3997,7 @@ TEST_F(HttpNetworkTransactionTest, HTTPSViaProxyWithExtraData) { MockRead(false, OK) }; - StaticSocketDataProvider data(proxy_reads, NULL); + StaticSocketDataProvider data(proxy_reads, arraysize(proxy_reads), NULL, 0); SSLSocketDataProvider ssl(true, OK); session_deps.socket_factory.AddSocketDataProvider(&data); @@ -3954,7 +4022,8 @@ TEST_F(HttpNetworkTransactionTest, LargeContentLengthThenClose) { MockRead("HTTP/1.0 200 OK\r\nContent-Length:6719476739\r\n\r\n"), MockRead(false, OK), }; - SimpleGetHelperResult out = SimpleGetHelper(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("", out.response_data); @@ -3988,7 +4057,7 @@ TEST_F(HttpNetworkTransactionTest, UploadFileSmallerThanLength) { MockRead("hello world"), MockRead(false, OK), }; - StaticSocketDataProvider data(data_reads, NULL); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; diff --git a/net/socket/socket_test_util.cc b/net/socket/socket_test_util.cc index 283ae35..1ea1ec9 100644 --- a/net/socket/socket_test_util.cc +++ b/net/socket/socket_test_util.cc @@ -284,11 +284,8 @@ int MockSSLClientSocket::Write(net::IOBuffer* buf, int buf_len, } MockRead StaticSocketDataProvider::GetNextRead() { - MockRead rv = reads_[read_index_]; - if (reads_[read_index_].result != OK || - reads_[read_index_].data_len != 0) - read_index_++; // Don't advance past an EOF. - return rv; + DCHECK(!at_read_eof()); + return reads_[read_index_++]; } MockWriteResult StaticSocketDataProvider::OnWrite(const std::string& data) { @@ -297,6 +294,8 @@ MockWriteResult StaticSocketDataProvider::OnWrite(const std::string& data) { return MockWriteResult(false, data.length()); } + DCHECK(!at_write_eof()); + // Check that what we are writing matches the expectation. // Then give the mocked return value. net::MockWrite* w = &writes_[write_index_++]; diff --git a/net/socket/socket_test_util.h b/net/socket/socket_test_util.h index 90b4019..5e1fe65 100644 --- a/net/socket/socket_test_util.h +++ b/net/socket/socket_test_util.h @@ -121,28 +121,33 @@ class SocketDataProvider { // writes. class StaticSocketDataProvider : public SocketDataProvider { public: - StaticSocketDataProvider() : reads_(NULL), read_index_(0), - writes_(NULL), write_index_(0) {} - StaticSocketDataProvider(MockRead* r, MockWrite* w) : reads_(r), - read_index_(0), writes_(w), write_index_(0) {} + StaticSocketDataProvider() : reads_(NULL), read_index_(0), read_count_(0), + writes_(NULL), write_index_(0), write_count_(0) {} + StaticSocketDataProvider(MockRead* reads, size_t reads_count, + MockWrite* writes, size_t writes_count) + : reads_(reads), + read_index_(0), + read_count_(reads_count), + writes_(writes), + write_index_(0), + write_count_(writes_count) { + } // SocketDataProvider methods: virtual MockRead GetNextRead(); virtual MockWriteResult OnWrite(const std::string& data); virtual void Reset(); - // If the test wishes to verify that all data is consumed, it can include - // a EOF MockRead or MockWrite, which is a zero-length Read or Write. - // The test can then call at_read_eof() or at_write_eof() to verify that - // all data has been consumed. - bool at_read_eof() const { return reads_[read_index_].data_len == 0; } - bool at_write_eof() const { return writes_[write_index_].data_len == 0; } + bool at_read_eof() const { return read_index_ >= read_count_; } + bool at_write_eof() const { return write_index_ >= write_count_; } private: MockRead* reads_; - int read_index_; + size_t read_index_; + size_t read_count_; MockWrite* writes_; - int write_index_; + size_t write_index_; + size_t write_count_; DISALLOW_COPY_AND_ASSIGN(StaticSocketDataProvider); }; diff --git a/net/socket/socks5_client_socket_unittest.cc b/net/socket/socks5_client_socket_unittest.cc index 4b87a14..75d0619 100644 --- a/net/socket/socks5_client_socket_unittest.cc +++ b/net/socket/socks5_client_socket_unittest.cc @@ -32,7 +32,9 @@ class SOCKS5ClientSocketTest : public PlatformTest { SOCKS5ClientSocketTest(); // Create a SOCKSClientSocket on top of a MockSocket. SOCKS5ClientSocket* BuildMockSocket(MockRead reads[], + size_t reads_count, MockWrite writes[], + size_t writes_count, const std::string& hostname, int port); @@ -67,11 +69,14 @@ void SOCKS5ClientSocketTest::SetUp() { SOCKS5ClientSocket* SOCKS5ClientSocketTest::BuildMockSocket( MockRead reads[], + size_t reads_count, MockWrite writes[], + size_t writes_count, const std::string& hostname, int port) { TestCompletionCallback callback; - data_.reset(new StaticSocketDataProvider(reads, writes)); + data_.reset(new StaticSocketDataProvider(reads, reads_count, + writes, writes_count)); tcp_sock_ = new MockTCPClientSocket(address_list_, data_.get()); int rv = tcp_sock_->Connect(&callback, NULL); @@ -115,7 +120,9 @@ TEST_F(SOCKS5ClientSocketTest, CompleteHandshake) { MockRead(true, kSOCKS5OkResponse, arraysize(kSOCKS5OkResponse)), MockRead(true, payload_read.data(), payload_read.size()) }; - user_sock_.reset(BuildMockSocket(data_reads, data_writes, "localhost", 80)); + user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes), + "localhost", 80)); // At this state the TCP connection is completed but not the SOCKS handshake. EXPECT_TRUE(tcp_sock_->IsConnected()); @@ -177,7 +184,9 @@ TEST_F(SOCKS5ClientSocketTest, ConnectAndDisconnectTwice) { MockRead(false, kSOCKS5OkResponse, arraysize(kSOCKS5OkResponse)) }; - user_sock_.reset(BuildMockSocket(data_reads, data_writes, hostname, 80)); + user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes), + hostname, 80)); int rv = user_sock_->Connect(&callback_, NULL); EXPECT_EQ(OK, rv); @@ -197,7 +206,8 @@ TEST_F(SOCKS5ClientSocketTest, LargeHostNameFails) { // Create a SOCKS socket, with mock transport socket. MockWrite data_writes[] = {MockWrite()}; MockRead data_reads[] = {MockRead()}; - user_sock_.reset(BuildMockSocket(data_reads, data_writes, + user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes), large_host_name, 80)); // Try to connect -- should fail (without having read/written anything to @@ -232,7 +242,9 @@ TEST_F(SOCKS5ClientSocketTest, PartialReadWrites) { MockRead data_reads[] = { MockRead(true, kSOCKS5GreetResponse, arraysize(kSOCKS5GreetResponse)), MockRead(true, kSOCKS5OkResponse, arraysize(kSOCKS5OkResponse)) }; - user_sock_.reset(BuildMockSocket(data_reads, data_writes, hostname, 80)); + user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes), + hostname, 80)); scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); int rv = user_sock_->Connect(&callback_, log); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -254,7 +266,9 @@ TEST_F(SOCKS5ClientSocketTest, PartialReadWrites) { MockRead(true, partial1, arraysize(partial1)), MockRead(true, partial2, arraysize(partial2)), MockRead(true, kSOCKS5OkResponse, arraysize(kSOCKS5OkResponse)) }; - user_sock_.reset(BuildMockSocket(data_reads, data_writes, hostname, 80)); + user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes), + hostname, 80)); scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); int rv = user_sock_->Connect(&callback_, log); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -277,7 +291,9 @@ TEST_F(SOCKS5ClientSocketTest, PartialReadWrites) { MockRead data_reads[] = { MockRead(true, kSOCKS5GreetResponse, arraysize(kSOCKS5GreetResponse)), MockRead(true, kSOCKS5OkResponse, arraysize(kSOCKS5OkResponse)) }; - user_sock_.reset(BuildMockSocket(data_reads, data_writes, hostname, 80)); + user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes), + hostname, 80)); scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); int rv = user_sock_->Connect(&callback_, log); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -302,7 +318,9 @@ TEST_F(SOCKS5ClientSocketTest, PartialReadWrites) { arraysize(kSOCKS5OkResponse) - kSplitPoint) }; - user_sock_.reset(BuildMockSocket(data_reads, data_writes, hostname, 80)); + user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes), + hostname, 80)); scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); int rv = user_sock_->Connect(&callback_, log); EXPECT_EQ(ERR_IO_PENDING, rv); diff --git a/net/socket/socks_client_socket_unittest.cc b/net/socket/socks_client_socket_unittest.cc index b3bb11a..fb1ad82 100644 --- a/net/socket/socks_client_socket_unittest.cc +++ b/net/socket/socks_client_socket_unittest.cc @@ -29,7 +29,8 @@ class SOCKSClientSocketTest : public PlatformTest { public: SOCKSClientSocketTest(); // Create a SOCKSClientSocket on top of a MockSocket. - SOCKSClientSocket* BuildMockSocket(MockRead reads[], MockWrite writes[], + SOCKSClientSocket* BuildMockSocket(MockRead reads[], size_t reads_count, + MockWrite writes[], size_t writes_count, HostResolver* host_resolver, const std::string& hostname, int port); virtual void SetUp(); @@ -57,13 +58,16 @@ void SOCKSClientSocketTest::SetUp() { SOCKSClientSocket* SOCKSClientSocketTest::BuildMockSocket( MockRead reads[], + size_t reads_count, MockWrite writes[], + size_t writes_count, HostResolver* host_resolver, const std::string& hostname, int port) { TestCompletionCallback callback; - data_.reset(new StaticSocketDataProvider(reads, writes)); + data_.reset(new StaticSocketDataProvider(reads, reads_count, + writes, writes_count)); tcp_sock_ = new MockTCPClientSocket(address_list_, data_.get()); int rv = tcp_sock_->Connect(&callback, NULL); @@ -126,8 +130,9 @@ TEST_F(SOCKSClientSocketTest, CompleteHandshake) { MockRead(true, kSOCKSOkReply, arraysize(kSOCKSOkReply)), MockRead(true, payload_read.data(), payload_read.size()) }; - user_sock_.reset(BuildMockSocket(data_reads, data_writes, host_resolver_, - "localhost", 80)); + user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes), + host_resolver_, "localhost", 80)); // At this state the TCP connection is completed but not the SOCKS handshake. EXPECT_TRUE(tcp_sock_->IsConnected()); @@ -192,8 +197,9 @@ TEST_F(SOCKSClientSocketTest, HandshakeFailures) { MockRead data_reads[] = { MockRead(false, tests[i].fail_reply, arraysize(tests[i].fail_reply)) }; - user_sock_.reset(BuildMockSocket(data_reads, data_writes, host_resolver_, - "localhost", 80)); + user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes), + host_resolver_, "localhost", 80)); scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); int rv = user_sock_->Connect(&callback_, log); @@ -219,8 +225,9 @@ TEST_F(SOCKSClientSocketTest, PartialServerReads) { MockRead(true, kSOCKSPartialReply1, arraysize(kSOCKSPartialReply1)), MockRead(true, kSOCKSPartialReply2, arraysize(kSOCKSPartialReply2)) }; - user_sock_.reset(BuildMockSocket(data_reads, data_writes, host_resolver_, - "localhost", 80)); + user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes), + host_resolver_, "localhost", 80)); scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); int rv = user_sock_->Connect(&callback_, log); @@ -249,8 +256,9 @@ TEST_F(SOCKSClientSocketTest, PartialClientWrites) { MockRead data_reads[] = { MockRead(true, kSOCKSOkReply, arraysize(kSOCKSOkReply)) }; - user_sock_.reset(BuildMockSocket(data_reads, data_writes, host_resolver_, - "localhost", 80)); + user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes), + host_resolver_, "localhost", 80)); scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); int rv = user_sock_->Connect(&callback_, log); @@ -272,8 +280,9 @@ TEST_F(SOCKSClientSocketTest, FailedSocketRead) { // close connection unexpectedly MockRead(false, 0) }; - user_sock_.reset(BuildMockSocket(data_reads, data_writes, host_resolver_, - "localhost", 80)); + user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes), + host_resolver_, "localhost", 80)); scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); int rv = user_sock_->Connect(&callback_, log); @@ -300,8 +309,9 @@ TEST_F(SOCKSClientSocketTest, SOCKS4AFailedDNS) { MockRead data_reads[] = { MockRead(false, kSOCKSOkReply, arraysize(kSOCKSOkReply)) }; - user_sock_.reset(BuildMockSocket(data_reads, data_writes, host_resolver_, - hostname, 80)); + user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes), + host_resolver_, hostname, 80)); scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); int rv = user_sock_->Connect(&callback_, log); @@ -330,8 +340,9 @@ TEST_F(SOCKSClientSocketTest, SOCKS4AIfDomainInIPv6) { MockRead data_reads[] = { MockRead(false, kSOCKSOkReply, arraysize(kSOCKSOkReply)) }; - user_sock_.reset(BuildMockSocket(data_reads, data_writes, host_resolver_, - hostname, 80)); + user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes), + host_resolver_, hostname, 80)); scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); int rv = user_sock_->Connect(&callback_, log); @@ -354,8 +365,9 @@ TEST_F(SOCKSClientSocketTest, DisconnectWhileHostResolveInProgress) { MockWrite data_writes[] = { MockWrite(false, "", 0) }; MockRead data_reads[] = { MockRead(false, "", 0) }; - user_sock_.reset(BuildMockSocket(data_reads, data_writes, hanging_resolver, - "foo", 80)); + user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes), + hanging_resolver, "foo", 80)); // Start connecting (will get stuck waiting for the host to resolve). int rv = user_sock_->Connect(&callback_, NULL); diff --git a/net/socket_stream/socket_stream_unittest.cc b/net/socket_stream/socket_stream_unittest.cc index 76d59e9..ae162a8 100644 --- a/net/socket_stream/socket_stream_unittest.cc +++ b/net/socket_stream/socket_stream_unittest.cc @@ -160,7 +160,8 @@ TEST_F(SocketStreamTest, BasicAuthProxy) { MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"), MockRead("\r\n"), }; - StaticSocketDataProvider data1(data_reads1, data_writes1); + StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), + data_writes1, arraysize(data_writes1)); mock_socket_factory.AddSocketDataProvider(&data1); MockWrite data_writes2[] = { @@ -174,7 +175,8 @@ TEST_F(SocketStreamTest, BasicAuthProxy) { MockRead("Proxy-agent: Apache/2.2.8\r\n"), MockRead("\r\n"), }; - StaticSocketDataProvider data2(data_reads2, data_writes2); + StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), + data_writes2, arraysize(data_writes2)); mock_socket_factory.AddSocketDataProvider(&data2); TestCompletionCallback callback; diff --git a/net/spdy/spdy_network_transaction_unittest.cc b/net/spdy/spdy_network_transaction_unittest.cc index 340bd13..805de3c3 100644 --- a/net/spdy/spdy_network_transaction_unittest.cc +++ b/net/spdy/spdy_network_transaction_unittest.cc @@ -84,7 +84,7 @@ HttpNetworkSession* CreateSession(SessionDependencies* session_deps) { // |length| is the length of the frame to chop. // |num_chunks| is the number of chunks to create. MockWrite* ChopFrame(const char* data, int length, int num_chunks) { - MockWrite* chunks = new MockWrite[num_chunks + 1]; + MockWrite* chunks = new MockWrite[num_chunks]; int chunk_size = length / num_chunks; for (int index = 0; index < num_chunks; index++) { const char* ptr = data + (index * chunk_size); @@ -92,7 +92,6 @@ MockWrite* ChopFrame(const char* data, int length, int num_chunks) { chunk_size += length % chunk_size; // The last chunk takes the remainder. chunks[index] = MockWrite(true, ptr, chunk_size); } - chunks[num_chunks] = MockWrite(true, 0, 0); return chunks; } @@ -198,15 +197,17 @@ static const unsigned char kPostBodyFrame[] = { class DelayedSocketData : public StaticSocketDataProvider, public base::RefCounted<DelayedSocketData> { public: - // |reads| the list of MockRead completions. // |write_delay| the number of MockWrites to complete before allowing // a MockRead to complete. + // |reads| the list of MockRead completions. // |writes| the list of MockWrite completions. // Note: All MockReads and MockWrites must be async. // Note: The MockRead and MockWrite lists musts end with a EOF // e.g. a MockRead(true, 0, 0); - DelayedSocketData(MockRead* reads, int write_delay, MockWrite* writes) - : StaticSocketDataProvider(reads, writes), + DelayedSocketData(int write_delay, + MockRead* reads, size_t reads_count, + MockWrite* writes, size_t writes_count) + : StaticSocketDataProvider(reads, reads_count, writes, writes_count), write_delay_(write_delay), ALLOW_THIS_IN_INITIALIZER_LIST(factory_(this)) { DCHECK_GE(write_delay_, 0); @@ -220,9 +221,10 @@ class DelayedSocketData : public StaticSocketDataProvider, // Note: All MockReads and MockWrites must be async. // Note: The MockRead and MockWrite lists musts end with a EOF // e.g. a MockRead(true, 0, 0); - DelayedSocketData(const MockConnect& connect, MockRead* reads, - int write_delay, MockWrite* writes) - : StaticSocketDataProvider(reads, writes), + DelayedSocketData(const MockConnect& connect, int write_delay, + MockRead* reads, size_t reads_count, + MockWrite* writes, size_t writes_count) + : StaticSocketDataProvider(reads, reads_count, writes, writes_count), write_delay_(write_delay), ALLOW_THIS_IN_INITIALIZER_LIST(factory_(this)) { DCHECK_GE(write_delay_, 0); @@ -345,7 +347,6 @@ TEST_F(SpdyNetworkTransactionTest, Get) { MockWrite writes[] = { MockWrite(true, reinterpret_cast<const char*>(kGetSyn), arraysize(kGetSyn)), - MockWrite(true, 0, 0) // EOF }; MockRead reads[] = { @@ -361,7 +362,8 @@ TEST_F(SpdyNetworkTransactionTest, Get) { request.url = GURL("http://www.google.com/"); request.load_flags = 0; scoped_refptr<DelayedSocketData> data( - new DelayedSocketData(reads, 1, writes)); + new DelayedSocketData(1, reads, arraysize(reads), + writes, arraysize(writes))); TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); EXPECT_EQ(OK, out.rv); EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); @@ -384,7 +386,6 @@ TEST_F(SpdyNetworkTransactionTest, Post) { arraysize(kPostSyn)), MockWrite(true, reinterpret_cast<const char*>(kPostUploadFrame), arraysize(kPostUploadFrame)), - MockWrite(true, 0, 0) // EOF }; MockRead reads[] = { @@ -396,7 +397,8 @@ TEST_F(SpdyNetworkTransactionTest, Post) { }; scoped_refptr<DelayedSocketData> data( - new DelayedSocketData(reads, 2, writes)); + new DelayedSocketData(2, reads, arraysize(reads), + writes, arraysize(writes))); TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); EXPECT_EQ(OK, out.rv); EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); @@ -430,7 +432,6 @@ static const unsigned char kEmptyPostSyn[] = { MockWrite writes[] = { MockWrite(true, reinterpret_cast<const char*>(kEmptyPostSyn), arraysize(kEmptyPostSyn)), - MockWrite(true, 0, 0) // EOF }; MockRead reads[] = { @@ -442,7 +443,8 @@ static const unsigned char kEmptyPostSyn[] = { }; scoped_refptr<DelayedSocketData> data( - new DelayedSocketData(reads, 1, writes)); + new DelayedSocketData(1, reads, arraysize(reads), + writes, arraysize(writes))); TransactionHelperResult out = TransactionHelper(request, data, NULL); EXPECT_EQ(OK, out.rv); @@ -463,7 +465,7 @@ TEST_F(SpdyNetworkTransactionTest, ResponseWithoutSynReply) { request.url = GURL("http://www.google.com/"); request.load_flags = 0; scoped_refptr<DelayedSocketData> data( - new DelayedSocketData(reads, 1, NULL)); + new DelayedSocketData(1, reads, arraysize(reads), NULL, 0)); TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv); } @@ -497,7 +499,8 @@ TEST_F(SpdyNetworkTransactionTest, CancelledTransaction) { scoped_ptr<SpdyNetworkTransaction> trans( new SpdyNetworkTransaction(CreateSession(&session_deps))); - StaticSocketDataProvider data(reads, writes); + StaticSocketDataProvider data(reads, arraysize(reads), + writes, arraysize(writes)); session_deps.socket_factory.AddSocketDataProvider(&data); TestCompletionCallback callback; @@ -595,7 +598,6 @@ TEST_F(SpdyNetworkTransactionTest, SynReplyHeaders) { MockWrite writes[] = { MockWrite(true, reinterpret_cast<const char*>(kGetSyn), arraysize(kGetSyn)), - MockWrite(true, 0, 0) // EOF }; MockRead reads[] = { @@ -611,7 +613,8 @@ TEST_F(SpdyNetworkTransactionTest, SynReplyHeaders) { request.url = GURL("http://www.google.com/"); request.load_flags = 0; scoped_refptr<DelayedSocketData> data( - new DelayedSocketData(reads, 1, writes)); + new DelayedSocketData(1, reads, arraysize(reads), + writes, arraysize(writes))); TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); EXPECT_EQ(OK, out.rv); EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); @@ -686,7 +689,8 @@ TEST_F(SpdyNetworkTransactionTest, InvalidSynReply) { request.url = GURL("http://www.google.com/"); request.load_flags = 0; scoped_refptr<DelayedSocketData> data( - new DelayedSocketData(reads, 1, writes)); + new DelayedSocketData(1, reads, arraysize(reads), + writes, arraysize(writes))); TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); EXPECT_EQ(ERR_INVALID_RESPONSE, out.rv); } @@ -732,7 +736,8 @@ TEST_F(SpdyNetworkTransactionTest, CorruptFrameSessionError) { request.url = GURL("http://www.google.com/"); request.load_flags = 0; scoped_refptr<DelayedSocketData> data( - new DelayedSocketData(reads, 1, writes)); + new DelayedSocketData(1, reads, arraysize(reads), + writes, arraysize(writes))); TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv); } @@ -784,7 +789,6 @@ TEST_F(SpdyNetworkTransactionTest, ServerPush) { MockWrite writes[] = { MockWrite(true, reinterpret_cast<const char*>(kGetSyn), arraysize(kGetSyn)), - MockWrite(true, 0, 0) // EOF }; MockRead reads[] = { @@ -821,7 +825,8 @@ TEST_F(SpdyNetworkTransactionTest, ServerPush) { SessionDependencies session_deps; scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps)); scoped_refptr<DelayedSocketData> data( - new DelayedSocketData(reads, 1, writes)); + new DelayedSocketData(1, reads, arraysize(reads), + writes, arraysize(writes))); session_deps.socket_factory.AddSocketDataProvider(data.get()); // Issue the first request @@ -918,7 +923,8 @@ TEST_F(SpdyNetworkTransactionTest, WriteError) { request.url = GURL("http://www.google.com/"); request.load_flags = 0; scoped_refptr<DelayedSocketData> data( - new DelayedSocketData(reads, 2, writes)); + new DelayedSocketData(2, reads, arraysize(reads), + writes, arraysize(writes))); TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); EXPECT_EQ(ERR_FAILED, out.rv); data->Reset(); @@ -944,7 +950,8 @@ TEST_F(SpdyNetworkTransactionTest, PartialWrite) { request.url = GURL("http://www.google.com/"); request.load_flags = 0; scoped_refptr<DelayedSocketData> data( - new DelayedSocketData(reads, kChunks, writes.get())); + new DelayedSocketData(kChunks, reads, arraysize(reads), + writes.get(), kChunks)); TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); EXPECT_EQ(OK, out.rv); EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); @@ -979,7 +986,8 @@ TEST_F(SpdyNetworkTransactionTest, DISABLED_ConnectFailure) { request.url = GURL("http://www.google.com/"); request.load_flags = 0; scoped_refptr<DelayedSocketData> data( - new DelayedSocketData(connects[index], reads, 1, writes)); + new DelayedSocketData(connects[index], 1, reads, arraysize(reads), + writes, arraysize(writes))); TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); EXPECT_EQ(connects[index].result, out.rv); } @@ -1010,7 +1018,8 @@ TEST_F(SpdyNetworkTransactionTest, DecompressFailureOnSynReply) { request.url = GURL("http://www.google.com/"); request.load_flags = 0; scoped_refptr<DelayedSocketData> data( - new DelayedSocketData(reads, 1, writes)); + new DelayedSocketData(1, reads, arraysize(reads), + writes, arraysize(writes))); TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv); data->Reset(); @@ -1023,7 +1032,6 @@ TEST_F(SpdyNetworkTransactionTest, LoadLog) { MockWrite writes[] = { MockWrite(true, reinterpret_cast<const char*>(kGetSyn), arraysize(kGetSyn)), - MockWrite(true, 0, 0) // EOF }; MockRead reads[] = { @@ -1041,7 +1049,8 @@ TEST_F(SpdyNetworkTransactionTest, LoadLog) { request.url = GURL("http://www.google.com/"); request.load_flags = 0; scoped_refptr<DelayedSocketData> data( - new DelayedSocketData(reads, 1, writes)); + new DelayedSocketData(1, reads, arraysize(reads), + writes, arraysize(writes))); TransactionHelperResult out = TransactionHelper(request, data.get(), log); EXPECT_EQ(OK, out.rv); diff --git a/net/websockets/websocket_unittest.cc b/net/websockets/websocket_unittest.cc index e3c5725..7ed42f9 100644 --- a/net/websockets/websocket_unittest.cc +++ b/net/websockets/websocket_unittest.cc @@ -148,7 +148,8 @@ TEST_F(WebSocketTest, Connect) { "WebSocket-Protocol: sample\r\n" "\r\n"), }; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); mock_socket_factory.AddSocketDataProvider(&data); WebSocket::Request* request( @@ -208,7 +209,8 @@ TEST_F(WebSocketTest, ServerSentData) { "WebSocket-Protocol: sample\r\n" "\r\n"), }; - StaticSocketDataProvider data(data_reads, data_writes); + StaticSocketDataProvider data(data_reads, arraysize(data_reads), + data_writes, arraysize(data_writes)); mock_socket_factory.AddSocketDataProvider(&data); WebSocket::Request* request( |