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

Side by Side Diff: net/http/http_network_transaction_spdy2_unittest.cc

Issue 9959033: Move NextProto enum to a new file net/socket/next_proto.h (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address wtc's comments Created 8 years, 8 months 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 | Annotate | Revision Log
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 "net/http/http_network_transaction.h" 5 #include "net/http/http_network_transaction.h"
6 6
7 #include <math.h> // ceil 7 #include <math.h> // ceil
8 #include <stdarg.h> 8 #include <stdarg.h>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 167
168 class HttpNetworkTransactionSpdy2Test : public PlatformTest { 168 class HttpNetworkTransactionSpdy2Test : public PlatformTest {
169 protected: 169 protected:
170 struct SimpleGetHelperResult { 170 struct SimpleGetHelperResult {
171 int rv; 171 int rv;
172 std::string status_line; 172 std::string status_line;
173 std::string response_data; 173 std::string response_data;
174 }; 174 };
175 175
176 virtual void SetUp() { 176 virtual void SetUp() {
177 SpdySession::set_default_protocol(SSLClientSocket::kProtoSPDY2); 177 SpdySession::set_default_protocol(kProtoSPDY2);
178 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests(); 178 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests();
179 MessageLoop::current()->RunAllPending(); 179 MessageLoop::current()->RunAllPending();
180 } 180 }
181 181
182 virtual void TearDown() { 182 virtual void TearDown() {
183 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests(); 183 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests();
184 MessageLoop::current()->RunAllPending(); 184 MessageLoop::current()->RunAllPending();
185 // Empty the current queue. 185 // Empty the current queue.
186 MessageLoop::current()->RunAllPending(); 186 MessageLoop::current()->RunAllPending();
187 PlatformTest::TearDown(); 187 PlatformTest::TearDown();
(...skipping 1975 matching lines...) Expand 10 before | Expand all | Expand 10 after
2163 }; 2163 };
2164 2164
2165 scoped_ptr<DelayedSocketData> spdy_data( 2165 scoped_ptr<DelayedSocketData> spdy_data(
2166 new DelayedSocketData( 2166 new DelayedSocketData(
2167 1, // wait for one write to finish before reading. 2167 1, // wait for one write to finish before reading.
2168 spdy_reads, arraysize(spdy_reads), 2168 spdy_reads, arraysize(spdy_reads),
2169 spdy_writes, arraysize(spdy_writes))); 2169 spdy_writes, arraysize(spdy_writes)));
2170 session_deps.socket_factory.AddSocketDataProvider(spdy_data.get()); 2170 session_deps.socket_factory.AddSocketDataProvider(spdy_data.get());
2171 2171
2172 SSLSocketDataProvider ssl(ASYNC, OK); 2172 SSLSocketDataProvider ssl(ASYNC, OK);
2173 ssl.SetNextProto(SSLClientSocket::kProtoSPDY2); 2173 ssl.SetNextProto(kProtoSPDY2);
2174 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 2174 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
2175 2175
2176 TestCompletionCallback callback1; 2176 TestCompletionCallback callback1;
2177 2177
2178 scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session)); 2178 scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
2179 2179
2180 int rv = trans->Start(&request, callback1.callback(), log.bound()); 2180 int rv = trans->Start(&request, callback1.callback(), log.bound());
2181 EXPECT_EQ(ERR_IO_PENDING, rv); 2181 EXPECT_EQ(ERR_IO_PENDING, rv);
2182 2182
2183 rv = callback1.WaitForResult(); 2183 rv = callback1.WaitForResult();
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
2247 CreateMockRead(*body_data, 6), 2247 CreateMockRead(*body_data, 6),
2248 MockRead(ASYNC, 0, 7), 2248 MockRead(ASYNC, 0, 7),
2249 }; 2249 };
2250 2250
2251 scoped_ptr<OrderedSocketData> data( 2251 scoped_ptr<OrderedSocketData> data(
2252 new OrderedSocketData(spdy_reads, arraysize(spdy_reads), 2252 new OrderedSocketData(spdy_reads, arraysize(spdy_reads),
2253 spdy_writes, arraysize(spdy_writes))); 2253 spdy_writes, arraysize(spdy_writes)));
2254 session_deps.socket_factory.AddSocketDataProvider(data.get()); 2254 session_deps.socket_factory.AddSocketDataProvider(data.get());
2255 2255
2256 SSLSocketDataProvider ssl(ASYNC, OK); 2256 SSLSocketDataProvider ssl(ASYNC, OK);
2257 ssl.SetNextProto(SSLClientSocket::kProtoSPDY2); 2257 ssl.SetNextProto(kProtoSPDY2);
2258 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 2258 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
2259 2259
2260 TestCompletionCallback callback1; 2260 TestCompletionCallback callback1;
2261 2261
2262 scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session)); 2262 scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
2263 2263
2264 int rv = trans->Start(&request, callback1.callback(), log.bound()); 2264 int rv = trans->Start(&request, callback1.callback(), log.bound());
2265 EXPECT_EQ(ERR_IO_PENDING, rv); 2265 EXPECT_EQ(ERR_IO_PENDING, rv);
2266 2266
2267 rv = callback1.WaitForResult(); 2267 rv = callback1.WaitForResult();
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
2342 MockRead(ASYNC, 0, 8), 2342 MockRead(ASYNC, 0, 8),
2343 }; 2343 };
2344 2344
2345 scoped_ptr<OrderedSocketData> spdy_data( 2345 scoped_ptr<OrderedSocketData> spdy_data(
2346 new OrderedSocketData( 2346 new OrderedSocketData(
2347 spdy_reads, arraysize(spdy_reads), 2347 spdy_reads, arraysize(spdy_reads),
2348 spdy_writes, arraysize(spdy_writes))); 2348 spdy_writes, arraysize(spdy_writes)));
2349 session_deps.socket_factory.AddSocketDataProvider(spdy_data.get()); 2349 session_deps.socket_factory.AddSocketDataProvider(spdy_data.get());
2350 2350
2351 SSLSocketDataProvider ssl(ASYNC, OK); 2351 SSLSocketDataProvider ssl(ASYNC, OK);
2352 ssl.SetNextProto(SSLClientSocket::kProtoSPDY2); 2352 ssl.SetNextProto(kProtoSPDY2);
2353 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 2353 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
2354 SSLSocketDataProvider ssl2(ASYNC, OK); 2354 SSLSocketDataProvider ssl2(ASYNC, OK);
2355 ssl2.was_npn_negotiated = false; 2355 ssl2.was_npn_negotiated = false;
2356 ssl2.protocol_negotiated = SSLClientSocket::kProtoUnknown; 2356 ssl2.protocol_negotiated = kProtoUnknown;
2357 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl2); 2357 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl2);
2358 2358
2359 TestCompletionCallback callback1; 2359 TestCompletionCallback callback1;
2360 2360
2361 int rv = trans->Start(&request, callback1.callback(), log.bound()); 2361 int rv = trans->Start(&request, callback1.callback(), log.bound());
2362 EXPECT_EQ(ERR_IO_PENDING, rv); 2362 EXPECT_EQ(ERR_IO_PENDING, rv);
2363 2363
2364 rv = callback1.WaitForResult(); 2364 rv = callback1.WaitForResult();
2365 EXPECT_EQ(OK, rv); 2365 EXPECT_EQ(OK, rv);
2366 2366
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
2421 MockRead(ASYNC, 0, 8), 2421 MockRead(ASYNC, 0, 8),
2422 }; 2422 };
2423 2423
2424 scoped_ptr<OrderedSocketData> spdy_data( 2424 scoped_ptr<OrderedSocketData> spdy_data(
2425 new OrderedSocketData( 2425 new OrderedSocketData(
2426 spdy_reads, arraysize(spdy_reads), 2426 spdy_reads, arraysize(spdy_reads),
2427 spdy_writes, arraysize(spdy_writes))); 2427 spdy_writes, arraysize(spdy_writes)));
2428 session_deps.socket_factory.AddSocketDataProvider(spdy_data.get()); 2428 session_deps.socket_factory.AddSocketDataProvider(spdy_data.get());
2429 2429
2430 SSLSocketDataProvider ssl(ASYNC, OK); 2430 SSLSocketDataProvider ssl(ASYNC, OK);
2431 ssl.SetNextProto(SSLClientSocket::kProtoSPDY2); 2431 ssl.SetNextProto(kProtoSPDY2);
2432 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 2432 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
2433 SSLSocketDataProvider ssl2(ASYNC, OK); 2433 SSLSocketDataProvider ssl2(ASYNC, OK);
2434 ssl2.SetNextProto(SSLClientSocket::kProtoSPDY2); 2434 ssl2.SetNextProto(kProtoSPDY2);
2435 ssl2.protocol_negotiated = SSLClientSocket::kProtoSPDY2; 2435 ssl2.protocol_negotiated = kProtoSPDY2;
2436 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl2); 2436 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl2);
2437 2437
2438 TestCompletionCallback callback1; 2438 TestCompletionCallback callback1;
2439 2439
2440 int rv = trans->Start(&request, callback1.callback(), log.bound()); 2440 int rv = trans->Start(&request, callback1.callback(), log.bound());
2441 EXPECT_EQ(ERR_IO_PENDING, rv); 2441 EXPECT_EQ(ERR_IO_PENDING, rv);
2442 2442
2443 rv = callback1.WaitForResult(); 2443 rv = callback1.WaitForResult();
2444 EXPECT_EQ(OK, rv); 2444 EXPECT_EQ(OK, rv);
2445 2445
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
2485 MockRead(ASYNC, 0, 4), 2485 MockRead(ASYNC, 0, 4),
2486 }; 2486 };
2487 2487
2488 scoped_ptr<OrderedSocketData> spdy_data( 2488 scoped_ptr<OrderedSocketData> spdy_data(
2489 new OrderedSocketData( 2489 new OrderedSocketData(
2490 spdy_reads, arraysize(spdy_reads), 2490 spdy_reads, arraysize(spdy_reads),
2491 spdy_writes, arraysize(spdy_writes))); 2491 spdy_writes, arraysize(spdy_writes)));
2492 session_deps.socket_factory.AddSocketDataProvider(spdy_data.get()); 2492 session_deps.socket_factory.AddSocketDataProvider(spdy_data.get());
2493 2493
2494 SSLSocketDataProvider ssl(ASYNC, OK); 2494 SSLSocketDataProvider ssl(ASYNC, OK);
2495 ssl.SetNextProto(SSLClientSocket::kProtoSPDY2); 2495 ssl.SetNextProto(kProtoSPDY2);
2496 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 2496 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
2497 SSLSocketDataProvider ssl2(ASYNC, OK); 2497 SSLSocketDataProvider ssl2(ASYNC, OK);
2498 ssl2.SetNextProto(SSLClientSocket::kProtoSPDY2); 2498 ssl2.SetNextProto(kProtoSPDY2);
2499 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl2); 2499 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl2);
2500 2500
2501 TestCompletionCallback callback1; 2501 TestCompletionCallback callback1;
2502 2502
2503 int rv = trans->Start(&request, callback1.callback(), log.bound()); 2503 int rv = trans->Start(&request, callback1.callback(), log.bound());
2504 EXPECT_EQ(ERR_IO_PENDING, rv); 2504 EXPECT_EQ(ERR_IO_PENDING, rv);
2505 2505
2506 rv = callback1.WaitForResult(); 2506 rv = callback1.WaitForResult();
2507 EXPECT_EQ(OK, rv); 2507 EXPECT_EQ(OK, rv);
2508 2508
(...skipping 2081 matching lines...) Expand 10 before | Expand all | Expand 10 after
4590 CreateMockRead(*resp.get(), 1, SYNCHRONOUS), 4590 CreateMockRead(*resp.get(), 1, SYNCHRONOUS),
4591 MockRead(ASYNC, 0, 2), // EOF 4591 MockRead(ASYNC, 0, 2), // EOF
4592 }; 4592 };
4593 4593
4594 scoped_ptr<DelayedSocketData> data( 4594 scoped_ptr<DelayedSocketData> data(
4595 new DelayedSocketData( 4595 new DelayedSocketData(
4596 1, // wait for one write to finish before reading. 4596 1, // wait for one write to finish before reading.
4597 data_reads, arraysize(data_reads), 4597 data_reads, arraysize(data_reads),
4598 data_writes, arraysize(data_writes))); 4598 data_writes, arraysize(data_writes)));
4599 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy 4599 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy
4600 proxy_ssl.SetNextProto(SSLClientSocket::kProtoSPDY2); 4600 proxy_ssl.SetNextProto(kProtoSPDY2);
4601 4601
4602 session_deps.socket_factory.AddSocketDataProvider(data.get()); 4602 session_deps.socket_factory.AddSocketDataProvider(data.get());
4603 session_deps.socket_factory.AddSSLSocketDataProvider(&proxy_ssl); 4603 session_deps.socket_factory.AddSSLSocketDataProvider(&proxy_ssl);
4604 4604
4605 TestCompletionCallback callback; 4605 TestCompletionCallback callback;
4606 4606
4607 scoped_ptr<HttpTransaction> trans( 4607 scoped_ptr<HttpTransaction> trans(
4608 new HttpNetworkTransaction(CreateSession(&session_deps))); 4608 new HttpNetworkTransaction(CreateSession(&session_deps)));
4609 4609
4610 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); 4610 int rv = trans->Start(&request, callback.callback(), BoundNetLog());
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
4709 CreateMockRead(*body.get(), 2, SYNCHRONOUS), 4709 CreateMockRead(*body.get(), 2, SYNCHRONOUS),
4710 MockRead(ASYNC, 0, 3), // EOF 4710 MockRead(ASYNC, 0, 3), // EOF
4711 }; 4711 };
4712 4712
4713 scoped_ptr<DelayedSocketData> data( 4713 scoped_ptr<DelayedSocketData> data(
4714 new DelayedSocketData( 4714 new DelayedSocketData(
4715 1, // wait for one write to finish before reading. 4715 1, // wait for one write to finish before reading.
4716 data_reads, arraysize(data_reads), 4716 data_reads, arraysize(data_reads),
4717 data_writes, arraysize(data_writes))); 4717 data_writes, arraysize(data_writes)));
4718 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy 4718 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy
4719 proxy_ssl.SetNextProto(SSLClientSocket::kProtoSPDY2); 4719 proxy_ssl.SetNextProto(kProtoSPDY2);
4720 4720
4721 session_deps.socket_factory.AddSocketDataProvider(data.get()); 4721 session_deps.socket_factory.AddSocketDataProvider(data.get());
4722 session_deps.socket_factory.AddSSLSocketDataProvider(&proxy_ssl); 4722 session_deps.socket_factory.AddSSLSocketDataProvider(&proxy_ssl);
4723 4723
4724 TestCompletionCallback callback; 4724 TestCompletionCallback callback;
4725 4725
4726 scoped_ptr<HttpTransaction> trans( 4726 scoped_ptr<HttpTransaction> trans(
4727 new HttpNetworkTransaction(CreateSession(&session_deps))); 4727 new HttpNetworkTransaction(CreateSession(&session_deps)));
4728 4728
4729 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); 4729 int rv = trans->Start(&request, callback.callback(), BoundNetLog());
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
4819 MockRead(SYNCHRONOUS, ERR_IO_PENDING), 4819 MockRead(SYNCHRONOUS, ERR_IO_PENDING),
4820 }; 4820 };
4821 4821
4822 scoped_ptr<OrderedSocketData> spdy_data( 4822 scoped_ptr<OrderedSocketData> spdy_data(
4823 new OrderedSocketData( 4823 new OrderedSocketData(
4824 spdy_reads, arraysize(spdy_reads), 4824 spdy_reads, arraysize(spdy_reads),
4825 spdy_writes, arraysize(spdy_writes))); 4825 spdy_writes, arraysize(spdy_writes)));
4826 session_deps.socket_factory.AddSocketDataProvider(spdy_data.get()); 4826 session_deps.socket_factory.AddSocketDataProvider(spdy_data.get());
4827 // Negotiate SPDY to the proxy 4827 // Negotiate SPDY to the proxy
4828 SSLSocketDataProvider proxy(ASYNC, OK); 4828 SSLSocketDataProvider proxy(ASYNC, OK);
4829 proxy.SetNextProto(SSLClientSocket::kProtoSPDY2); 4829 proxy.SetNextProto(kProtoSPDY2);
4830 session_deps.socket_factory.AddSSLSocketDataProvider(&proxy); 4830 session_deps.socket_factory.AddSSLSocketDataProvider(&proxy);
4831 // Vanilla SSL to the server 4831 // Vanilla SSL to the server
4832 SSLSocketDataProvider server(ASYNC, OK); 4832 SSLSocketDataProvider server(ASYNC, OK);
4833 session_deps.socket_factory.AddSSLSocketDataProvider(&server); 4833 session_deps.socket_factory.AddSSLSocketDataProvider(&server);
4834 4834
4835 TestCompletionCallback callback1; 4835 TestCompletionCallback callback1;
4836 4836
4837 scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session)); 4837 scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
4838 4838
4839 int rv = trans->Start(&request, callback1.callback(), log.bound()); 4839 int rv = trans->Start(&request, callback1.callback(), log.bound());
(...skipping 2070 matching lines...) Expand 10 before | Expand all | Expand 10 after
6910 MockRead(kAlternateProtocolHttpHeader), 6910 MockRead(kAlternateProtocolHttpHeader),
6911 MockRead("hello world"), 6911 MockRead("hello world"),
6912 MockRead(ASYNC, OK), 6912 MockRead(ASYNC, OK),
6913 }; 6913 };
6914 6914
6915 StaticSocketDataProvider first_transaction( 6915 StaticSocketDataProvider first_transaction(
6916 data_reads, arraysize(data_reads), NULL, 0); 6916 data_reads, arraysize(data_reads), NULL, 0);
6917 session_deps.socket_factory.AddSocketDataProvider(&first_transaction); 6917 session_deps.socket_factory.AddSocketDataProvider(&first_transaction);
6918 6918
6919 SSLSocketDataProvider ssl(ASYNC, OK); 6919 SSLSocketDataProvider ssl(ASYNC, OK);
6920 ssl.SetNextProto(SSLClientSocket::kProtoSPDY2); 6920 ssl.SetNextProto(kProtoSPDY2);
6921 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 6921 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
6922 6922
6923 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 6923 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
6924 MockWrite spdy_writes[] = { CreateMockWrite(*req) }; 6924 MockWrite spdy_writes[] = { CreateMockWrite(*req) };
6925 6925
6926 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 6926 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
6927 scoped_ptr<SpdyFrame> data(ConstructSpdyBodyFrame(1, true)); 6927 scoped_ptr<SpdyFrame> data(ConstructSpdyBodyFrame(1, true));
6928 MockRead spdy_reads[] = { 6928 MockRead spdy_reads[] = {
6929 CreateMockRead(*resp), 6929 CreateMockRead(*resp),
6930 CreateMockRead(*data), 6930 CreateMockRead(*data),
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
7009 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); 7009 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING);
7010 StaticSocketDataProvider hanging_socket( 7010 StaticSocketDataProvider hanging_socket(
7011 NULL, 0, NULL, 0); 7011 NULL, 0, NULL, 0);
7012 hanging_socket.set_connect_data(never_finishing_connect); 7012 hanging_socket.set_connect_data(never_finishing_connect);
7013 // Socket 2 and 3 are the hanging Alternate-Protocol and 7013 // Socket 2 and 3 are the hanging Alternate-Protocol and
7014 // non-Alternate-Protocol jobs from the 2nd transaction. 7014 // non-Alternate-Protocol jobs from the 2nd transaction.
7015 session_deps.socket_factory.AddSocketDataProvider(&hanging_socket); 7015 session_deps.socket_factory.AddSocketDataProvider(&hanging_socket);
7016 session_deps.socket_factory.AddSocketDataProvider(&hanging_socket); 7016 session_deps.socket_factory.AddSocketDataProvider(&hanging_socket);
7017 7017
7018 SSLSocketDataProvider ssl(ASYNC, OK); 7018 SSLSocketDataProvider ssl(ASYNC, OK);
7019 ssl.SetNextProto(SSLClientSocket::kProtoSPDY2); 7019 ssl.SetNextProto(kProtoSPDY2);
7020 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 7020 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
7021 7021
7022 scoped_ptr<SpdyFrame> req1(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 7022 scoped_ptr<SpdyFrame> req1(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
7023 scoped_ptr<SpdyFrame> req2(ConstructSpdyGet(NULL, 0, false, 3, LOWEST)); 7023 scoped_ptr<SpdyFrame> req2(ConstructSpdyGet(NULL, 0, false, 3, LOWEST));
7024 MockWrite spdy_writes[] = { 7024 MockWrite spdy_writes[] = {
7025 CreateMockWrite(*req1), 7025 CreateMockWrite(*req1),
7026 CreateMockWrite(*req2), 7026 CreateMockWrite(*req2),
7027 }; 7027 };
7028 scoped_ptr<SpdyFrame> resp1(ConstructSpdyGetSynReply(NULL, 0, 1)); 7028 scoped_ptr<SpdyFrame> resp1(ConstructSpdyGetSynReply(NULL, 0, 1));
7029 scoped_ptr<SpdyFrame> data1(ConstructSpdyBodyFrame(1, true)); 7029 scoped_ptr<SpdyFrame> data1(ConstructSpdyBodyFrame(1, true));
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
7115 MockRead(kAlternateProtocolHttpHeader), 7115 MockRead(kAlternateProtocolHttpHeader),
7116 MockRead("hello world"), 7116 MockRead("hello world"),
7117 MockRead(ASYNC, OK), 7117 MockRead(ASYNC, OK),
7118 }; 7118 };
7119 7119
7120 StaticSocketDataProvider first_transaction( 7120 StaticSocketDataProvider first_transaction(
7121 data_reads, arraysize(data_reads), NULL, 0); 7121 data_reads, arraysize(data_reads), NULL, 0);
7122 session_deps.socket_factory.AddSocketDataProvider(&first_transaction); 7122 session_deps.socket_factory.AddSocketDataProvider(&first_transaction);
7123 7123
7124 SSLSocketDataProvider ssl(ASYNC, OK); 7124 SSLSocketDataProvider ssl(ASYNC, OK);
7125 ssl.SetNextProto(SSLClientSocket::kProtoSPDY2); 7125 ssl.SetNextProto(kProtoSPDY2);
7126 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 7126 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
7127 7127
7128 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); 7128 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING);
7129 StaticSocketDataProvider hanging_alternate_protocol_socket( 7129 StaticSocketDataProvider hanging_alternate_protocol_socket(
7130 NULL, 0, NULL, 0); 7130 NULL, 0, NULL, 0);
7131 hanging_alternate_protocol_socket.set_connect_data( 7131 hanging_alternate_protocol_socket.set_connect_data(
7132 never_finishing_connect); 7132 never_finishing_connect);
7133 session_deps.socket_factory.AddSocketDataProvider( 7133 session_deps.socket_factory.AddSocketDataProvider(
7134 &hanging_alternate_protocol_socket); 7134 &hanging_alternate_protocol_socket);
7135 7135
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
7248 MockRead(kAlternateProtocolHttpHeader), 7248 MockRead(kAlternateProtocolHttpHeader),
7249 MockRead("hello world"), 7249 MockRead("hello world"),
7250 MockRead(ASYNC, OK), 7250 MockRead(ASYNC, OK),
7251 }; 7251 };
7252 7252
7253 StaticSocketDataProvider first_transaction( 7253 StaticSocketDataProvider first_transaction(
7254 data_reads, arraysize(data_reads), NULL, 0); 7254 data_reads, arraysize(data_reads), NULL, 0);
7255 session_deps.socket_factory.AddSocketDataProvider(&first_transaction); 7255 session_deps.socket_factory.AddSocketDataProvider(&first_transaction);
7256 7256
7257 SSLSocketDataProvider ssl(ASYNC, OK); 7257 SSLSocketDataProvider ssl(ASYNC, OK);
7258 ssl.SetNextProto(SSLClientSocket::kProtoSPDY2); 7258 ssl.SetNextProto(kProtoSPDY2);
7259 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 7259 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
7260 7260
7261 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 7261 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
7262 MockWrite spdy_writes[] = { 7262 MockWrite spdy_writes[] = {
7263 MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n" 7263 MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
7264 "Host: www.google.com\r\n" 7264 "Host: www.google.com\r\n"
7265 "Proxy-Connection: keep-alive\r\n\r\n"), // 0 7265 "Proxy-Connection: keep-alive\r\n\r\n"), // 0
7266 CreateMockWrite(*req) // 3 7266 CreateMockWrite(*req) // 3
7267 }; 7267 };
7268 7268
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
7352 MockRead(kAlternateProtocolHttpHeader), 7352 MockRead(kAlternateProtocolHttpHeader),
7353 MockRead("hello world"), 7353 MockRead("hello world"),
7354 MockRead(ASYNC, OK), 7354 MockRead(ASYNC, OK),
7355 }; 7355 };
7356 7356
7357 StaticSocketDataProvider first_transaction( 7357 StaticSocketDataProvider first_transaction(
7358 data_reads, arraysize(data_reads), NULL, 0); 7358 data_reads, arraysize(data_reads), NULL, 0);
7359 session_deps.socket_factory.AddSocketDataProvider(&first_transaction); 7359 session_deps.socket_factory.AddSocketDataProvider(&first_transaction);
7360 7360
7361 SSLSocketDataProvider ssl(ASYNC, OK); 7361 SSLSocketDataProvider ssl(ASYNC, OK);
7362 ssl.SetNextProto(SSLClientSocket::kProtoSPDY2); 7362 ssl.SetNextProto(kProtoSPDY2);
7363 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 7363 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
7364 7364
7365 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 7365 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
7366 MockWrite spdy_writes[] = { CreateMockWrite(*req) }; 7366 MockWrite spdy_writes[] = { CreateMockWrite(*req) };
7367 7367
7368 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 7368 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
7369 scoped_ptr<SpdyFrame> data(ConstructSpdyBodyFrame(1, true)); 7369 scoped_ptr<SpdyFrame> data(ConstructSpdyBodyFrame(1, true));
7370 MockRead spdy_reads[] = { 7370 MockRead spdy_reads[] = {
7371 CreateMockRead(*resp), 7371 CreateMockRead(*resp),
7372 CreateMockRead(*data), 7372 CreateMockRead(*data),
(...skipping 814 matching lines...) Expand 10 before | Expand all | Expand 10 after
8187 MockRead data_reads[] = { 8187 MockRead data_reads[] = {
8188 MockRead("HTTP/1.1 200 OK\r\n"), 8188 MockRead("HTTP/1.1 200 OK\r\n"),
8189 MockRead(kAlternateProtocolHttpHeader), 8189 MockRead(kAlternateProtocolHttpHeader),
8190 MockRead("hello world"), 8190 MockRead("hello world"),
8191 MockRead(SYNCHRONOUS, OK), 8191 MockRead(SYNCHRONOUS, OK),
8192 }; 8192 };
8193 8193
8194 SSLSocketDataProvider ssl(ASYNC, OK); 8194 SSLSocketDataProvider ssl(ASYNC, OK);
8195 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated; 8195 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated;
8196 ssl.next_proto = "http/1.1"; 8196 ssl.next_proto = "http/1.1";
8197 ssl.protocol_negotiated = SSLClientSocket::kProtoHTTP11; 8197 ssl.protocol_negotiated = kProtoHTTP11;
8198 8198
8199 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 8199 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
8200 8200
8201 StaticSocketDataProvider data(data_reads, arraysize(data_reads), 8201 StaticSocketDataProvider data(data_reads, arraysize(data_reads),
8202 data_writes, arraysize(data_writes)); 8202 data_writes, arraysize(data_writes));
8203 session_deps.socket_factory.AddSocketDataProvider(&data); 8203 session_deps.socket_factory.AddSocketDataProvider(&data);
8204 8204
8205 TestCompletionCallback callback; 8205 TestCompletionCallback callback;
8206 8206
8207 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps)); 8207 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
(...skipping 27 matching lines...) Expand all
8235 HttpStreamFactory::set_use_alternate_protocols(true); 8235 HttpStreamFactory::set_use_alternate_protocols(true);
8236 HttpStreamFactory::SetNextProtos(SpdyNextProtos()); 8236 HttpStreamFactory::SetNextProtos(SpdyNextProtos());
8237 SessionDependencies session_deps; 8237 SessionDependencies session_deps;
8238 8238
8239 HttpRequestInfo request; 8239 HttpRequestInfo request;
8240 request.method = "GET"; 8240 request.method = "GET";
8241 request.url = GURL("https://www.google.com/"); 8241 request.url = GURL("https://www.google.com/");
8242 request.load_flags = 0; 8242 request.load_flags = 0;
8243 8243
8244 SSLSocketDataProvider ssl(ASYNC, OK); 8244 SSLSocketDataProvider ssl(ASYNC, OK);
8245 ssl.SetNextProto(SSLClientSocket::kProtoSPDY2); 8245 ssl.SetNextProto(kProtoSPDY2);
8246 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 8246 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
8247 8247
8248 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 8248 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
8249 MockWrite spdy_writes[] = { CreateMockWrite(*req) }; 8249 MockWrite spdy_writes[] = { CreateMockWrite(*req) };
8250 8250
8251 MockRead spdy_reads[] = { 8251 MockRead spdy_reads[] = {
8252 MockRead(SYNCHRONOUS, 0, 0) // Not async - return 0 immediately. 8252 MockRead(SYNCHRONOUS, 0, 0) // Not async - return 0 immediately.
8253 }; 8253 };
8254 8254
8255 scoped_ptr<DelayedSocketData> spdy_data( 8255 scoped_ptr<DelayedSocketData> spdy_data(
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
8366 // SPDY response 8366 // SPDY response
8367 CreateMockRead(*resp.get(), 6), 8367 CreateMockRead(*resp.get(), 6),
8368 CreateMockRead(*data.get(), 6), 8368 CreateMockRead(*data.get(), 6),
8369 MockRead(ASYNC, 0, 0, 6), 8369 MockRead(ASYNC, 0, 0, 6),
8370 }; 8370 };
8371 scoped_ptr<OrderedSocketData> data_2( 8371 scoped_ptr<OrderedSocketData> data_2(
8372 new OrderedSocketData(data_reads_2, arraysize(data_reads_2), 8372 new OrderedSocketData(data_reads_2, arraysize(data_reads_2),
8373 data_writes_2, arraysize(data_writes_2))); 8373 data_writes_2, arraysize(data_writes_2)));
8374 8374
8375 SSLSocketDataProvider ssl(ASYNC, OK); 8375 SSLSocketDataProvider ssl(ASYNC, OK);
8376 ssl.SetNextProto(SSLClientSocket::kProtoSPDY2); 8376 ssl.SetNextProto(kProtoSPDY2);
8377 8377
8378 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); 8378 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING);
8379 StaticSocketDataProvider hanging_non_alternate_protocol_socket( 8379 StaticSocketDataProvider hanging_non_alternate_protocol_socket(
8380 NULL, 0, NULL, 0); 8380 NULL, 0, NULL, 0);
8381 hanging_non_alternate_protocol_socket.set_connect_data( 8381 hanging_non_alternate_protocol_socket.set_connect_data(
8382 never_finishing_connect); 8382 never_finishing_connect);
8383 8383
8384 session_deps.socket_factory.AddSocketDataProvider(&data_1); 8384 session_deps.socket_factory.AddSocketDataProvider(&data_1);
8385 session_deps.socket_factory.AddSocketDataProvider(data_2.get()); 8385 session_deps.socket_factory.AddSocketDataProvider(data_2.get());
8386 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 8386 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
8647 }; 8647 };
8648 8648
8649 scoped_ptr<DelayedSocketData> spdy_data( 8649 scoped_ptr<DelayedSocketData> spdy_data(
8650 new DelayedSocketData( 8650 new DelayedSocketData(
8651 1, // wait for one write to finish before reading. 8651 1, // wait for one write to finish before reading.
8652 spdy_reads, arraysize(spdy_reads), 8652 spdy_reads, arraysize(spdy_reads),
8653 spdy_writes, arraysize(spdy_writes))); 8653 spdy_writes, arraysize(spdy_writes)));
8654 session_deps.socket_factory.AddSocketDataProvider(spdy_data.get()); 8654 session_deps.socket_factory.AddSocketDataProvider(spdy_data.get());
8655 8655
8656 SSLSocketDataProvider ssl(ASYNC, OK); 8656 SSLSocketDataProvider ssl(ASYNC, OK);
8657 ssl.SetNextProto(SSLClientSocket::kProtoSPDY2); 8657 ssl.SetNextProto(kProtoSPDY2);
8658 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 8658 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
8659 8659
8660 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps)); 8660 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
8661 8661
8662 // Set up an initial SpdySession in the pool to reuse. 8662 // Set up an initial SpdySession in the pool to reuse.
8663 HostPortPair host_port_pair("www.google.com", 443); 8663 HostPortPair host_port_pair("www.google.com", 443);
8664 HostPortProxyPair pair(host_port_pair, ProxyServer::Direct()); 8664 HostPortProxyPair pair(host_port_pair, ProxyServer::Direct());
8665 scoped_refptr<SpdySession> spdy_session = 8665 scoped_refptr<SpdySession> spdy_session =
8666 session->spdy_session_pool()->Get(pair, BoundNetLog()); 8666 session->spdy_session_pool()->Get(pair, BoundNetLog());
8667 scoped_refptr<TransportSocketParams> transport_params( 8667 scoped_refptr<TransportSocketParams> transport_params(
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
9084 params.ssl_config_service = session_deps.ssl_config_service; 9084 params.ssl_config_service = session_deps.ssl_config_service;
9085 params.http_auth_handler_factory = 9085 params.http_auth_handler_factory =
9086 session_deps.http_auth_handler_factory.get(); 9086 session_deps.http_auth_handler_factory.get();
9087 params.http_server_properties = &session_deps.http_server_properties; 9087 params.http_server_properties = &session_deps.http_server_properties;
9088 params.net_log = session_deps.net_log; 9088 params.net_log = session_deps.net_log;
9089 scoped_refptr<HttpNetworkSession> session(new HttpNetworkSession(params)); 9089 scoped_refptr<HttpNetworkSession> session(new HttpNetworkSession(params));
9090 SpdySessionPoolPeer pool_peer(session->spdy_session_pool()); 9090 SpdySessionPoolPeer pool_peer(session->spdy_session_pool());
9091 pool_peer.DisableDomainAuthenticationVerification(); 9091 pool_peer.DisableDomainAuthenticationVerification();
9092 9092
9093 SSLSocketDataProvider ssl(ASYNC, OK); 9093 SSLSocketDataProvider ssl(ASYNC, OK);
9094 ssl.SetNextProto(SSLClientSocket::kProtoSPDY2); 9094 ssl.SetNextProto(kProtoSPDY2);
9095 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 9095 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
9096 9096
9097 scoped_ptr<SpdyFrame> host1_req(ConstructSpdyGet( 9097 scoped_ptr<SpdyFrame> host1_req(ConstructSpdyGet(
9098 "https://www.google.com", false, 1, LOWEST)); 9098 "https://www.google.com", false, 1, LOWEST));
9099 scoped_ptr<SpdyFrame> host2_req(ConstructSpdyGet( 9099 scoped_ptr<SpdyFrame> host2_req(ConstructSpdyGet(
9100 "https://www.gmail.com", false, 3, LOWEST)); 9100 "https://www.gmail.com", false, 3, LOWEST));
9101 MockWrite spdy_writes[] = { 9101 MockWrite spdy_writes[] = {
9102 CreateMockWrite(*host1_req, 1), 9102 CreateMockWrite(*host1_req, 1),
9103 CreateMockWrite(*host2_req, 4), 9103 CreateMockWrite(*host2_req, 4),
9104 }; 9104 };
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
9235 params.ssl_config_service = session_deps.ssl_config_service; 9235 params.ssl_config_service = session_deps.ssl_config_service;
9236 params.http_auth_handler_factory = 9236 params.http_auth_handler_factory =
9237 session_deps.http_auth_handler_factory.get(); 9237 session_deps.http_auth_handler_factory.get();
9238 params.http_server_properties = &session_deps.http_server_properties; 9238 params.http_server_properties = &session_deps.http_server_properties;
9239 params.net_log = session_deps.net_log; 9239 params.net_log = session_deps.net_log;
9240 scoped_refptr<HttpNetworkSession> session(new HttpNetworkSession(params)); 9240 scoped_refptr<HttpNetworkSession> session(new HttpNetworkSession(params));
9241 SpdySessionPoolPeer pool_peer(session->spdy_session_pool()); 9241 SpdySessionPoolPeer pool_peer(session->spdy_session_pool());
9242 pool_peer.DisableDomainAuthenticationVerification(); 9242 pool_peer.DisableDomainAuthenticationVerification();
9243 9243
9244 SSLSocketDataProvider ssl(ASYNC, OK); 9244 SSLSocketDataProvider ssl(ASYNC, OK);
9245 ssl.SetNextProto(SSLClientSocket::kProtoSPDY2); 9245 ssl.SetNextProto(kProtoSPDY2);
9246 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 9246 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
9247 9247
9248 scoped_ptr<SpdyFrame> host1_req(ConstructSpdyGet( 9248 scoped_ptr<SpdyFrame> host1_req(ConstructSpdyGet(
9249 "https://www.google.com", false, 1, LOWEST)); 9249 "https://www.google.com", false, 1, LOWEST));
9250 scoped_ptr<SpdyFrame> host2_req(ConstructSpdyGet( 9250 scoped_ptr<SpdyFrame> host2_req(ConstructSpdyGet(
9251 "https://www.gmail.com", false, 3, LOWEST)); 9251 "https://www.gmail.com", false, 3, LOWEST));
9252 MockWrite spdy_writes[] = { 9252 MockWrite spdy_writes[] = {
9253 CreateMockWrite(*host1_req, 1), 9253 CreateMockWrite(*host1_req, 1),
9254 CreateMockWrite(*host2_req, 4), 9254 CreateMockWrite(*host2_req, 4),
9255 }; 9255 };
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
9370 StaticSocketDataProvider* data[] = { &data1, &data2 }; 9370 StaticSocketDataProvider* data[] = { &data1, &data2 };
9371 9371
9372 SimpleGetHelperResult out = SimpleGetHelperForData(data, arraysize(data)); 9372 SimpleGetHelperResult out = SimpleGetHelperForData(data, arraysize(data));
9373 9373
9374 EXPECT_EQ(OK, out.rv); 9374 EXPECT_EQ(OK, out.rv);
9375 EXPECT_EQ("HTTP/1.0 200 OK", out.status_line); 9375 EXPECT_EQ("HTTP/1.0 200 OK", out.status_line);
9376 EXPECT_EQ("hello world", out.response_data); 9376 EXPECT_EQ("hello world", out.response_data);
9377 } 9377 }
9378 9378
9379 } // namespace net 9379 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_network_transaction_spdy21_unittest.cc ('k') | net/http/http_network_transaction_spdy3_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698