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

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

Issue 9582034: Fork SPDY/2 and SPDY/3 versions of our SPDY tests, in preparation for landing (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Fix merge bug Created 8 years, 9 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
« no previous file with comments | « net/spdy/spdy_session_spdy2_unittest.cc ('k') | net/spdy/spdy_session_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 "net/base/ip_endpoint.h" 7 #include "net/base/ip_endpoint.h"
8 #include "net/base/net_log_unittest.h" 8 #include "net/base/net_log_unittest.h"
9 #include "net/spdy/spdy_io_buffer.h" 9 #include "net/spdy/spdy_io_buffer.h"
10 #include "net/spdy/spdy_session_pool.h" 10 #include "net/spdy/spdy_session_pool.h"
11 #include "net/spdy/spdy_stream.h" 11 #include "net/spdy/spdy_stream.h"
12 #include "net/spdy/spdy_test_util.h" 12 #include "net/spdy/spdy_test_util_spdy3.h"
13 #include "testing/platform_test.h" 13 #include "testing/platform_test.h"
14 14
15 using namespace net::test_spdy3;
16
15 namespace net { 17 namespace net {
16 18
17 // TODO(cbentzel): Expose compression setter/getter in public SpdySession 19 // TODO(cbentzel): Expose compression setter/getter in public SpdySession
18 // interface rather than going through all these contortions. 20 // interface rather than going through all these contortions.
19 class SpdySessionTest : public PlatformTest { 21 class SpdySessionSpdy3Test : public PlatformTest {
20 public: 22 public:
21 static void TurnOffCompression() { 23 static void TurnOffCompression() {
22 spdy::SpdyFramer::set_enable_compression_default(false); 24 spdy::SpdyFramer::set_enable_compression_default(false);
23 } 25 }
24 protected: 26 protected:
25 virtual void TearDown() { 27 virtual void TearDown() {
26 // Wanted to be 100% sure PING is disabled. 28 // Wanted to be 100% sure PING is disabled.
27 SpdySession::set_enable_ping_based_connection_checking(false); 29 SpdySession::set_enable_ping_based_connection_checking(false);
28 } 30 }
29 }; 31 };
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 callback.Run(OK); 64 callback.Run(OK);
63 } 65 }
64 66
65 virtual void set_chunk_callback(net::ChunkCallback *) {} 67 virtual void set_chunk_callback(net::ChunkCallback *) {}
66 68
67 private: 69 private:
68 CompletionCallback callback_; 70 CompletionCallback callback_;
69 }; 71 };
70 72
71 // Test the SpdyIOBuffer class. 73 // Test the SpdyIOBuffer class.
72 TEST_F(SpdySessionTest, SpdyIOBuffer) { 74 TEST_F(SpdySessionSpdy3Test, SpdyIOBuffer) {
73 std::priority_queue<SpdyIOBuffer> queue_; 75 std::priority_queue<SpdyIOBuffer> queue_;
74 const size_t kQueueSize = 100; 76 const size_t kQueueSize = 100;
75 77
76 // Insert 100 items; pri 100 to 1. 78 // Insert 100 items; pri 100 to 1.
77 for (size_t index = 0; index < kQueueSize; ++index) { 79 for (size_t index = 0; index < kQueueSize; ++index) {
78 SpdyIOBuffer buffer(new IOBuffer(), 0, kQueueSize - index, NULL); 80 SpdyIOBuffer buffer(new IOBuffer(), 0, kQueueSize - index, NULL);
79 queue_.push(buffer); 81 queue_.push(buffer);
80 } 82 }
81 83
82 // Insert several priority 0 items last. 84 // Insert several priority 0 items last.
(...skipping 15 matching lines...) Expand all
98 } 100 }
99 101
100 int priority = 1; 102 int priority = 1;
101 while (queue_.size()) { 103 while (queue_.size()) {
102 SpdyIOBuffer buffer = queue_.top(); 104 SpdyIOBuffer buffer = queue_.top();
103 EXPECT_EQ(priority++, buffer.priority()); 105 EXPECT_EQ(priority++, buffer.priority());
104 queue_.pop(); 106 queue_.pop();
105 } 107 }
106 } 108 }
107 109
108 TEST_F(SpdySessionTest, GoAway) { 110 TEST_F(SpdySessionSpdy3Test, GoAway) {
109 SpdySessionDependencies session_deps; 111 SpdySessionDependencies session_deps;
110 session_deps.host_resolver->set_synchronous_mode(true); 112 session_deps.host_resolver->set_synchronous_mode(true);
111 113
112 MockConnect connect_data(SYNCHRONOUS, OK); 114 MockConnect connect_data(SYNCHRONOUS, OK);
113 scoped_ptr<spdy::SpdyFrame> goaway(ConstructSpdyGoAway()); 115 scoped_ptr<spdy::SpdyFrame> goaway(ConstructSpdyGoAway());
114 MockRead reads[] = { 116 MockRead reads[] = {
115 CreateMockRead(*goaway), 117 CreateMockRead(*goaway),
116 MockRead(SYNCHRONOUS, 0, 0) // EOF 118 MockRead(SYNCHRONOUS, 0, 0) // EOF
117 }; 119 };
118 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); 120 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 spdy_session_pool->Get(pair, BoundNetLog()); 159 spdy_session_pool->Get(pair, BoundNetLog());
158 160
159 // Delete the first session. 161 // Delete the first session.
160 session = NULL; 162 session = NULL;
161 163
162 // Delete the second session. 164 // Delete the second session.
163 spdy_session_pool->Remove(session2); 165 spdy_session_pool->Remove(session2);
164 session2 = NULL; 166 session2 = NULL;
165 } 167 }
166 168
167 TEST_F(SpdySessionTest, Ping) { 169 TEST_F(SpdySessionSpdy3Test, Ping) {
168 SpdySessionDependencies session_deps; 170 SpdySessionDependencies session_deps;
169 session_deps.host_resolver->set_synchronous_mode(true); 171 session_deps.host_resolver->set_synchronous_mode(true);
170 172
171 MockConnect connect_data(SYNCHRONOUS, OK); 173 MockConnect connect_data(SYNCHRONOUS, OK);
172 scoped_ptr<spdy::SpdyFrame> read_ping(ConstructSpdyPing()); 174 scoped_ptr<spdy::SpdyFrame> read_ping(ConstructSpdyPing());
173 MockRead reads[] = { 175 MockRead reads[] = {
174 CreateMockRead(*read_ping), 176 CreateMockRead(*read_ping),
175 CreateMockRead(*read_ping), 177 CreateMockRead(*read_ping),
176 MockRead(SYNCHRONOUS, 0, 0) // EOF 178 MockRead(SYNCHRONOUS, 0, 0) // EOF
177 }; 179 };
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 EXPECT_FALSE(session->trailing_ping_pending()); 250 EXPECT_FALSE(session->trailing_ping_pending());
249 EXPECT_FALSE(session->check_ping_status_pending()); 251 EXPECT_FALSE(session->check_ping_status_pending());
250 EXPECT_GE(session->received_data_time(), before_ping_time); 252 EXPECT_GE(session->received_data_time(), before_ping_time);
251 253
252 EXPECT_FALSE(spdy_session_pool->HasSession(pair)); 254 EXPECT_FALSE(spdy_session_pool->HasSession(pair));
253 255
254 // Delete the first session. 256 // Delete the first session.
255 session = NULL; 257 session = NULL;
256 } 258 }
257 259
258 TEST_F(SpdySessionTest, FailedPing) { 260 TEST_F(SpdySessionSpdy3Test, FailedPing) {
259 SpdySessionDependencies session_deps; 261 SpdySessionDependencies session_deps;
260 session_deps.host_resolver->set_synchronous_mode(true); 262 session_deps.host_resolver->set_synchronous_mode(true);
261 263
262 MockConnect connect_data(SYNCHRONOUS, OK); 264 MockConnect connect_data(SYNCHRONOUS, OK);
263 scoped_ptr<spdy::SpdyFrame> read_ping(ConstructSpdyPing()); 265 scoped_ptr<spdy::SpdyFrame> read_ping(ConstructSpdyPing());
264 MockRead reads[] = { 266 MockRead reads[] = {
265 CreateMockRead(*read_ping), 267 CreateMockRead(*read_ping),
266 MockRead(SYNCHRONOUS, 0, 0) // EOF 268 MockRead(SYNCHRONOUS, 0, 0) // EOF
267 }; 269 };
268 scoped_ptr<spdy::SpdyFrame> write_ping(ConstructSpdyPing()); 270 scoped_ptr<spdy::SpdyFrame> write_ping(ConstructSpdyPing());
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 } 380 }
379 381
380 scoped_refptr<SpdySession> session_; 382 scoped_refptr<SpdySession> session_;
381 scoped_refptr<SpdyStream> first_stream_; 383 scoped_refptr<SpdyStream> first_stream_;
382 scoped_refptr<SpdyStream> stream_; 384 scoped_refptr<SpdyStream> stream_;
383 CompletionCallback callback_; 385 CompletionCallback callback_;
384 }; 386 };
385 387
386 // TODO(kristianm): Could also test with more sessions where some are idle, 388 // TODO(kristianm): Could also test with more sessions where some are idle,
387 // and more than one session to a HostPortPair. 389 // and more than one session to a HostPortPair.
388 TEST_F(SpdySessionTest, CloseIdleSessions) { 390 TEST_F(SpdySessionSpdy3Test, CloseIdleSessions) {
389 SpdySessionDependencies session_deps; 391 SpdySessionDependencies session_deps;
390 scoped_refptr<HttpNetworkSession> http_session( 392 scoped_refptr<HttpNetworkSession> http_session(
391 SpdySessionDependencies::SpdyCreateSession(&session_deps)); 393 SpdySessionDependencies::SpdyCreateSession(&session_deps));
392 SpdySessionPool* spdy_session_pool(http_session->spdy_session_pool()); 394 SpdySessionPool* spdy_session_pool(http_session->spdy_session_pool());
393 395
394 // Set up session 1 396 // Set up session 1
395 const std::string kTestHost1("http://www.a.com"); 397 const std::string kTestHost1("http://www.a.com");
396 HostPortPair test_host_port_pair1(kTestHost1, 80); 398 HostPortPair test_host_port_pair1(kTestHost1, 80);
397 HostPortProxyPair pair1(test_host_port_pair1, ProxyServer::Direct()); 399 HostPortProxyPair pair1(test_host_port_pair1, ProxyServer::Direct());
398 scoped_refptr<SpdySession> session1 = 400 scoped_refptr<SpdySession> session1 =
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 spdy_session_pool->CloseIdleSessions(); 485 spdy_session_pool->CloseIdleSessions();
484 EXPECT_FALSE(session2->is_active()); 486 EXPECT_FALSE(session2->is_active());
485 EXPECT_TRUE(session2->IsClosed()); 487 EXPECT_TRUE(session2->IsClosed());
486 } 488 }
487 489
488 // Start with max concurrent streams set to 1. Request two streams. Receive a 490 // Start with max concurrent streams set to 1. Request two streams. Receive a
489 // settings frame setting max concurrent streams to 2. Have the callback 491 // settings frame setting max concurrent streams to 2. Have the callback
490 // release the stream, which releases its reference (the last) to the session. 492 // release the stream, which releases its reference (the last) to the session.
491 // Make sure nothing blows up. 493 // Make sure nothing blows up.
492 // http://crbug.com/57331 494 // http://crbug.com/57331
493 TEST_F(SpdySessionTest, OnSettings) { 495 TEST_F(SpdySessionSpdy3Test, OnSettings) {
494 SpdySessionDependencies session_deps; 496 SpdySessionDependencies session_deps;
495 session_deps.host_resolver->set_synchronous_mode(true); 497 session_deps.host_resolver->set_synchronous_mode(true);
496 498
497 spdy::SpdySettings new_settings; 499 spdy::SpdySettings new_settings;
498 spdy::SettingsFlagsAndId id(0); 500 spdy::SettingsFlagsAndId id(0);
499 id.set_id(spdy::SETTINGS_MAX_CONCURRENT_STREAMS); 501 id.set_id(spdy::SETTINGS_MAX_CONCURRENT_STREAMS);
500 const size_t max_concurrent_streams = 2; 502 const size_t max_concurrent_streams = 2;
501 new_settings.push_back(spdy::SpdySetting(id, max_concurrent_streams)); 503 new_settings.push_back(spdy::SpdySetting(id, max_concurrent_streams));
502 504
503 // Set up the socket so we read a SETTINGS frame that raises max concurrent 505 // Set up the socket so we read a SETTINGS frame that raises max concurrent
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 session = NULL; 577 session = NULL;
576 spdy_stream1 = NULL; 578 spdy_stream1 = NULL;
577 579
578 EXPECT_EQ(OK, stream_releaser.WaitForResult()); 580 EXPECT_EQ(OK, stream_releaser.WaitForResult());
579 } 581 }
580 582
581 // Start with max concurrent streams set to 1. Request two streams. When the 583 // Start with max concurrent streams set to 1. Request two streams. When the
582 // first completes, have the callback close itself, which should trigger the 584 // first completes, have the callback close itself, which should trigger the
583 // second stream creation. Then cancel that one immediately. Don't crash. 585 // second stream creation. Then cancel that one immediately. Don't crash.
584 // http://crbug.com/63532 586 // http://crbug.com/63532
585 TEST_F(SpdySessionTest, CancelPendingCreateStream) { 587 TEST_F(SpdySessionSpdy3Test, CancelPendingCreateStream) {
586 SpdySessionDependencies session_deps; 588 SpdySessionDependencies session_deps;
587 session_deps.host_resolver->set_synchronous_mode(true); 589 session_deps.host_resolver->set_synchronous_mode(true);
588 590
589 MockRead reads[] = { 591 MockRead reads[] = {
590 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. 592 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever.
591 }; 593 };
592 594
593 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); 595 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0);
594 MockConnect connect_data(SYNCHRONOUS, OK); 596 MockConnect connect_data(SYNCHRONOUS, OK);
595 597
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 spdy_stream1->Cancel(); 663 spdy_stream1->Cancel();
662 spdy_stream1 = NULL; 664 spdy_stream1 = NULL;
663 665
664 session->CancelPendingCreateStreams(&spdy_stream2); 666 session->CancelPendingCreateStreams(&spdy_stream2);
665 callback.reset(); 667 callback.reset();
666 668
667 // Should not crash when running the pending callback. 669 // Should not crash when running the pending callback.
668 MessageLoop::current()->RunAllPending(); 670 MessageLoop::current()->RunAllPending();
669 } 671 }
670 672
671 TEST_F(SpdySessionTest, SendSettingsOnNewSession) { 673 TEST_F(SpdySessionSpdy3Test, SendSettingsOnNewSession) {
672 SpdySessionDependencies session_deps; 674 SpdySessionDependencies session_deps;
673 session_deps.host_resolver->set_synchronous_mode(true); 675 session_deps.host_resolver->set_synchronous_mode(true);
674 676
675 MockRead reads[] = { 677 MockRead reads[] = {
676 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. 678 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever.
677 }; 679 };
678 680
679 // Create the bogus setting that we want to verify is sent out. 681 // Create the bogus setting that we want to verify is sent out.
680 // Note that it will be marked as SETTINGS_FLAG_PERSISTED when sent out. But 682 // Note that it will be marked as SETTINGS_FLAG_PERSISTED when sent out. But
681 // to set it into the SpdySettingsStorage, we need to mark as 683 // to set it into the SpdySettingsStorage, we need to mark as
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); 731 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle);
730 EXPECT_EQ(OK, connection->Init(test_host_port_pair.ToString(), 732 EXPECT_EQ(OK, connection->Init(test_host_port_pair.ToString(),
731 transport_params, MEDIUM, CompletionCallback(), 733 transport_params, MEDIUM, CompletionCallback(),
732 http_session->GetTransportSocketPool(), 734 http_session->GetTransportSocketPool(),
733 BoundNetLog())); 735 BoundNetLog()));
734 EXPECT_EQ(OK, session->InitializeWithSocket(connection.release(), false, OK)); 736 EXPECT_EQ(OK, session->InitializeWithSocket(connection.release(), false, OK));
735 MessageLoop::current()->RunAllPending(); 737 MessageLoop::current()->RunAllPending();
736 EXPECT_TRUE(data.at_write_eof()); 738 EXPECT_TRUE(data.at_write_eof());
737 } 739 }
738 740
741 namespace {
739 // This test has two variants, one for each style of closing the connection. 742 // This test has two variants, one for each style of closing the connection.
740 // If |clean_via_close_current_sessions| is false, the sessions are closed 743 // If |clean_via_close_current_sessions| is false, the sessions are closed
741 // manually, calling SpdySessionPool::Remove() directly. If it is true, 744 // manually, calling SpdySessionPool::Remove() directly. If it is true,
742 // sessions are closed with SpdySessionPool::CloseCurrentSessions(). 745 // sessions are closed with SpdySessionPool::CloseCurrentSessions().
743 void IPPoolingTest(bool clean_via_close_current_sessions) { 746 void IPPoolingTest(bool clean_via_close_current_sessions) {
744 const int kTestPort = 80; 747 const int kTestPort = 80;
745 struct TestHosts { 748 struct TestHosts {
746 std::string name; 749 std::string name;
747 std::string iplist; 750 std::string iplist;
748 HostPortProxyPair pair; 751 HostPortProxyPair pair;
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
847 } else { 850 } else {
848 spdy_session_pool->CloseCurrentSessions(); 851 spdy_session_pool->CloseCurrentSessions();
849 } 852 }
850 853
851 // Verify that the map is all cleaned up. 854 // Verify that the map is all cleaned up.
852 EXPECT_FALSE(spdy_session_pool->HasSession(test_hosts[0].pair)); 855 EXPECT_FALSE(spdy_session_pool->HasSession(test_hosts[0].pair));
853 EXPECT_FALSE(spdy_session_pool->HasSession(test_hosts[1].pair)); 856 EXPECT_FALSE(spdy_session_pool->HasSession(test_hosts[1].pair));
854 EXPECT_FALSE(spdy_session_pool->HasSession(test_hosts[2].pair)); 857 EXPECT_FALSE(spdy_session_pool->HasSession(test_hosts[2].pair));
855 } 858 }
856 859
857 TEST_F(SpdySessionTest, IPPooling) { 860 } // namespace
861
862 TEST_F(SpdySessionSpdy3Test, IPPooling) {
858 IPPoolingTest(false); 863 IPPoolingTest(false);
859 } 864 }
860 865
861 TEST_F(SpdySessionTest, IPPoolingCloseCurrentSessions) { 866 TEST_F(SpdySessionSpdy3Test, IPPoolingCloseCurrentSessions) {
862 IPPoolingTest(true); 867 IPPoolingTest(true);
863 } 868 }
864 869
865 TEST_F(SpdySessionTest, ClearSettingsStorage) { 870 TEST_F(SpdySessionSpdy3Test, ClearSettingsStorage) {
866 SpdySettingsStorage settings_storage; 871 SpdySettingsStorage settings_storage;
867 const std::string kTestHost("www.foo.com"); 872 const std::string kTestHost("www.foo.com");
868 const int kTestPort = 80; 873 const int kTestPort = 80;
869 HostPortPair test_host_port_pair(kTestHost, kTestPort); 874 HostPortPair test_host_port_pair(kTestHost, kTestPort);
870 spdy::SpdySettings test_settings; 875 spdy::SpdySettings test_settings;
871 spdy::SettingsFlagsAndId id(0); 876 spdy::SettingsFlagsAndId id(0);
872 id.set_id(spdy::SETTINGS_MAX_CONCURRENT_STREAMS); 877 id.set_id(spdy::SETTINGS_MAX_CONCURRENT_STREAMS);
873 id.set_flags(spdy::SETTINGS_FLAG_PLEASE_PERSIST); 878 id.set_flags(spdy::SETTINGS_FLAG_PLEASE_PERSIST);
874 const size_t max_concurrent_streams = 2; 879 const size_t max_concurrent_streams = 2;
875 test_settings.push_back(spdy::SpdySetting(id, max_concurrent_streams)); 880 test_settings.push_back(spdy::SpdySetting(id, max_concurrent_streams));
876 881
877 settings_storage.Set(test_host_port_pair, test_settings); 882 settings_storage.Set(test_host_port_pair, test_settings);
878 EXPECT_NE(0u, settings_storage.Get(test_host_port_pair).size()); 883 EXPECT_NE(0u, settings_storage.Get(test_host_port_pair).size());
879 settings_storage.Clear(); 884 settings_storage.Clear();
880 EXPECT_EQ(0u, settings_storage.Get(test_host_port_pair).size()); 885 EXPECT_EQ(0u, settings_storage.Get(test_host_port_pair).size());
881 } 886 }
882 887
883 TEST_F(SpdySessionTest, ClearSettingsStorageOnIPAddressChanged) { 888 TEST_F(SpdySessionSpdy3Test, ClearSettingsStorageOnIPAddressChanged) {
884 const std::string kTestHost("www.foo.com"); 889 const std::string kTestHost("www.foo.com");
885 const int kTestPort = 80; 890 const int kTestPort = 80;
886 HostPortPair test_host_port_pair(kTestHost, kTestPort); 891 HostPortPair test_host_port_pair(kTestHost, kTestPort);
887 892
888 SpdySessionDependencies session_deps; 893 SpdySessionDependencies session_deps;
889 scoped_refptr<HttpNetworkSession> http_session( 894 scoped_refptr<HttpNetworkSession> http_session(
890 SpdySessionDependencies::SpdyCreateSession(&session_deps)); 895 SpdySessionDependencies::SpdyCreateSession(&session_deps));
891 SpdySessionPool* spdy_session_pool(http_session->spdy_session_pool()); 896 SpdySessionPool* spdy_session_pool(http_session->spdy_session_pool());
892 897
893 HttpServerProperties* test_http_server_properties = 898 HttpServerProperties* test_http_server_properties =
894 spdy_session_pool->http_server_properties(); 899 spdy_session_pool->http_server_properties();
895 spdy::SettingsFlagsAndId id(0); 900 spdy::SettingsFlagsAndId id(0);
896 id.set_id(spdy::SETTINGS_MAX_CONCURRENT_STREAMS); 901 id.set_id(spdy::SETTINGS_MAX_CONCURRENT_STREAMS);
897 id.set_flags(spdy::SETTINGS_FLAG_PLEASE_PERSIST); 902 id.set_flags(spdy::SETTINGS_FLAG_PLEASE_PERSIST);
898 const size_t max_concurrent_streams = 2; 903 const size_t max_concurrent_streams = 2;
899 spdy::SpdySettings test_settings; 904 spdy::SpdySettings test_settings;
900 test_settings.push_back(spdy::SpdySetting(id, max_concurrent_streams)); 905 test_settings.push_back(spdy::SpdySetting(id, max_concurrent_streams));
901 906
902 test_http_server_properties->SetSpdySettings(test_host_port_pair, 907 test_http_server_properties->SetSpdySettings(test_host_port_pair,
903 test_settings); 908 test_settings);
904 EXPECT_NE(0u, test_http_server_properties->GetSpdySettings( 909 EXPECT_NE(0u, test_http_server_properties->GetSpdySettings(
905 test_host_port_pair).size()); 910 test_host_port_pair).size());
906 spdy_session_pool->OnIPAddressChanged(); 911 spdy_session_pool->OnIPAddressChanged();
907 EXPECT_EQ(0u, test_http_server_properties->GetSpdySettings( 912 EXPECT_EQ(0u, test_http_server_properties->GetSpdySettings(
908 test_host_port_pair).size()); 913 test_host_port_pair).size());
909 } 914 }
910 915
911 TEST_F(SpdySessionTest, NeedsCredentials) { 916 TEST_F(SpdySessionSpdy3Test, NeedsCredentials) {
912 SpdySessionDependencies session_deps; 917 SpdySessionDependencies session_deps;
913 918
914 MockConnect connect_data(SYNCHRONOUS, OK); 919 MockConnect connect_data(SYNCHRONOUS, OK);
915 MockRead reads[] = { 920 MockRead reads[] = {
916 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. 921 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever.
917 }; 922 };
918 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); 923 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0);
919 data.set_connect_data(connect_data); 924 data.set_connect_data(connect_data);
920 session_deps.socket_factory->AddSocketDataProvider(&data); 925 session_deps.socket_factory->AddSocketDataProvider(&data);
921 926
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
969 HostPortPair test_host_port_pair2(kTestHost2, kTestPort); 974 HostPortPair test_host_port_pair2(kTestHost2, kTestPort);
970 EXPECT_TRUE(session->NeedsCredentials(test_host_port_pair2)); 975 EXPECT_TRUE(session->NeedsCredentials(test_host_port_pair2));
971 976
972 // Flush the SpdySession::OnReadComplete() task. 977 // Flush the SpdySession::OnReadComplete() task.
973 MessageLoop::current()->RunAllPending(); 978 MessageLoop::current()->RunAllPending();
974 979
975 spdy_session_pool->Remove(session); 980 spdy_session_pool->Remove(session);
976 EXPECT_FALSE(spdy_session_pool->HasSession(pair)); 981 EXPECT_FALSE(spdy_session_pool->HasSession(pair));
977 } 982 }
978 983
979 TEST_F(SpdySessionTest, SendCredentials) { 984 TEST_F(SpdySessionSpdy3Test, SendCredentials) {
980 SpdySessionDependencies session_deps; 985 SpdySessionDependencies session_deps;
981 986
982 MockConnect connect_data(SYNCHRONOUS, OK); 987 MockConnect connect_data(SYNCHRONOUS, OK);
983 MockRead reads[] = { 988 MockRead reads[] = {
984 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. 989 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever.
985 }; 990 };
986 spdy::SpdySettings settings; 991 spdy::SpdySettings settings;
987 scoped_ptr<spdy::SpdyFrame> settings_frame( 992 scoped_ptr<spdy::SpdyFrame> settings_frame(
988 ConstructSpdySettings(settings)); 993 ConstructSpdySettings(settings));
989 MockWrite writes[] = { 994 MockWrite writes[] = {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1044 HostPortPair test_host_port_pair2(kTestHost2, kTestPort); 1049 HostPortPair test_host_port_pair2(kTestHost2, kTestPort);
1045 EXPECT_TRUE(session->NeedsCredentials(test_host_port_pair2)); 1050 EXPECT_TRUE(session->NeedsCredentials(test_host_port_pair2));
1046 1051
1047 // Flush the SpdySession::OnReadComplete() task. 1052 // Flush the SpdySession::OnReadComplete() task.
1048 MessageLoop::current()->RunAllPending(); 1053 MessageLoop::current()->RunAllPending();
1049 1054
1050 spdy_session_pool->Remove(session); 1055 spdy_session_pool->Remove(session);
1051 EXPECT_FALSE(spdy_session_pool->HasSession(pair)); 1056 EXPECT_FALSE(spdy_session_pool->HasSession(pair));
1052 } 1057 }
1053 1058
1054 TEST_F(SpdySessionTest, CloseSessionOnError) { 1059 TEST_F(SpdySessionSpdy3Test, CloseSessionOnError) {
1055 SpdySessionDependencies session_deps; 1060 SpdySessionDependencies session_deps;
1056 session_deps.host_resolver->set_synchronous_mode(true); 1061 session_deps.host_resolver->set_synchronous_mode(true);
1057 1062
1058 MockConnect connect_data(SYNCHRONOUS, OK); 1063 MockConnect connect_data(SYNCHRONOUS, OK);
1059 scoped_ptr<spdy::SpdyFrame> goaway(ConstructSpdyGoAway()); 1064 scoped_ptr<spdy::SpdyFrame> goaway(ConstructSpdyGoAway());
1060 MockRead reads[] = { 1065 MockRead reads[] = {
1061 CreateMockRead(*goaway), 1066 CreateMockRead(*goaway),
1062 MockRead(SYNCHRONOUS, 0, 0) // EOF 1067 MockRead(SYNCHRONOUS, 0, 0) // EOF
1063 }; 1068 };
1064 1069
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1114 net::NetLog::PHASE_NONE); 1119 net::NetLog::PHASE_NONE);
1115 1120
1116 CapturingNetLog::Entry entry = entries[pos]; 1121 CapturingNetLog::Entry entry = entries[pos];
1117 NetLogSpdySessionCloseParameter* request_params = 1122 NetLogSpdySessionCloseParameter* request_params =
1118 static_cast<NetLogSpdySessionCloseParameter*>( 1123 static_cast<NetLogSpdySessionCloseParameter*>(
1119 entry.extra_parameters.get()); 1124 entry.extra_parameters.get());
1120 EXPECT_EQ(ERR_CONNECTION_CLOSED, request_params->status()); 1125 EXPECT_EQ(ERR_CONNECTION_CLOSED, request_params->status());
1121 } 1126 }
1122 1127
1123 } // namespace net 1128 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_session_spdy2_unittest.cc ('k') | net/spdy/spdy_session_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698