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

Side by Side Diff: net/spdy/spdy_network_transaction_spdy3_unittest.cc

Issue 11415219: Move a number of static variables SPDY to HttpNetworkSession::Params. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix flip_in_mem_edsm_server Created 8 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 | 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 <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 27 matching lines...) Expand all
38 SPDYNPN, 38 SPDYNPN,
39 SPDYNOSSL, 39 SPDYNOSSL,
40 SPDYSSL, 40 SPDYSSL,
41 }; 41 };
42 42
43 class SpdyNetworkTransactionSpdy3Test 43 class SpdyNetworkTransactionSpdy3Test
44 : public ::testing::TestWithParam<SpdyNetworkTransactionSpdy3TestTypes> { 44 : public ::testing::TestWithParam<SpdyNetworkTransactionSpdy3TestTypes> {
45 protected: 45 protected:
46 46
47 virtual void SetUp() { 47 virtual void SetUp() {
48 SpdySession::set_default_protocol(kProtoSPDY3);
49 google_get_request_initialized_ = false; 48 google_get_request_initialized_ = false;
50 google_post_request_initialized_ = false; 49 google_post_request_initialized_ = false;
51 google_chunked_post_request_initialized_ = false; 50 google_chunked_post_request_initialized_ = false;
52 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 51 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
53 } 52 }
54 53
55 virtual void TearDown() { 54 virtual void TearDown() {
56 UploadDataStream::ResetMergeChunks(); 55 UploadDataStream::ResetMergeChunks();
57 // Empty the current queue. 56 // Empty the current queue.
58 MessageLoop::current()->RunUntilIdle(); 57 MessageLoop::current()->RunUntilIdle();
(...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after
570 569
571 private: 570 private:
572 scoped_ptr<UploadDataStream> upload_data_stream_; 571 scoped_ptr<UploadDataStream> upload_data_stream_;
573 bool google_get_request_initialized_; 572 bool google_get_request_initialized_;
574 bool google_post_request_initialized_; 573 bool google_post_request_initialized_;
575 bool google_chunked_post_request_initialized_; 574 bool google_chunked_post_request_initialized_;
576 HttpRequestInfo google_get_request_; 575 HttpRequestInfo google_get_request_;
577 HttpRequestInfo google_post_request_; 576 HttpRequestInfo google_post_request_;
578 HttpRequestInfo google_chunked_post_request_; 577 HttpRequestInfo google_chunked_post_request_;
579 HttpRequestInfo google_get_push_request_; 578 HttpRequestInfo google_get_push_request_;
580 SpdyTestStateHelper spdy_state_;
581 base::ScopedTempDir temp_dir_; 579 base::ScopedTempDir temp_dir_;
582 }; 580 };
583 581
584 //----------------------------------------------------------------------------- 582 //-----------------------------------------------------------------------------
585 // All tests are run with three different connection types: SPDY after NPN 583 // All tests are run with three different connection types: SPDY after NPN
586 // negotiation, SPDY without SSL, and SPDY with SSL. 584 // negotiation, SPDY without SSL, and SPDY with SSL.
587 INSTANTIATE_TEST_CASE_P(Spdy, 585 INSTANTIATE_TEST_CASE_P(Spdy,
588 SpdyNetworkTransactionSpdy3Test, 586 SpdyNetworkTransactionSpdy3Test,
589 ::testing::Values(SPDYNOSSL, SPDYSSL, SPDYNPN)); 587 ::testing::Values(SPDYNOSSL, SPDYSSL, SPDYNPN));
590 588
(...skipping 3506 matching lines...) Expand 10 before | Expand all | Expand 10 after
4097 helper.RunToCompletion(&data); 4095 helper.RunToCompletion(&data);
4098 TransactionHelperResult out = helper.output(); 4096 TransactionHelperResult out = helper.output();
4099 EXPECT_EQ(OK, out.rv); 4097 EXPECT_EQ(OK, out.rv);
4100 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 4098 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
4101 EXPECT_EQ("hello!", out.response_data); 4099 EXPECT_EQ("hello!", out.response_data);
4102 } 4100 }
4103 4101
4104 // In this test, we enable compression, but get a uncompressed SynReply from 4102 // In this test, we enable compression, but get a uncompressed SynReply from
4105 // the server. Verify that teardown is all clean. 4103 // the server. Verify that teardown is all clean.
4106 TEST_P(SpdyNetworkTransactionSpdy3Test, DecompressFailureOnSynReply) { 4104 TEST_P(SpdyNetworkTransactionSpdy3Test, DecompressFailureOnSynReply) {
4107 // For this test, we turn on the normal compression.
4108 BufferedSpdyFramer::set_enable_compression_default(true);
4109
4110 scoped_ptr<SpdyFrame> compressed( 4105 scoped_ptr<SpdyFrame> compressed(
4111 ConstructSpdyGet(NULL, 0, true, 1, LOWEST)); 4106 ConstructSpdyGet(NULL, 0, true, 1, LOWEST));
4112 scoped_ptr<SpdyFrame> rst( 4107 scoped_ptr<SpdyFrame> rst(
4113 ConstructSpdyRstStream(1, PROTOCOL_ERROR)); 4108 ConstructSpdyRstStream(1, PROTOCOL_ERROR));
4114 MockWrite writes[] = { 4109 MockWrite writes[] = {
4115 CreateMockWrite(*compressed), 4110 CreateMockWrite(*compressed),
4116 }; 4111 };
4117 4112
4118 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 4113 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
4119 scoped_ptr<SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 4114 scoped_ptr<SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
4120 MockRead reads[] = { 4115 MockRead reads[] = {
4121 CreateMockRead(*resp), 4116 CreateMockRead(*resp),
4122 }; 4117 };
4123 4118
4124 DelayedSocketData data(1, reads, arraysize(reads), 4119 DelayedSocketData data(1, reads, arraysize(reads),
4125 writes, arraysize(writes)); 4120 writes, arraysize(writes));
4121 SpdySessionDependencies* session_deps = new SpdySessionDependencies();
4122 session_deps->enable_compression = true;
4126 NormalSpdyTransactionHelper helper(CreateGetRequest(), 4123 NormalSpdyTransactionHelper helper(CreateGetRequest(),
4127 BoundNetLog(), GetParam(), NULL); 4124 BoundNetLog(), GetParam(), session_deps);
4128 helper.RunToCompletion(&data); 4125 helper.RunToCompletion(&data);
4129 TransactionHelperResult out = helper.output(); 4126 TransactionHelperResult out = helper.output();
4130 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv); 4127 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv);
4131 data.Reset(); 4128 data.Reset();
4132 } 4129 }
4133 4130
4134 // Test that the NetLog contains good data for a simple GET request. 4131 // Test that the NetLog contains good data for a simple GET request.
4135 TEST_P(SpdyNetworkTransactionSpdy3Test, NetLog) { 4132 TEST_P(SpdyNetworkTransactionSpdy3Test, NetLog) {
4136 static const char* const kExtraHeaders[] = { 4133 static const char* const kExtraHeaders[] = {
4137 "user-agent", "Chrome", 4134 "user-agent", "Chrome",
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
4213 EXPECT_NE(header_list->end(), header_list->Find(header)) << 4210 EXPECT_NE(header_list->end(), header_list->Find(header)) <<
4214 "Header not found: " << *it; 4211 "Header not found: " << *it;
4215 } 4212 }
4216 } 4213 }
4217 4214
4218 // Since we buffer the IO from the stream to the renderer, this test verifies 4215 // Since we buffer the IO from the stream to the renderer, this test verifies
4219 // that when we read out the maximum amount of data (e.g. we received 50 bytes 4216 // that when we read out the maximum amount of data (e.g. we received 50 bytes
4220 // on the network, but issued a Read for only 5 of those bytes) that the data 4217 // on the network, but issued a Read for only 5 of those bytes) that the data
4221 // flow still works correctly. 4218 // flow still works correctly.
4222 TEST_P(SpdyNetworkTransactionSpdy3Test, BufferFull) { 4219 TEST_P(SpdyNetworkTransactionSpdy3Test, BufferFull) {
4223 BufferedSpdyFramer framer(3); 4220 BufferedSpdyFramer framer(3, false);
4224 4221
4225 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 4222 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
4226 MockWrite writes[] = { CreateMockWrite(*req) }; 4223 MockWrite writes[] = { CreateMockWrite(*req) };
4227 4224
4228 // 2 data frames in a single read. 4225 // 2 data frames in a single read.
4229 scoped_ptr<SpdyFrame> data_frame_1( 4226 scoped_ptr<SpdyFrame> data_frame_1(
4230 framer.CreateDataFrame(1, "goodby", 6, DATA_FLAG_NONE)); 4227 framer.CreateDataFrame(1, "goodby", 6, DATA_FLAG_NONE));
4231 scoped_ptr<SpdyFrame> data_frame_2( 4228 scoped_ptr<SpdyFrame> data_frame_2(
4232 framer.CreateDataFrame(1, "e worl", 6, DATA_FLAG_NONE)); 4229 framer.CreateDataFrame(1, "e worl", 6, DATA_FLAG_NONE));
4233 const SpdyFrame* data_frames[2] = { 4230 const SpdyFrame* data_frames[2] = {
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
4306 4303
4307 EXPECT_EQ(OK, out.rv); 4304 EXPECT_EQ(OK, out.rv);
4308 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 4305 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
4309 EXPECT_EQ("goodbye world", out.response_data); 4306 EXPECT_EQ("goodbye world", out.response_data);
4310 } 4307 }
4311 4308
4312 // Verify that basic buffering works; when multiple data frames arrive 4309 // Verify that basic buffering works; when multiple data frames arrive
4313 // at the same time, ensure that we don't notify a read completion for 4310 // at the same time, ensure that we don't notify a read completion for
4314 // each data frame individually. 4311 // each data frame individually.
4315 TEST_P(SpdyNetworkTransactionSpdy3Test, Buffering) { 4312 TEST_P(SpdyNetworkTransactionSpdy3Test, Buffering) {
4316 BufferedSpdyFramer framer(3); 4313 BufferedSpdyFramer framer(3, false);
4317 4314
4318 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 4315 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
4319 MockWrite writes[] = { CreateMockWrite(*req) }; 4316 MockWrite writes[] = { CreateMockWrite(*req) };
4320 4317
4321 // 4 data frames in a single read. 4318 // 4 data frames in a single read.
4322 scoped_ptr<SpdyFrame> data_frame( 4319 scoped_ptr<SpdyFrame> data_frame(
4323 framer.CreateDataFrame(1, "message", 7, DATA_FLAG_NONE)); 4320 framer.CreateDataFrame(1, "message", 7, DATA_FLAG_NONE));
4324 scoped_ptr<SpdyFrame> data_frame_fin( 4321 scoped_ptr<SpdyFrame> data_frame_fin(
4325 framer.CreateDataFrame(1, "message", 7, DATA_FLAG_FIN)); 4322 framer.CreateDataFrame(1, "message", 7, DATA_FLAG_FIN));
4326 const SpdyFrame* data_frames[4] = { 4323 const SpdyFrame* data_frames[4] = {
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
4400 // Verify that we consumed all test data. 4397 // Verify that we consumed all test data.
4401 helper.VerifyDataConsumed(); 4398 helper.VerifyDataConsumed();
4402 4399
4403 EXPECT_EQ(OK, out.rv); 4400 EXPECT_EQ(OK, out.rv);
4404 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 4401 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
4405 EXPECT_EQ("messagemessagemessagemessage", out.response_data); 4402 EXPECT_EQ("messagemessagemessagemessage", out.response_data);
4406 } 4403 }
4407 4404
4408 // Verify the case where we buffer data but read it after it has been buffered. 4405 // Verify the case where we buffer data but read it after it has been buffered.
4409 TEST_P(SpdyNetworkTransactionSpdy3Test, BufferedAll) { 4406 TEST_P(SpdyNetworkTransactionSpdy3Test, BufferedAll) {
4410 BufferedSpdyFramer framer(3); 4407 BufferedSpdyFramer framer(3, false);
4411 4408
4412 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 4409 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
4413 MockWrite writes[] = { CreateMockWrite(*req) }; 4410 MockWrite writes[] = { CreateMockWrite(*req) };
4414 4411
4415 // 5 data frames in a single read. 4412 // 5 data frames in a single read.
4416 scoped_ptr<SpdyFrame> syn_reply( 4413 scoped_ptr<SpdyFrame> syn_reply(
4417 ConstructSpdyGetSynReply(NULL, 0, 1)); 4414 ConstructSpdyGetSynReply(NULL, 0, 1));
4418 syn_reply->set_flags(CONTROL_FLAG_NONE); // turn off FIN bit 4415 syn_reply->set_flags(CONTROL_FLAG_NONE); // turn off FIN bit
4419 scoped_ptr<SpdyFrame> data_frame( 4416 scoped_ptr<SpdyFrame> data_frame(
4420 framer.CreateDataFrame(1, "message", 7, DATA_FLAG_NONE)); 4417 framer.CreateDataFrame(1, "message", 7, DATA_FLAG_NONE));
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
4491 // Verify that we consumed all test data. 4488 // Verify that we consumed all test data.
4492 helper.VerifyDataConsumed(); 4489 helper.VerifyDataConsumed();
4493 4490
4494 EXPECT_EQ(OK, out.rv); 4491 EXPECT_EQ(OK, out.rv);
4495 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 4492 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
4496 EXPECT_EQ("messagemessagemessagemessage", out.response_data); 4493 EXPECT_EQ("messagemessagemessagemessage", out.response_data);
4497 } 4494 }
4498 4495
4499 // Verify the case where we buffer data and close the connection. 4496 // Verify the case where we buffer data and close the connection.
4500 TEST_P(SpdyNetworkTransactionSpdy3Test, BufferedClosed) { 4497 TEST_P(SpdyNetworkTransactionSpdy3Test, BufferedClosed) {
4501 BufferedSpdyFramer framer(3); 4498 BufferedSpdyFramer framer(3, false);
4502 4499
4503 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 4500 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
4504 MockWrite writes[] = { CreateMockWrite(*req) }; 4501 MockWrite writes[] = { CreateMockWrite(*req) };
4505 4502
4506 // All data frames in a single read. 4503 // All data frames in a single read.
4507 // NOTE: We don't FIN the stream. 4504 // NOTE: We don't FIN the stream.
4508 scoped_ptr<SpdyFrame> data_frame( 4505 scoped_ptr<SpdyFrame> data_frame(
4509 framer.CreateDataFrame(1, "message", 7, DATA_FLAG_NONE)); 4506 framer.CreateDataFrame(1, "message", 7, DATA_FLAG_NONE));
4510 const SpdyFrame* data_frames[4] = { 4507 const SpdyFrame* data_frames[4] = {
4511 data_frame.get(), 4508 data_frame.get(),
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
4581 // Flush the MessageLoop while the SpdySessionDependencies (in particular, the 4578 // Flush the MessageLoop while the SpdySessionDependencies (in particular, the
4582 // MockClientSocketFactory) are still alive. 4579 // MockClientSocketFactory) are still alive.
4583 MessageLoop::current()->RunUntilIdle(); 4580 MessageLoop::current()->RunUntilIdle();
4584 4581
4585 // Verify that we consumed all test data. 4582 // Verify that we consumed all test data.
4586 helper.VerifyDataConsumed(); 4583 helper.VerifyDataConsumed();
4587 } 4584 }
4588 4585
4589 // Verify the case where we buffer data and cancel the transaction. 4586 // Verify the case where we buffer data and cancel the transaction.
4590 TEST_P(SpdyNetworkTransactionSpdy3Test, BufferedCancelled) { 4587 TEST_P(SpdyNetworkTransactionSpdy3Test, BufferedCancelled) {
4591 BufferedSpdyFramer framer(3); 4588 BufferedSpdyFramer framer(3, false);
4592 4589
4593 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 4590 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
4594 MockWrite writes[] = { CreateMockWrite(*req) }; 4591 MockWrite writes[] = { CreateMockWrite(*req) };
4595 4592
4596 // NOTE: We don't FIN the stream. 4593 // NOTE: We don't FIN the stream.
4597 scoped_ptr<SpdyFrame> data_frame( 4594 scoped_ptr<SpdyFrame> data_frame(
4598 framer.CreateDataFrame(1, "message", 7, DATA_FLAG_NONE)); 4595 framer.CreateDataFrame(1, "message", 7, DATA_FLAG_NONE));
4599 4596
4600 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 4597 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
4601 MockRead reads[] = { 4598 MockRead reads[] = {
(...skipping 1747 matching lines...) Expand 10 before | Expand all | Expand 10 after
6349 // And now we can allow everything else to run to completion. 6346 // And now we can allow everything else to run to completion.
6350 data.SetStop(10); 6347 data.SetStop(10);
6351 data.Run(); 6348 data.Run();
6352 EXPECT_EQ(OK, callback2.WaitForResult()); 6349 EXPECT_EQ(OK, callback2.WaitForResult());
6353 EXPECT_EQ(OK, callback3.WaitForResult()); 6350 EXPECT_EQ(OK, callback3.WaitForResult());
6354 6351
6355 helper.VerifyDataConsumed(); 6352 helper.VerifyDataConsumed();
6356 } 6353 }
6357 6354
6358 } // namespace net 6355 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_network_transaction_spdy2_unittest.cc ('k') | net/spdy/spdy_proxy_client_socket_spdy2_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698