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

Unified Diff: chrome/browser/net/http_server_properties_manager_unittest.cc

Issue 8770035: Save pipelining capabilities for the most used hosts between sessions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merged Created 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/net/http_server_properties_manager.cc ('k') | net/http/http_pipelined_host.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/net/http_server_properties_manager_unittest.cc
diff --git a/chrome/browser/net/http_server_properties_manager_unittest.cc b/chrome/browser/net/http_server_properties_manager_unittest.cc
index 98cb86b00d43164c1846f3c5010b9e789bdfad2f..c2b3d9040fc232953a1bf32b3d8e0df626ee2487 100644
--- a/chrome/browser/net/http_server_properties_manager_unittest.cc
+++ b/chrome/browser/net/http_server_properties_manager_unittest.cc
@@ -60,14 +60,16 @@ class TestingHttpServerPropertiesManager : public HttpServerPropertiesManager {
MOCK_METHOD0(UpdateCacheFromPrefsOnUI, void());
MOCK_METHOD0(UpdatePrefsFromCacheOnIO, void());
- MOCK_METHOD3(UpdateCacheFromPrefsOnIO,
+ MOCK_METHOD4(UpdateCacheFromPrefsOnIO,
void(std::vector<std::string>* spdy_servers,
net::SpdySettingsMap* spdy_settings_map,
- net::AlternateProtocolMap* alternate_protocol_map));
- MOCK_METHOD3(UpdatePrefsOnUI,
+ net::AlternateProtocolMap* alternate_protocol_map,
+ net::PipelineCapabilityMap* pipeline_capability_map));
+ MOCK_METHOD4(UpdatePrefsOnUI,
void(base::ListValue* spdy_server_list,
net::SpdySettingsMap* spdy_settings_map,
- net::AlternateProtocolMap* alternate_protocol_map));
+ net::AlternateProtocolMap* alternate_protocol_map,
+ net::PipelineCapabilityMap* pipeline_capability_map));
private:
DISALLOW_COPY_AND_ASSIGN(TestingHttpServerPropertiesManager);
@@ -152,6 +154,9 @@ TEST_F(HttpServerPropertiesManagerTest,
server_pref_dict->SetWithoutPathExpansion(
"alternate_protocol", alternate_protocol);
+ // Set pipeline capability for www.google.com:80.
+ server_pref_dict->SetInteger("pipeline_capability", net::PIPELINE_CAPABLE);
+
// Set the server preference for www.google.com:80.
base::DictionaryValue* http_server_properties_dict =
new base::DictionaryValue;
@@ -181,6 +186,9 @@ TEST_F(HttpServerPropertiesManagerTest,
server_pref_dict1->SetWithoutPathExpansion(
"alternate_protocol", alternate_protocol1);
+ // Set pipelining capability for mail.google.com:80
+ server_pref_dict1->SetInteger("pipeline_capability", net::PIPELINE_INCAPABLE);
+
// Set the server preference for mail.google.com:80.
http_server_properties_dict->SetWithoutPathExpansion(
"mail.google.com:80", server_pref_dict1);
@@ -238,6 +246,14 @@ TEST_F(HttpServerPropertiesManagerTest,
net::HostPortPair::FromString("mail.google.com:80"));
EXPECT_EQ(444, port_alternate_protocol.port);
EXPECT_EQ(net::NPN_SPDY_2, port_alternate_protocol.protocol);
+
+ // Verify pipeline capability.
+ EXPECT_EQ(net::PIPELINE_CAPABLE,
+ http_server_props_manager_->GetPipelineCapability(
+ net::HostPortPair::FromString("www.google.com:80")));
+ EXPECT_EQ(net::PIPELINE_INCAPABLE,
+ http_server_props_manager_->GetPipelineCapability(
+ net::HostPortPair::FromString("mail.google.com:80")));
}
TEST_F(HttpServerPropertiesManagerTest, SupportsSpdy) {
@@ -306,6 +322,33 @@ TEST_F(HttpServerPropertiesManagerTest, HasAlternateProtocol) {
EXPECT_EQ(net::NPN_SPDY_2, port_alternate_protocol.protocol);
}
+TEST_F(HttpServerPropertiesManagerTest, PipelineCapability) {
+ ExpectPrefsUpdate();
+
+ net::HostPortPair known_pipeliner("pipeline.com", 8080);
+ net::HostPortPair bad_pipeliner("wordpress.com", 80);
+ EXPECT_EQ(net::PIPELINE_UNKNOWN,
+ http_server_props_manager_->GetPipelineCapability(known_pipeliner));
+ EXPECT_EQ(net::PIPELINE_UNKNOWN,
+ http_server_props_manager_->GetPipelineCapability(bad_pipeliner));
+
+ // Post an update task to the IO thread. SetPipelineCapability calls
+ // ScheduleUpdatePrefsOnIO.
+ http_server_props_manager_->SetPipelineCapability(known_pipeliner,
+ net::PIPELINE_CAPABLE);
+ http_server_props_manager_->SetPipelineCapability(bad_pipeliner,
+ net::PIPELINE_INCAPABLE);
+
+ // Run the task.
+ loop_.RunAllPending();
+
+ EXPECT_EQ(net::PIPELINE_CAPABLE,
+ http_server_props_manager_->GetPipelineCapability(known_pipeliner));
+ EXPECT_EQ(net::PIPELINE_INCAPABLE,
+ http_server_props_manager_->GetPipelineCapability(bad_pipeliner));
+ Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
+}
+
TEST_F(HttpServerPropertiesManagerTest, Clear) {
ExpectPrefsUpdate();
@@ -321,6 +364,10 @@ TEST_F(HttpServerPropertiesManagerTest, Clear) {
spdy_settings.push_back(std::make_pair(id1, 31337));
http_server_props_manager_->SetSpdySettings(spdy_server_mail, spdy_settings);
+ net::HostPortPair known_pipeliner("pipeline.com", 8080);
+ http_server_props_manager_->SetPipelineCapability(known_pipeliner,
+ net::PIPELINE_CAPABLE);
+
// Run the task.
loop_.RunAllPending();
@@ -337,6 +384,9 @@ TEST_F(HttpServerPropertiesManagerTest, Clear) {
EXPECT_EQ(spdy::SETTINGS_FLAG_PERSISTED, id1_ret.flags());
EXPECT_EQ(31337U, spdy_setting1_ret.second);
+ EXPECT_EQ(net::PIPELINE_CAPABLE,
+ http_server_props_manager_->GetPipelineCapability(known_pipeliner));
+
Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
ExpectPrefsUpdate();
@@ -354,6 +404,9 @@ TEST_F(HttpServerPropertiesManagerTest, Clear) {
http_server_props_manager_->GetSpdySettings(spdy_server_mail);
EXPECT_EQ(0U, spdy_settings1_ret.size());
+ EXPECT_EQ(net::PIPELINE_UNKNOWN,
+ http_server_props_manager_->GetPipelineCapability(known_pipeliner));
+
Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
}
« no previous file with comments | « chrome/browser/net/http_server_properties_manager.cc ('k') | net/http/http_pipelined_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698