Index: chrome/browser/net/http_server_properties_manager_unittest.cc |
=================================================================== |
--- chrome/browser/net/http_server_properties_manager_unittest.cc (revision 109467) |
+++ chrome/browser/net/http_server_properties_manager_unittest.cc (working copy) |
@@ -34,68 +34,41 @@ |
virtual ~TestingHttpServerPropertiesManager() { |
} |
- // Make these method public for testing. |
- using HttpServerPropertiesManager::ScheduleUpdateSpdyCacheOnUI; |
- using HttpServerPropertiesManager::ScheduleUpdateSpdyPrefsOnIO; |
- using HttpServerPropertiesManager::ScheduleUpdateAlternateProtocolCacheOnUI; |
- using HttpServerPropertiesManager::ScheduleUpdateAlternateProtocolPrefsOnIO; |
+ // Make these methods public for testing. |
+ using HttpServerPropertiesManager::ScheduleUpdateCacheOnUI; |
+ using HttpServerPropertiesManager::ScheduleUpdatePrefsOnIO; |
// Post tasks without a delay during tests. |
- virtual void StartSpdyPrefsUpdateTimerOnIO(base::TimeDelta delay) OVERRIDE { |
- HttpServerPropertiesManager::StartSpdyPrefsUpdateTimerOnIO( |
+ virtual void StartPrefsUpdateTimerOnIO(base::TimeDelta delay) OVERRIDE { |
+ HttpServerPropertiesManager::StartPrefsUpdateTimerOnIO( |
base::TimeDelta()); |
} |
- // Post tasks without a delay during tests. |
- virtual void StartAlternateProtocolPrefsUpdateTimerOnIO( |
- base::TimeDelta delay) OVERRIDE { |
- HttpServerPropertiesManager::StartAlternateProtocolPrefsUpdateTimerOnIO( |
- base::TimeDelta()); |
+ void UpdateCacheFromPrefsOnUIConcrete() { |
+ HttpServerPropertiesManager::UpdateCacheFromPrefsOnUI(); |
} |
- void UpdateSpdyCacheFromPrefsConcrete() { |
- HttpServerPropertiesManager::UpdateSpdyCacheFromPrefs(); |
- } |
- |
- void UpdateAlternateProtocolCacheFromPrefsConcrete() { |
- HttpServerPropertiesManager::UpdateAlternateProtocolCacheFromPrefs(); |
- } |
- |
// Post tasks without a delay during tests. |
- virtual void StartSpdyCacheUpdateTimerOnUI(base::TimeDelta delay) OVERRIDE { |
- HttpServerPropertiesManager::StartSpdyCacheUpdateTimerOnUI( |
+ virtual void StartCacheUpdateTimerOnUI(base::TimeDelta delay) OVERRIDE { |
+ HttpServerPropertiesManager::StartCacheUpdateTimerOnUI( |
base::TimeDelta()); |
} |
- // Post tasks without a delay during tests. |
- virtual void StartAlternateProtocolCacheUpdateTimerOnUI( |
- base::TimeDelta delay) OVERRIDE { |
- HttpServerPropertiesManager::StartAlternateProtocolCacheUpdateTimerOnUI( |
- base::TimeDelta()); |
+ void UpdatePrefsFromCacheOnIOConcrete() { |
+ HttpServerPropertiesManager::UpdatePrefsFromCacheOnIO(); |
} |
- void UpdateSpdyPrefsFromCacheConcrete() { |
- HttpServerPropertiesManager::UpdateSpdyPrefsFromCache(); |
- } |
+ MOCK_METHOD0(UpdateCacheFromPrefsOnUI, void()); |
+ MOCK_METHOD0(UpdatePrefsFromCacheOnIO, void()); |
+ MOCK_METHOD3(UpdateCacheFromPrefsOnIO, |
+ void(std::vector<std::string>* spdy_servers, |
+ RefCountedSpdySettingsMap* spdy_settings_map, |
+ RefCountedAlternateProtocolMap* alternate_protocol_map)); |
+ MOCK_METHOD3(UpdatePrefsOnUI, |
+ void(scoped_refptr<RefCountedListValue> spdy_server_list, |
+ RefCountedSpdySettingsMap* spdy_settings_map, |
+ RefCountedAlternateProtocolMap* alternate_protocol_map)); |
- void UpdateAlternateProtocolPrefsFromCacheConcrete() { |
- HttpServerPropertiesManager::UpdateAlternateProtocolPrefsFromCache(); |
- } |
- |
- MOCK_METHOD0(UpdateSpdyCacheFromPrefs, void()); |
- MOCK_METHOD0(UpdateSpdyPrefsFromCache, void()); |
- MOCK_METHOD2(UpdateSpdyCacheFromPrefsOnIO, |
- void(std::vector<std::string>* spdy_servers, bool support_spdy)); |
- MOCK_METHOD1(SetSpdyServersInPrefsOnUI, |
- void(scoped_refptr<RefCountedListValue> spdy_server_list)); |
- |
- MOCK_METHOD0(UpdateAlternateProtocolCacheFromPrefs, void()); |
- MOCK_METHOD0(UpdateAlternateProtocolPrefsFromCache, void()); |
- MOCK_METHOD1(UpdateAlternateProtocolCacheFromPrefsOnIO, |
- void(RefCountedAlternateProtocolMap*)); |
- MOCK_METHOD1(SetAlternateProtocolServersInPrefsOnUI, |
- void(RefCountedAlternateProtocolMap*)); |
- |
private: |
DISALLOW_COPY_AND_ASSIGN(TestingHttpServerPropertiesManager); |
}; |
@@ -108,12 +81,10 @@ |
} |
virtual void SetUp() OVERRIDE { |
- pref_service_.RegisterListPref(prefs::kSpdyServers); |
- pref_service_.RegisterDictionaryPref(prefs::kAlternateProtocolServers); |
+ pref_service_.RegisterDictionaryPref(prefs::kHttpServerProperties); |
http_server_props_manager_.reset( |
new StrictMock<TestingHttpServerPropertiesManager>(&pref_service_)); |
- ExpectSpdyCacheUpdate(); |
- ExpectAlternateProtocolCacheUpdate(); |
+ ExpectCacheUpdate(); |
loop_.RunAllPending(); |
} |
@@ -126,40 +97,22 @@ |
http_server_props_manager_.reset(); |
} |
- void ExpectSpdyCacheUpdate() { |
- EXPECT_CALL(*http_server_props_manager_, UpdateSpdyCacheFromPrefs()) |
+ void ExpectCacheUpdate() { |
+ EXPECT_CALL(*http_server_props_manager_, UpdateCacheFromPrefsOnUI()) |
.WillOnce( |
Invoke(http_server_props_manager_.get(), |
&TestingHttpServerPropertiesManager:: |
- UpdateSpdyCacheFromPrefsConcrete)); |
+ UpdateCacheFromPrefsOnUIConcrete)); |
} |
- void ExpectSpdyPrefsUpdate() { |
- EXPECT_CALL(*http_server_props_manager_, UpdateSpdyPrefsFromCache()) |
+ void ExpectPrefsUpdate() { |
+ EXPECT_CALL(*http_server_props_manager_, UpdatePrefsFromCacheOnIO()) |
.WillOnce( |
Invoke(http_server_props_manager_.get(), |
&TestingHttpServerPropertiesManager:: |
- UpdateSpdyPrefsFromCacheConcrete)); |
+ UpdatePrefsFromCacheOnIOConcrete)); |
} |
- void ExpectAlternateProtocolCacheUpdate() { |
- EXPECT_CALL(*http_server_props_manager_, |
- UpdateAlternateProtocolCacheFromPrefs()) |
- .WillOnce( |
- Invoke(http_server_props_manager_.get(), |
- &TestingHttpServerPropertiesManager:: |
- UpdateAlternateProtocolCacheFromPrefsConcrete)); |
- } |
- |
- void ExpectAlternateProtocolPrefsUpdate() { |
- EXPECT_CALL(*http_server_props_manager_, |
- UpdateAlternateProtocolPrefsFromCache()) |
- .WillOnce( |
- Invoke(http_server_props_manager_.get(), |
- &TestingHttpServerPropertiesManager:: |
- UpdateAlternateProtocolPrefsFromCacheConcrete)); |
- } |
- |
MessageLoop loop_; |
TestingPrefService pref_service_; |
scoped_ptr<TestingHttpServerPropertiesManager> http_server_props_manager_; |
@@ -171,32 +124,127 @@ |
DISALLOW_COPY_AND_ASSIGN(HttpServerPropertiesManagerTest); |
}; |
-TEST_F(HttpServerPropertiesManagerTest, SingleUpdateForTwoSpdyPrefChanges) { |
- ExpectSpdyCacheUpdate(); |
+TEST_F(HttpServerPropertiesManagerTest, |
+ SingleUpdateForTwoSpdyServerPrefChanges) { |
+ ExpectCacheUpdate(); |
- // Set up the pref and then set it twice. Only expect a single cache update. |
- base::ListValue* http_server_props = new base::ListValue; |
- http_server_props->Append(new base::StringValue("www.google.com:443")); |
- pref_service_.SetManagedPref(prefs::kSpdyServers, http_server_props); |
- http_server_props = http_server_props->DeepCopy(); |
- http_server_props->Append(new base::StringValue("mail.google.com:443")); |
- pref_service_.SetManagedPref(prefs::kSpdyServers, http_server_props); |
+ // Set up the prefs for www.google.com:80 and mail.google.com:80 and then set |
+ // it twice. Only expect a single cache update. |
+ |
+ base::DictionaryValue* server_pref_dict = new base::DictionaryValue; |
+ |
+ // Set supports_spdy for www.google.com:80. |
+ server_pref_dict->SetBoolean("supports_spdy", true); |
+ |
+ // Set up the SpdySettings for www.google.com:80. |
+ base::ListValue* spdy_settings_list = new base::ListValue; |
+ base::DictionaryValue* spdy_setting_dict = new base::DictionaryValue; |
+ spdy_setting_dict->SetInteger("flags", spdy::SETTINGS_FLAG_PERSISTED); |
+ spdy_setting_dict->SetInteger("id", 1234); |
+ spdy_setting_dict->SetInteger("value", 31337); |
+ spdy_settings_list->Append(spdy_setting_dict); |
+ server_pref_dict->Set("settings", spdy_settings_list); |
+ |
+ // Set up alternate_protocol for www.google.com:80. |
+ base::DictionaryValue* alternate_protocol = new base::DictionaryValue; |
+ alternate_protocol->SetInteger("port", 443); |
+ alternate_protocol->SetInteger("protocol", static_cast<int>(net::NPN_SPDY_1)); |
+ server_pref_dict->SetWithoutPathExpansion( |
+ "alternate_protocol", alternate_protocol); |
+ |
+ // Set the server preference for www.google.com:80. |
+ base::DictionaryValue* http_server_properties_dict = |
+ new base::DictionaryValue; |
+ http_server_properties_dict->SetWithoutPathExpansion( |
+ "www.google.com:80", server_pref_dict); |
+ |
+ // Set the preference for mail.google.com server. |
+ base::DictionaryValue* server_pref_dict1 = new base::DictionaryValue; |
+ |
+ // Set supports_spdy for mail.google.com:80 |
+ server_pref_dict1->SetBoolean("supports_spdy", true); |
+ |
+ // Set up the SpdySettings for mail.google.com:80 |
+ base::ListValue* spdy_settings_list1 = new base::ListValue; |
+ base::DictionaryValue* spdy_setting_dict1 = new base::DictionaryValue; |
+ spdy_setting_dict1->SetInteger("flags", spdy::SETTINGS_FLAG_PERSISTED); |
+ spdy_setting_dict1->SetInteger("id", 5678); |
+ spdy_setting_dict1->SetInteger("value", 62667); |
+ spdy_settings_list1->Append(spdy_setting_dict1); |
+ server_pref_dict1->Set("settings", spdy_settings_list1); |
+ |
+ // Set up alternate_protocol for mail.google.com:80 |
+ base::DictionaryValue* alternate_protocol1 = new base::DictionaryValue; |
+ alternate_protocol1->SetInteger("port", 444); |
+ alternate_protocol1->SetInteger( |
+ "protocol", static_cast<int>(net::NPN_SPDY_2)); |
+ server_pref_dict1->SetWithoutPathExpansion( |
+ "alternate_protocol", alternate_protocol1); |
+ |
+ // Set the server preference for mail.google.com:80. |
+ http_server_properties_dict->SetWithoutPathExpansion( |
+ "mail.google.com:80", server_pref_dict1); |
+ |
+ // Set the same value for kHttpServerProperties multiple times. |
+ pref_service_.SetManagedPref(prefs::kHttpServerProperties, |
+ http_server_properties_dict); |
+ base::DictionaryValue* http_server_properties_dict2 = |
+ http_server_properties_dict->DeepCopy(); |
+ pref_service_.SetManagedPref(prefs::kHttpServerProperties, |
+ http_server_properties_dict2); |
+ |
loop_.RunAllPending(); |
Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
+ // Verify SupportsSpdy. |
EXPECT_TRUE(http_server_props_manager_->SupportsSpdy( |
- net::HostPortPair::FromString("www.google.com:443"))); |
+ net::HostPortPair::FromString("www.google.com:80"))); |
EXPECT_TRUE(http_server_props_manager_->SupportsSpdy( |
- net::HostPortPair::FromString("mail.google.com:443"))); |
+ net::HostPortPair::FromString("mail.google.com:80"))); |
EXPECT_FALSE(http_server_props_manager_->SupportsSpdy( |
net::HostPortPair::FromString("foo.google.com:1337"))); |
+ |
+ // Verify SpdySettings. |
+ spdy::SpdySettings spdy_settings_ret = |
+ http_server_props_manager_->GetSpdySettings( |
+ net::HostPortPair::FromString("www.google.com:80")); |
+ EXPECT_EQ(1U, spdy_settings_ret.size()); |
+ spdy::SpdySetting spdy_setting1_ret = spdy_settings_ret.front(); |
+ spdy::SettingsFlagsAndId id1_ret(spdy_setting1_ret.first); |
+ EXPECT_EQ(1234U, id1_ret.id()); |
+ EXPECT_EQ(spdy::SETTINGS_FLAG_PERSISTED, id1_ret.flags()); |
+ EXPECT_EQ(31337u, spdy_setting1_ret.second); |
+ spdy_settings_ret = http_server_props_manager_->GetSpdySettings( |
+ net::HostPortPair::FromString("mail.google.com:80")); |
+ EXPECT_EQ(1U, spdy_settings_ret.size()); |
willchan no longer on Chromium
2011/11/11 23:00:01
ASSERT_EQ
ramant (doing other things)
2011/11/12 07:08:42
Done.
|
+ spdy_setting1_ret = spdy_settings_ret.front(); |
+ id1_ret = spdy_setting1_ret.first; |
+ EXPECT_EQ(5678U, id1_ret.id()); |
+ EXPECT_EQ(spdy::SETTINGS_FLAG_PERSISTED, id1_ret.flags()); |
+ EXPECT_EQ(62667u, spdy_setting1_ret.second); |
+ |
+ // Verify AlternateProtocol. |
+ ASSERT_TRUE(http_server_props_manager_->HasAlternateProtocol( |
+ net::HostPortPair::FromString("www.google.com:80"))); |
+ ASSERT_TRUE(http_server_props_manager_->HasAlternateProtocol( |
+ net::HostPortPair::FromString("mail.google.com:80"))); |
+ net::PortAlternateProtocolPair port_alternate_protocol = |
+ http_server_props_manager_->GetAlternateProtocol( |
+ net::HostPortPair::FromString("www.google.com:80")); |
+ EXPECT_EQ(443, port_alternate_protocol.port); |
+ EXPECT_EQ(net::NPN_SPDY_1, port_alternate_protocol.protocol); |
+ port_alternate_protocol = |
+ http_server_props_manager_->GetAlternateProtocol( |
+ net::HostPortPair::FromString("mail.google.com:80")); |
+ EXPECT_EQ(444, port_alternate_protocol.port); |
+ EXPECT_EQ(net::NPN_SPDY_2, port_alternate_protocol.protocol); |
} |
TEST_F(HttpServerPropertiesManagerTest, SupportsSpdy) { |
- ExpectSpdyPrefsUpdate(); |
+ ExpectPrefsUpdate(); |
// Post an update task to the IO thread. SetSupportsSpdy calls |
- // ScheduleUpdateSpdyPrefsOnIO. |
+ // ScheduleUpdatePrefsOnIO. |
// Add mail.google.com:443 as a supporting spdy server. |
net::HostPortPair spdy_server_mail("mail.google.com", 443); |
@@ -210,174 +258,108 @@ |
Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
} |
-TEST_F(HttpServerPropertiesManagerTest, Clear) { |
- ExpectSpdyPrefsUpdate(); |
- ExpectAlternateProtocolPrefsUpdate(); |
+TEST_F(HttpServerPropertiesManagerTest, SetSpdySettings) { |
+ ExpectPrefsUpdate(); |
+ // Add SpdySettings for mail.google.com:443. |
net::HostPortPair spdy_server_mail("mail.google.com", 443); |
- http_server_props_manager_->SetSupportsSpdy(spdy_server_mail, true); |
- http_server_props_manager_->SetAlternateProtocol( |
- spdy_server_mail, 443, net::NPN_SPDY_2); |
+ spdy::SpdySettings spdy_settings; |
+ spdy::SettingsFlagsAndId id1(0); |
+ id1.set_flags(spdy::SETTINGS_FLAG_PLEASE_PERSIST); |
+ id1.set_id(1234); |
+ spdy_settings.push_back(std::make_pair(id1, 31337)); |
+ http_server_props_manager_->SetSpdySettings(spdy_server_mail, spdy_settings); |
// Run the task. |
loop_.RunAllPending(); |
- EXPECT_TRUE(http_server_props_manager_->SupportsSpdy(spdy_server_mail)); |
- EXPECT_TRUE( |
- http_server_props_manager_->HasAlternateProtocol(spdy_server_mail)); |
+ spdy::SpdySettings spdy_settings_ret = |
+ http_server_props_manager_->GetSpdySettings(spdy_server_mail); |
+ EXPECT_EQ(1U, spdy_settings_ret.size()); |
willchan no longer on Chromium
2011/11/11 23:00:01
ASSERT_EQ, otherwise the next line may crash.
ramant (doing other things)
2011/11/12 07:08:42
Done.
|
+ spdy::SpdySetting spdy_setting1_ret = spdy_settings_ret.front(); |
+ spdy::SettingsFlagsAndId id1_ret(spdy_setting1_ret.first); |
+ EXPECT_EQ(1234U, id1_ret.id()); |
+ EXPECT_EQ(spdy::SETTINGS_FLAG_PERSISTED, id1_ret.flags()); |
+ EXPECT_EQ(31337U, spdy_setting1_ret.second); |
+ |
Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
+} |
- ExpectSpdyPrefsUpdate(); |
- ExpectAlternateProtocolPrefsUpdate(); |
- // Clear http server data. |
- http_server_props_manager_->Clear(); |
+TEST_F(HttpServerPropertiesManagerTest, HasAlternateProtocol) { |
+ ExpectPrefsUpdate(); |
- // Run the task. |
- loop_.RunAllPending(); |
- |
- EXPECT_FALSE(http_server_props_manager_->SupportsSpdy(spdy_server_mail)); |
+ net::HostPortPair spdy_server_mail("mail.google.com", 80); |
EXPECT_FALSE( |
http_server_props_manager_->HasAlternateProtocol(spdy_server_mail)); |
- Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
-} |
+ http_server_props_manager_->SetAlternateProtocol( |
+ spdy_server_mail, 443, net::NPN_SPDY_2); |
-TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateSpdyCache0) { |
- // Post an update task to the UI thread. |
- http_server_props_manager_->ScheduleUpdateSpdyCacheOnUI(); |
- // Shutdown comes before the task is executed. |
- http_server_props_manager_->ShutdownOnUIThread(); |
- http_server_props_manager_.reset(); |
- // Run the task after shutdown and deletion. |
+ // Run the task. |
loop_.RunAllPending(); |
-} |
- |
-TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateSpdyCache1) { |
- // Post an update task. |
- http_server_props_manager_->ScheduleUpdateSpdyCacheOnUI(); |
- // Shutdown comes before the task is executed. |
- http_server_props_manager_->ShutdownOnUIThread(); |
- // Run the task after shutdown, but before deletion. |
- loop_.RunAllPending(); |
Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
- http_server_props_manager_.reset(); |
- loop_.RunAllPending(); |
-} |
-TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateSpdyCache2) { |
- http_server_props_manager_->UpdateSpdyCacheFromPrefsConcrete(); |
- // Shutdown comes before the task is executed. |
- http_server_props_manager_->ShutdownOnUIThread(); |
- // Run the task after shutdown, but before deletion. |
- loop_.RunAllPending(); |
- Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
- http_server_props_manager_.reset(); |
- loop_.RunAllPending(); |
+ ASSERT_TRUE( |
+ http_server_props_manager_->HasAlternateProtocol(spdy_server_mail)); |
+ net::PortAlternateProtocolPair port_alternate_protocol = |
+ http_server_props_manager_->GetAlternateProtocol(spdy_server_mail); |
+ EXPECT_EQ(443, port_alternate_protocol.port); |
+ EXPECT_EQ(net::NPN_SPDY_2, port_alternate_protocol.protocol); |
} |
-// |
-// Tests for shutdown when updating prefs. |
-// |
-TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateSpdyPrefs0) { |
- // Post an update task to the IO thread. |
- http_server_props_manager_->ScheduleUpdateSpdyPrefsOnIO(); |
- // Shutdown comes before the task is executed. |
- http_server_props_manager_->ShutdownOnUIThread(); |
- http_server_props_manager_.reset(); |
- // Run the task after shutdown and deletion. |
- loop_.RunAllPending(); |
-} |
+TEST_F(HttpServerPropertiesManagerTest, Clear) { |
+ ExpectPrefsUpdate(); |
-TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateSpdyPrefs1) { |
- ExpectSpdyPrefsUpdate(); |
- // Post an update task. |
- http_server_props_manager_->ScheduleUpdateSpdyPrefsOnIO(); |
- // Shutdown comes before the task is executed. |
- http_server_props_manager_->ShutdownOnUIThread(); |
- // Run the task after shutdown, but before deletion. |
- loop_.RunAllPending(); |
- Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
- http_server_props_manager_.reset(); |
- loop_.RunAllPending(); |
-} |
+ net::HostPortPair spdy_server_mail("mail.google.com", 443); |
+ http_server_props_manager_->SetSupportsSpdy(spdy_server_mail, true); |
+ http_server_props_manager_->SetAlternateProtocol( |
+ spdy_server_mail, 443, net::NPN_SPDY_2); |
-TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateSpdyPrefs2) { |
- // This posts a task to the UI thread. |
- http_server_props_manager_->UpdateSpdyPrefsFromCacheConcrete(); |
- // Shutdown comes before the task is executed. |
- http_server_props_manager_->ShutdownOnUIThread(); |
- // Run the task after shutdown, but before deletion. |
+ spdy::SpdySettings spdy_settings; |
+ spdy::SettingsFlagsAndId id1(0); |
+ id1.set_flags(spdy::SETTINGS_FLAG_PLEASE_PERSIST); |
+ id1.set_id(1234); |
+ spdy_settings.push_back(std::make_pair(id1, 31337)); |
+ http_server_props_manager_->SetSpdySettings(spdy_server_mail, spdy_settings); |
+ |
+ // Run the task. |
loop_.RunAllPending(); |
- Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
- http_server_props_manager_.reset(); |
- loop_.RunAllPending(); |
-} |
-TEST_F(HttpServerPropertiesManagerTest, |
- SingleUpdateForTwoAlternateProtocolPrefChanges) { |
- ExpectAlternateProtocolCacheUpdate(); |
+ EXPECT_TRUE(http_server_props_manager_->SupportsSpdy(spdy_server_mail)); |
+ EXPECT_TRUE( |
+ http_server_props_manager_->HasAlternateProtocol(spdy_server_mail)); |
- // Set up the pref and then set it twice. Only expect a single cache update. |
- base::DictionaryValue* alternate_protocol_servers = new base::DictionaryValue; |
- base::DictionaryValue* alternate_protocol = new base::DictionaryValue; |
- alternate_protocol->SetInteger("port", 443); |
- alternate_protocol->SetInteger("protocol", static_cast<int>(net::NPN_SPDY_1)); |
- alternate_protocol_servers->SetWithoutPathExpansion( |
- "www.google.com:80", alternate_protocol); |
- alternate_protocol = new base::DictionaryValue; |
- alternate_protocol->SetInteger("port", 444); |
- alternate_protocol->SetInteger("protocol", static_cast<int>(net::NPN_SPDY_2)); |
- alternate_protocol_servers->SetWithoutPathExpansion( |
- "mail.google.com:80", alternate_protocol); |
- pref_service_.SetManagedPref(prefs::kAlternateProtocolServers, |
- alternate_protocol_servers); |
- alternate_protocol_servers = alternate_protocol_servers->DeepCopy(); |
- pref_service_.SetManagedPref(prefs::kAlternateProtocolServers, |
- alternate_protocol_servers); |
- loop_.RunAllPending(); |
+ spdy::SpdySettings spdy_settings_ret = |
+ http_server_props_manager_->GetSpdySettings(spdy_server_mail); |
+ EXPECT_EQ(1U, spdy_settings_ret.size()); |
+ spdy::SpdySetting spdy_setting1_ret = spdy_settings_ret.front(); |
+ spdy::SettingsFlagsAndId id1_ret(spdy_setting1_ret.first); |
+ EXPECT_EQ(1234U, id1_ret.id()); |
+ EXPECT_EQ(spdy::SETTINGS_FLAG_PERSISTED, id1_ret.flags()); |
+ EXPECT_EQ(31337U, spdy_setting1_ret.second); |
Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
- ASSERT_TRUE(http_server_props_manager_->HasAlternateProtocol( |
- net::HostPortPair::FromString("www.google.com:80"))); |
- ASSERT_TRUE(http_server_props_manager_->HasAlternateProtocol( |
- net::HostPortPair::FromString("mail.google.com:80"))); |
- net::PortAlternateProtocolPair port_alternate_protocol = |
- http_server_props_manager_->GetAlternateProtocol( |
- net::HostPortPair::FromString("www.google.com:80")); |
- EXPECT_EQ(443, port_alternate_protocol.port); |
- EXPECT_EQ(net::NPN_SPDY_1, port_alternate_protocol.protocol); |
- port_alternate_protocol = |
- http_server_props_manager_->GetAlternateProtocol( |
- net::HostPortPair::FromString("mail.google.com:80")); |
- EXPECT_EQ(444, port_alternate_protocol.port); |
- EXPECT_EQ(net::NPN_SPDY_2, port_alternate_protocol.protocol); |
-} |
+ ExpectPrefsUpdate(); |
+ // Clear http server data. |
+ http_server_props_manager_->Clear(); |
-TEST_F(HttpServerPropertiesManagerTest, HasAlternateProtocol) { |
- ExpectAlternateProtocolPrefsUpdate(); |
+ // Run the task. |
+ loop_.RunAllPending(); |
- net::HostPortPair spdy_server_mail("mail.google.com", 80); |
+ EXPECT_FALSE(http_server_props_manager_->SupportsSpdy(spdy_server_mail)); |
EXPECT_FALSE( |
http_server_props_manager_->HasAlternateProtocol(spdy_server_mail)); |
- http_server_props_manager_->SetAlternateProtocol( |
- spdy_server_mail, 443, net::NPN_SPDY_2); |
- // Run the task. |
- loop_.RunAllPending(); |
- Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
+ spdy::SpdySettings spdy_settings1_ret = |
+ http_server_props_manager_->GetSpdySettings(spdy_server_mail); |
+ EXPECT_EQ(0U, spdy_settings1_ret.size()); |
- ASSERT_TRUE( |
- http_server_props_manager_->HasAlternateProtocol(spdy_server_mail)); |
- net::PortAlternateProtocolPair port_alternate_protocol = |
- http_server_props_manager_->GetAlternateProtocol(spdy_server_mail); |
- EXPECT_EQ(443, port_alternate_protocol.port); |
- EXPECT_EQ(net::NPN_SPDY_2, port_alternate_protocol.protocol); |
+ Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
} |
-TEST_F(HttpServerPropertiesManagerTest, |
- ShutdownWithPendingUpdateAlternateProtocolCache0) { |
+TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache0) { |
// Post an update task to the UI thread. |
- http_server_props_manager_->ScheduleUpdateAlternateProtocolCacheOnUI(); |
+ http_server_props_manager_->ScheduleUpdateCacheOnUI(); |
// Shutdown comes before the task is executed. |
http_server_props_manager_->ShutdownOnUIThread(); |
http_server_props_manager_.reset(); |
@@ -385,10 +367,9 @@ |
loop_.RunAllPending(); |
} |
-TEST_F(HttpServerPropertiesManagerTest, |
- ShutdownWithPendingUpdateAlternateProtocolCache1) { |
+TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache1) { |
// Post an update task. |
- http_server_props_manager_->ScheduleUpdateAlternateProtocolCacheOnUI(); |
+ http_server_props_manager_->ScheduleUpdateCacheOnUI(); |
// Shutdown comes before the task is executed. |
http_server_props_manager_->ShutdownOnUIThread(); |
// Run the task after shutdown, but before deletion. |
@@ -398,9 +379,8 @@ |
loop_.RunAllPending(); |
} |
-TEST_F(HttpServerPropertiesManagerTest, |
- ShutdownWithPendingUpdateAlternateProtocolCache2) { |
- http_server_props_manager_->UpdateAlternateProtocolCacheFromPrefsConcrete(); |
+TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache2) { |
+ http_server_props_manager_->UpdateCacheFromPrefsOnUIConcrete(); |
// Shutdown comes before the task is executed. |
http_server_props_manager_->ShutdownOnUIThread(); |
// Run the task after shutdown, but before deletion. |
@@ -413,10 +393,9 @@ |
// |
// Tests for shutdown when updating prefs. |
// |
-TEST_F(HttpServerPropertiesManagerTest, |
- ShutdownWithPendingUpdateAlternateProtocolPrefs0) { |
+TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs0) { |
// Post an update task to the IO thread. |
- http_server_props_manager_->ScheduleUpdateAlternateProtocolPrefsOnIO(); |
+ http_server_props_manager_->ScheduleUpdatePrefsOnIO(); |
// Shutdown comes before the task is executed. |
http_server_props_manager_->ShutdownOnUIThread(); |
http_server_props_manager_.reset(); |
@@ -424,11 +403,10 @@ |
loop_.RunAllPending(); |
} |
-TEST_F(HttpServerPropertiesManagerTest, |
- ShutdownWithPendingUpdateAlternateProtocolPrefs1) { |
- ExpectAlternateProtocolPrefsUpdate(); |
+TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs1) { |
+ ExpectPrefsUpdate(); |
// Post an update task. |
- http_server_props_manager_->ScheduleUpdateAlternateProtocolPrefsOnIO(); |
+ http_server_props_manager_->ScheduleUpdatePrefsOnIO(); |
// Shutdown comes before the task is executed. |
http_server_props_manager_->ShutdownOnUIThread(); |
// Run the task after shutdown, but before deletion. |
@@ -438,10 +416,9 @@ |
loop_.RunAllPending(); |
} |
-TEST_F(HttpServerPropertiesManagerTest, |
- ShutdownWithPendingUpdateAlternateProtocolPrefs2) { |
+TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs2) { |
// This posts a task to the UI thread. |
- http_server_props_manager_->UpdateAlternateProtocolPrefsFromCacheConcrete(); |
+ http_server_props_manager_->UpdatePrefsFromCacheOnIOConcrete(); |
// Shutdown comes before the task is executed. |
http_server_props_manager_->ShutdownOnUIThread(); |
// Run the task after shutdown, but before deletion. |