Index: net/spdy/spdy_session_unittest.cc |
=================================================================== |
--- net/spdy/spdy_session_unittest.cc (revision 85710) |
+++ net/spdy/spdy_session_unittest.cc (working copy) |
@@ -527,6 +527,68 @@ |
IPPoolingTest(true); |
} |
+TEST_F(SpdySessionTest, ClearSettingsStorage) { |
+ SpdySettingsStorage new_settings_storage; |
+ const std::string kTestHost("www.foo.com"); |
+ const int kTestPort = 80; |
+ HostPortPair test_host_port_pair(kTestHost, kTestPort); |
+ spdy::SpdySettings test_settings; |
+ spdy::SettingsFlagsAndId id(spdy::SETTINGS_FLAG_PLEASE_PERSIST); |
+ id.set_id(spdy::SETTINGS_FLAG_PLEASE_PERSIST); |
+ const size_t max_concurrent_streams = 2; |
+ test_settings.push_back(spdy::SpdySetting(id, max_concurrent_streams)); |
+ |
+ new_settings_storage.Set(test_host_port_pair, test_settings); |
+ EXPECT_NE(0u, new_settings_storage.Get(test_host_port_pair).size()); |
+ new_settings_storage.Clear(); |
+ EXPECT_EQ(0u, new_settings_storage.Get(test_host_port_pair).size()); |
+} |
+ |
+TEST_F(SpdySessionTest, ClearOnIPAddressChanged) { |
wtc
2011/05/20 23:04:28
This test should be named ClearSettingsStorageOnIP
rkn1
2011/05/21 01:05:48
Done.
|
+ SpdySessionDependencies session_deps; |
+ session_deps.host_resolver->set_synchronous_mode(true); |
+ |
+ MockConnect connect_data(false, OK); |
+ scoped_ptr<spdy::SpdyFrame> goaway(ConstructSpdyGoAway()); |
+ MockRead reads[] = { |
+ CreateMockRead(*goaway), |
+ MockRead(false, 0, 0) // EOF |
+ }; |
+ StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); |
+ data.set_connect_data(connect_data); |
+ session_deps.socket_factory->AddSocketDataProvider(&data); |
+ |
+ SSLSocketDataProvider ssl(false, OK); |
+ session_deps.socket_factory->AddSSLSocketDataProvider(&ssl); |
+ |
+ scoped_refptr<HttpNetworkSession> http_session( |
+ SpdySessionDependencies::SpdyCreateSession(&session_deps)); |
+ |
+ const std::string kTestHost("www.foo.com"); |
+ const int kTestPort = 80; |
+ HostPortPair test_host_port_pair(kTestHost, kTestPort); |
+ HostPortProxyPair pair(test_host_port_pair, ProxyServer::Direct()); |
+ |
+ SpdySessionPool* spdy_session_pool(http_session->spdy_session_pool()); |
+ // All of the above code is copied from |
+ // "TEST_F(SpdySessionTest, SpdyIOBuffer)" |
+ // in order to create a SpdySessionPool object. |
rkn1
2011/05/20 22:01:36
The above code in this test was copied from a test
wtc
2011/05/20 23:04:28
This comment is not necessary. (It's also wrong;
rkn1
2011/05/21 01:05:48
Done.
|
+ |
+ SpdySettingsStorage* test_settings_storage = |
+ spdy_session_pool->mutable_spdy_settings(); |
wtc
2011/05/20 23:04:28
This continuation line should be indented by 4 spa
rkn1
2011/05/21 01:05:48
Done.
|
+ spdy::SettingsFlagsAndId id(spdy::SETTINGS_FLAG_PLEASE_PERSIST); |
+ id.set_id(spdy::SETTINGS_FLAG_PLEASE_PERSIST); |
+ const size_t max_concurrent_streams = 2; |
+ spdy::SpdySettings test_settings; |
+ test_settings.push_back(spdy::SpdySetting(id, max_concurrent_streams)); |
+ |
+ test_settings_storage->Set(test_host_port_pair, test_settings); |
+ EXPECT_NE(0u, test_settings_storage->Get(test_host_port_pair).size()); |
+ spdy_session_pool->OnIPAddressChanged(); |
+ EXPECT_EQ(0u, test_settings_storage->Get(test_host_port_pair).size()); |
+ |
+} |
+ |
} // namespace |
} // namespace net |