Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(271)

Side by Side Diff: net/quic/quic_network_transaction_unittest.cc

Issue 1534993003: Remove use of DeterministicSocketData from QUIC tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge... Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | net/quic/quic_stream_factory_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <vector> 5 #include <vector>
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/run_loop.h"
10 #include "base/stl_util.h" 11 #include "base/stl_util.h"
11 #include "base/strings/stringprintf.h" 12 #include "base/strings/stringprintf.h"
12 #include "net/base/network_quality_estimator.h" 13 #include "net/base/network_quality_estimator.h"
13 #include "net/base/socket_performance_watcher.h" 14 #include "net/base/socket_performance_watcher.h"
14 #include "net/base/test_completion_callback.h" 15 #include "net/base/test_completion_callback.h"
15 #include "net/base/test_data_directory.h" 16 #include "net/base/test_data_directory.h"
16 #include "net/cert/mock_cert_verifier.h" 17 #include "net/cert/mock_cert_verifier.h"
17 #include "net/cert/multi_log_ct_verifier.h" 18 #include "net/cert/multi_log_ct_verifier.h"
18 #include "net/dns/mock_host_resolver.h" 19 #include "net/dns/mock_host_resolver.h"
19 #include "net/http/http_auth_handler_factory.h" 20 #include "net/http/http_auth_handler_factory.h"
(...skipping 1299 matching lines...) Expand 10 before | Expand all | Expand 10 after
1319 MockWrite http_writes[] = { 1320 MockWrite http_writes[] = {
1320 MockWrite(SYNCHRONOUS, 0, "GET / HTTP/1.1\r\n"), 1321 MockWrite(SYNCHRONOUS, 0, "GET / HTTP/1.1\r\n"),
1321 MockWrite(SYNCHRONOUS, 1, "Host: mail.example.com\r\n"), 1322 MockWrite(SYNCHRONOUS, 1, "Host: mail.example.com\r\n"),
1322 MockWrite(SYNCHRONOUS, 2, "Connection: keep-alive\r\n\r\n")}; 1323 MockWrite(SYNCHRONOUS, 2, "Connection: keep-alive\r\n\r\n")};
1323 1324
1324 MockRead http_reads[] = { 1325 MockRead http_reads[] = {
1325 MockRead(SYNCHRONOUS, 3, "HTTP/1.1 200 OK\r\n"), 1326 MockRead(SYNCHRONOUS, 3, "HTTP/1.1 200 OK\r\n"),
1326 MockRead(SYNCHRONOUS, 4, kQuicAlternateProtocolHeader), 1327 MockRead(SYNCHRONOUS, 4, kQuicAlternateProtocolHeader),
1327 MockRead(SYNCHRONOUS, 5, "hello world"), MockRead(SYNCHRONOUS, OK, 6)}; 1328 MockRead(SYNCHRONOUS, 5, "hello world"), MockRead(SYNCHRONOUS, OK, 6)};
1328 1329
1329 DeterministicMockClientSocketFactory socket_factory; 1330 MockClientSocketFactory socket_factory;
1330 1331
1331 DeterministicSocketData http_data(http_reads, arraysize(http_reads), 1332 SequencedSocketData http_data(http_reads, arraysize(http_reads), http_writes,
1332 http_writes, arraysize(http_writes)); 1333 arraysize(http_writes));
1333 socket_factory.AddSocketDataProvider(&http_data); 1334 socket_factory.AddSocketDataProvider(&http_data);
1334 socket_factory.AddSSLSocketDataProvider(&ssl_data_); 1335 socket_factory.AddSSLSocketDataProvider(&ssl_data_);
1335 1336
1336 // The QUIC transaction will not be allowed to complete. 1337 // The QUIC transaction will not be allowed to complete.
1337 MockWrite quic_writes[] = {MockWrite(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1338 MockWrite quic_writes[] = {MockWrite(SYNCHRONOUS, ERR_IO_PENDING, 1)};
1338 MockRead quic_reads[] = { 1339 MockRead quic_reads[] = {
1339 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 1), 1340 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0),
1340 }; 1341 };
1341 DeterministicSocketData quic_data(quic_reads, arraysize(quic_reads), 1342 SequencedSocketData quic_data(quic_reads, arraysize(quic_reads), quic_writes,
1342 quic_writes, arraysize(quic_writes)); 1343 arraysize(quic_writes));
1343 socket_factory.AddSocketDataProvider(&quic_data); 1344 socket_factory.AddSocketDataProvider(&quic_data);
1344 1345
1345 // The HTTP transaction will complete. 1346 // The HTTP transaction will complete.
1346 DeterministicSocketData http_data2(http_reads, arraysize(http_reads), 1347 SequencedSocketData http_data2(http_reads, arraysize(http_reads), http_writes,
1347 http_writes, arraysize(http_writes)); 1348 arraysize(http_writes));
1348 socket_factory.AddSocketDataProvider(&http_data2); 1349 socket_factory.AddSocketDataProvider(&http_data2);
1349 socket_factory.AddSSLSocketDataProvider(&ssl_data_); 1350 socket_factory.AddSSLSocketDataProvider(&ssl_data_);
1350 1351
1351 CreateSessionWithFactory(&socket_factory, true); 1352 CreateSessionWithFactory(&socket_factory, true);
1352 1353
1353 // Run the first request. 1354 // Run the first request.
1354 http_data.StopAfter(arraysize(http_reads) + arraysize(http_writes));
1355 SendRequestAndExpectHttpResponse("hello world"); 1355 SendRequestAndExpectHttpResponse("hello world");
1356 ASSERT_TRUE(http_data.AllReadDataConsumed()); 1356 ASSERT_TRUE(http_data.AllReadDataConsumed());
1357 ASSERT_TRUE(http_data.AllWriteDataConsumed()); 1357 ASSERT_TRUE(http_data.AllWriteDataConsumed());
1358 1358
1359 // Now run the second request in which the QUIC socket hangs, 1359 // Now run the second request in which the QUIC socket hangs,
1360 // and verify the the transaction continues over HTTP. 1360 // and verify the the transaction continues over HTTP.
1361 http_data2.StopAfter(arraysize(http_reads) + arraysize(http_writes));
1362 SendRequestAndExpectHttpResponse("hello world"); 1361 SendRequestAndExpectHttpResponse("hello world");
1362 base::RunLoop().RunUntilIdle();
1363 1363
1364 ASSERT_TRUE(http_data2.AllReadDataConsumed()); 1364 ASSERT_TRUE(http_data2.AllReadDataConsumed());
1365 ASSERT_TRUE(http_data2.AllWriteDataConsumed()); 1365 ASSERT_TRUE(http_data2.AllWriteDataConsumed());
1366 ASSERT_TRUE(!quic_data.AllReadDataConsumed()); 1366 ASSERT_TRUE(quic_data.AllReadDataConsumed());
1367 ASSERT_TRUE(!quic_data.AllWriteDataConsumed());
1368 } 1367 }
1369 1368
1370 TEST_P(QuicNetworkTransactionTest, ZeroRTTWithHttpRace) { 1369 TEST_P(QuicNetworkTransactionTest, ZeroRTTWithHttpRace) {
1371 MockQuicData mock_quic_data; 1370 MockQuicData mock_quic_data;
1372 mock_quic_data.AddWrite( 1371 mock_quic_data.AddWrite(
1373 ConstructRequestHeadersPacket(1, kClientDataStreamId1, true, true, 1372 ConstructRequestHeadersPacket(1, kClientDataStreamId1, true, true,
1374 GetRequestHeaders("GET", "https", "/"))); 1373 GetRequestHeaders("GET", "https", "/")));
1375 mock_quic_data.AddRead(ConstructResponseHeadersPacket( 1374 mock_quic_data.AddRead(ConstructResponseHeadersPacket(
1376 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); 1375 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
1377 mock_quic_data.AddRead( 1376 mock_quic_data.AddRead(
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
1840 request_.url = GURL("https://www.example.org:443"); 1839 request_.url = GURL("https://www.example.org:443");
1841 AddHangingNonAlternateProtocolSocketData(); 1840 AddHangingNonAlternateProtocolSocketData();
1842 CreateSessionWithNextProtos(); 1841 CreateSessionWithNextProtos();
1843 AddQuicAlternateProtocolMapping(MockCryptoClientStream::CONFIRM_HANDSHAKE); 1842 AddQuicAlternateProtocolMapping(MockCryptoClientStream::CONFIRM_HANDSHAKE);
1844 SendRequestAndExpectQuicResponse("hello!"); 1843 SendRequestAndExpectQuicResponse("hello!");
1845 EXPECT_TRUE(rtt_observer_.rtt_notification_received()); 1844 EXPECT_TRUE(rtt_observer_.rtt_notification_received());
1846 } 1845 }
1847 1846
1848 } // namespace test 1847 } // namespace test
1849 } // namespace net 1848 } // namespace net
OLDNEW
« no previous file with comments | « no previous file | net/quic/quic_stream_factory_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698