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

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

Issue 754433003: Update from https://crrev.com/305340 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 1 month 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 | « net/spdy/spdy_session_pool_unittest.cc ('k') | net/spdy/spdy_stream_unittest.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 "net/spdy/spdy_session.h" 5 #include "net/spdy/spdy_session.h"
6 6
7 #include "base/base64.h" 7 #include "base/base64.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 scoped_refptr<HttpNetworkSession> http_session_; 174 scoped_refptr<HttpNetworkSession> http_session_;
175 SpdySessionPool* spdy_session_pool_; 175 SpdySessionPool* spdy_session_pool_;
176 GURL test_url_; 176 GURL test_url_;
177 HostPortPair test_host_port_pair_; 177 HostPortPair test_host_port_pair_;
178 SpdySessionKey key_; 178 SpdySessionKey key_;
179 }; 179 };
180 180
181 INSTANTIATE_TEST_CASE_P( 181 INSTANTIATE_TEST_CASE_P(
182 NextProto, 182 NextProto,
183 SpdySessionTest, 183 SpdySessionTest,
184 testing::Values(kProtoDeprecatedSPDY2, 184 testing::Values(kProtoSPDY31, kProtoSPDY4_14, kProtoSPDY4_15));
185 kProtoSPDY3, kProtoSPDY31, kProtoSPDY4_14, kProtoSPDY4_15));
186 185
187 // Try to create a SPDY session that will fail during 186 // Try to create a SPDY session that will fail during
188 // initialization. Nothing should blow up. 187 // initialization. Nothing should blow up.
189 TEST_P(SpdySessionTest, InitialReadError) { 188 TEST_P(SpdySessionTest, InitialReadError) {
190 CreateDeterministicNetworkSession(); 189 CreateDeterministicNetworkSession();
191 190
192 base::WeakPtr<SpdySession> session = TryCreateFakeSpdySessionExpectingFailure( 191 base::WeakPtr<SpdySession> session = TryCreateFakeSpdySessionExpectingFailure(
193 spdy_session_pool_, key_, ERR_CONNECTION_CLOSED); 192 spdy_session_pool_, key_, ERR_CONNECTION_CLOSED);
194 EXPECT_TRUE(session); 193 EXPECT_TRUE(session);
195 // Flush the read. 194 // Flush the read.
(...skipping 1595 matching lines...) Expand 10 before | Expand all | Expand 10 after
1791 spdy_util_.ConstructGetHeaderBlock(url.spec())); 1790 spdy_util_.ConstructGetHeaderBlock(url.spec()));
1792 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); 1791 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND);
1793 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); 1792 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
1794 1793
1795 // Write request headers & capture resulting histogram update. 1794 // Write request headers & capture resulting histogram update.
1796 base::HistogramTester histogram_tester; 1795 base::HistogramTester histogram_tester;
1797 1796
1798 data.RunFor(1); 1797 data.RunFor(1);
1799 // Regression test of compression performance under the request fixture. 1798 // Regression test of compression performance under the request fixture.
1800 switch (spdy_util_.spdy_version()) { 1799 switch (spdy_util_.spdy_version()) {
1801 case SPDY2:
1802 histogram_tester.ExpectBucketCount(
1803 "Net.SpdySynStreamCompressionPercentage", 0, 1);
1804 break;
1805 case SPDY3: 1800 case SPDY3:
1806 histogram_tester.ExpectBucketCount( 1801 histogram_tester.ExpectBucketCount(
1807 "Net.SpdySynStreamCompressionPercentage", 30, 1); 1802 "Net.SpdySynStreamCompressionPercentage", 30, 1);
1808 break; 1803 break;
1809 case SPDY4: 1804 case SPDY4:
1810 histogram_tester.ExpectBucketCount( 1805 histogram_tester.ExpectBucketCount(
1811 "Net.SpdySynStreamCompressionPercentage", 82, 1); 1806 "Net.SpdySynStreamCompressionPercentage", 82, 1);
1812 break; 1807 break;
1813 case SPDY5: 1808 case SPDY5:
1814 histogram_tester.ExpectBucketCount( 1809 histogram_tester.ExpectBucketCount(
(...skipping 1262 matching lines...) Expand 10 before | Expand all | Expand 10 after
3077 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); 3072 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0);
3078 data.set_connect_data(connect_data); 3073 data.set_connect_data(connect_data);
3079 session_deps_.socket_factory->AddSocketDataProvider(&data); 3074 session_deps_.socket_factory->AddSocketDataProvider(&data);
3080 3075
3081 CreateNetworkSession(); 3076 CreateNetworkSession();
3082 base::WeakPtr<SpdySession> session = 3077 base::WeakPtr<SpdySession> session =
3083 CreateFakeSpdySession(spdy_session_pool_, key_); 3078 CreateFakeSpdySession(spdy_session_pool_, key_);
3084 3079
3085 EXPECT_EQ(spdy_util_.spdy_version(), 3080 EXPECT_EQ(spdy_util_.spdy_version(),
3086 session->buffered_spdy_framer_->protocol_version()); 3081 session->buffered_spdy_framer_->protocol_version());
3087 if (GetParam() == kProtoDeprecatedSPDY2) { 3082 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION,
3088 EXPECT_EQ(SpdySession::FLOW_CONTROL_NONE, session->flow_control_state()); 3083 session->flow_control_state());
3089 EXPECT_EQ(0, session->session_send_window_size_); 3084 EXPECT_EQ(kSpdySessionInitialWindowSize,
3090 EXPECT_EQ(0, session->session_recv_window_size_); 3085 session->session_send_window_size_);
3091 } else if (GetParam() == kProtoSPDY3) { 3086 EXPECT_EQ(kSpdySessionInitialWindowSize,
3092 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM, session->flow_control_state()); 3087 session->session_recv_window_size_);
3093 EXPECT_EQ(0, session->session_send_window_size_);
3094 EXPECT_EQ(0, session->session_recv_window_size_);
3095 } else {
3096 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION,
3097 session->flow_control_state());
3098 EXPECT_EQ(kSpdySessionInitialWindowSize,
3099 session->session_send_window_size_);
3100 EXPECT_EQ(kSpdySessionInitialWindowSize,
3101 session->session_recv_window_size_);
3102 }
3103 EXPECT_EQ(0, session->session_unacked_recv_window_bytes_); 3088 EXPECT_EQ(0, session->session_unacked_recv_window_bytes_);
3104 } 3089 }
3105 3090
3106 // Tests the case of a non-SPDY request closing an idle SPDY session when no 3091 // Tests the case of a non-SPDY request closing an idle SPDY session when no
3107 // pointers to the idle session are currently held. 3092 // pointers to the idle session are currently held.
3108 TEST_P(SpdySessionTest, CloseOneIdleConnection) { 3093 TEST_P(SpdySessionTest, CloseOneIdleConnection) {
3109 ClientSocketPoolManager::set_max_sockets_per_group( 3094 ClientSocketPoolManager::set_max_sockets_per_group(
3110 HttpNetworkSession::NORMAL_SOCKET_POOL, 1); 3095 HttpNetworkSession::NORMAL_SOCKET_POOL, 1);
3111 ClientSocketPoolManager::set_max_sockets_per_pool( 3096 ClientSocketPoolManager::set_max_sockets_per_pool(
3112 HttpNetworkSession::NORMAL_SOCKET_POOL, 1); 3097 HttpNetworkSession::NORMAL_SOCKET_POOL, 1);
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
3448 3433
3449 EXPECT_EQ(NULL, spdy_stream.get()); 3434 EXPECT_EQ(NULL, spdy_stream.get());
3450 EXPECT_TRUE(delegate.StreamIsClosed()); 3435 EXPECT_TRUE(delegate.StreamIsClosed());
3451 EXPECT_EQ(0u, session->num_active_streams()); 3436 EXPECT_EQ(0u, session->num_active_streams());
3452 EXPECT_EQ(1u, session->num_created_streams()); 3437 EXPECT_EQ(1u, session->num_created_streams());
3453 } 3438 }
3454 3439
3455 // The tests below are only for SPDY/3 and above. 3440 // The tests below are only for SPDY/3 and above.
3456 3441
3457 TEST_P(SpdySessionTest, UpdateStreamsSendWindowSize) { 3442 TEST_P(SpdySessionTest, UpdateStreamsSendWindowSize) {
3458 if (GetParam() < kProtoSPDY3)
3459 return;
3460
3461 // Set SETTINGS_INITIAL_WINDOW_SIZE to a small number so that WINDOW_UPDATE 3443 // Set SETTINGS_INITIAL_WINDOW_SIZE to a small number so that WINDOW_UPDATE
3462 // gets sent. 3444 // gets sent.
3463 SettingsMap new_settings; 3445 SettingsMap new_settings;
3464 int32 window_size = 1; 3446 int32 window_size = 1;
3465 new_settings[SETTINGS_INITIAL_WINDOW_SIZE] = 3447 new_settings[SETTINGS_INITIAL_WINDOW_SIZE] =
3466 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, window_size); 3448 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, window_size);
3467 3449
3468 // Set up the socket so we read a SETTINGS frame that sets 3450 // Set up the socket so we read a SETTINGS frame that sets
3469 // INITIAL_WINDOW_SIZE. 3451 // INITIAL_WINDOW_SIZE.
3470 MockConnect connect_data(SYNCHRONOUS, OK); 3452 MockConnect connect_data(SYNCHRONOUS, OK);
(...skipping 1667 matching lines...) Expand 10 before | Expand all | Expand 10 after
5138 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(), 5120 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(),
5139 "spdy_pooling.pem"); 5121 "spdy_pooling.pem");
5140 ssl_info.is_issued_by_known_root = true; 5122 ssl_info.is_issued_by_known_root = true;
5141 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin)); 5123 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin));
5142 5124
5143 EXPECT_TRUE(SpdySession::CanPool( 5125 EXPECT_TRUE(SpdySession::CanPool(
5144 &tss, ssl_info, "www.example.org", "mail.example.org")); 5126 &tss, ssl_info, "www.example.org", "mail.example.org"));
5145 } 5127 }
5146 5128
5147 } // namespace net 5129 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_session_pool_unittest.cc ('k') | net/spdy/spdy_stream_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698