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

Unified Diff: net/http/http_server_properties_manager_unittest.cc

Issue 839143002: Roll Chrome into Mojo. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Rebase Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/http/http_server_properties_manager.cc ('k') | net/http/mock_http_cache.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_server_properties_manager_unittest.cc
diff --git a/net/http/http_server_properties_manager_unittest.cc b/net/http/http_server_properties_manager_unittest.cc
index bb8b68c6e20273b76b04a5920002f7a373c1816b..99647b3fef9aedeb01cecc864cc8ccb49e1fbe73 100644
--- a/net/http/http_server_properties_manager_unittest.cc
+++ b/net/http/http_server_properties_manager_unittest.cc
@@ -9,6 +9,8 @@
#include "base/prefs/pref_registry_simple.h"
#include "base/prefs/testing_pref_service.h"
#include "base/run_loop.h"
+#include "base/strings/string_number_conversions.h"
+#include "base/strings/stringprintf.h"
#include "base/test/test_simple_task_runner.h"
#include "base/values.h"
#include "testing/gmock/include/gmock/gmock.h"
@@ -19,6 +21,7 @@ namespace net {
namespace {
+using base::StringPrintf;
using ::testing::_;
using ::testing::Invoke;
using ::testing::Mock;
@@ -67,17 +70,19 @@ class TestingHttpServerPropertiesManager : public HttpServerPropertiesManager {
MOCK_METHOD0(UpdateCacheFromPrefsOnPrefThread, void());
MOCK_METHOD1(UpdatePrefsFromCacheOnNetworkThread, void(const base::Closure&));
- MOCK_METHOD5(UpdateCacheFromPrefsOnNetworkThread,
+ MOCK_METHOD6(UpdateCacheFromPrefsOnNetworkThread,
void(std::vector<std::string>* spdy_servers,
- net::SpdySettingsMap* spdy_settings_map,
- net::AlternateProtocolMap* alternate_protocol_map,
- net::SupportsQuicMap* supports_quic_map,
+ SpdySettingsMap* spdy_settings_map,
+ AlternateProtocolMap* alternate_protocol_map,
+ SupportsQuicMap* supports_quic_map,
+ ServerNetworkStatsMap* server_network_stats_map,
bool detected_corrupted_prefs));
- MOCK_METHOD4(UpdatePrefsOnPref,
+ MOCK_METHOD5(UpdatePrefsOnPref,
void(base::ListValue* spdy_server_list,
- net::SpdySettingsMap* spdy_settings_map,
- net::AlternateProtocolMap* alternate_protocol_map,
- net::SupportsQuicMap* supports_quic_map));
+ SpdySettingsMap* spdy_settings_map,
+ AlternateProtocolMap* alternate_protocol_map,
+ SupportsQuicMap* supports_quic_map,
+ ServerNetworkStatsMap* server_network_stats_map));
private:
DISALLOW_COPY_AND_ASSIGN(TestingHttpServerPropertiesManager);
@@ -145,6 +150,8 @@ TEST_F(HttpServerPropertiesManagerTest,
// it twice. Only expect a single cache update.
base::DictionaryValue* server_pref_dict = new base::DictionaryValue;
+ HostPortPair google_server("www.google.com", 80);
+ HostPortPair mail_server("mail.google.com", 80);
// Set supports_spdy for www.google.com:80.
server_pref_dict->SetBoolean("supports_spdy", true);
@@ -162,6 +169,11 @@ TEST_F(HttpServerPropertiesManagerTest,
supports_quic->SetString("address", "foo");
server_pref_dict->SetWithoutPathExpansion("supports_quic", supports_quic);
+ // Set up ServerNetworkStats for www.google.com:80.
+ base::DictionaryValue* stats = new base::DictionaryValue;
+ stats->SetInteger("srtt", 10);
+ server_pref_dict->SetWithoutPathExpansion("network_stats", stats);
+
// Set the server preference for www.google.com:80.
base::DictionaryValue* servers_dict = new base::DictionaryValue;
servers_dict->SetWithoutPathExpansion("www.google.com:80", server_pref_dict);
@@ -186,6 +198,10 @@ TEST_F(HttpServerPropertiesManagerTest,
supports_quic1->SetString("address", "bar");
server_pref_dict1->SetWithoutPathExpansion("supports_quic", supports_quic1);
+ // Set up ServerNetworkStats for mail.google.com:80.
+ base::DictionaryValue* stats1 = new base::DictionaryValue;
+ stats1->SetInteger("srtt", 20);
+ server_pref_dict1->SetWithoutPathExpansion("network_stats", stats1);
// Set the server preference for mail.google.com:80.
servers_dict->SetWithoutPathExpansion("mail.google.com:80",
server_pref_dict1);
@@ -207,38 +223,39 @@ TEST_F(HttpServerPropertiesManagerTest,
Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
// Verify SupportsSpdy.
- EXPECT_TRUE(http_server_props_manager_->SupportsSpdy(
- net::HostPortPair::FromString("www.google.com:80")));
- EXPECT_TRUE(http_server_props_manager_->SupportsSpdy(
- net::HostPortPair::FromString("mail.google.com:80")));
+ EXPECT_TRUE(http_server_props_manager_->SupportsSpdy(google_server));
+ EXPECT_TRUE(http_server_props_manager_->SupportsSpdy(mail_server));
EXPECT_FALSE(http_server_props_manager_->SupportsSpdy(
- net::HostPortPair::FromString("foo.google.com:1337")));
+ HostPortPair::FromString("foo.google.com:1337")));
// 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::AlternateProtocolInfo port_alternate_protocol =
- http_server_props_manager_->GetAlternateProtocol(
- net::HostPortPair::FromString("www.google.com:80"));
+ ASSERT_TRUE(http_server_props_manager_->HasAlternateProtocol(google_server));
+ ASSERT_TRUE(http_server_props_manager_->HasAlternateProtocol(mail_server));
+ AlternateProtocolInfo port_alternate_protocol =
+ http_server_props_manager_->GetAlternateProtocol(google_server);
EXPECT_EQ(443, port_alternate_protocol.port);
- EXPECT_EQ(net::NPN_SPDY_3, port_alternate_protocol.protocol);
- port_alternate_protocol = http_server_props_manager_->GetAlternateProtocol(
- net::HostPortPair::FromString("mail.google.com:80"));
+ EXPECT_EQ(NPN_SPDY_3, port_alternate_protocol.protocol);
+ port_alternate_protocol =
+ http_server_props_manager_->GetAlternateProtocol(mail_server);
EXPECT_EQ(444, port_alternate_protocol.port);
- EXPECT_EQ(net::NPN_SPDY_3_1, port_alternate_protocol.protocol);
+ EXPECT_EQ(NPN_SPDY_3_1, port_alternate_protocol.protocol);
// Verify SupportsQuic.
- net::SupportsQuic supports_quic2 =
- http_server_props_manager_->GetSupportsQuic(
- net::HostPortPair::FromString("www.google.com:80"));
+ SupportsQuic supports_quic2 =
+ http_server_props_manager_->GetSupportsQuic(google_server);
EXPECT_TRUE(supports_quic2.used_quic);
EXPECT_EQ("foo", supports_quic2.address);
- supports_quic2 = http_server_props_manager_->GetSupportsQuic(
- net::HostPortPair::FromString("mail.google.com:80"));
+ supports_quic2 = http_server_props_manager_->GetSupportsQuic(mail_server);
EXPECT_FALSE(supports_quic2.used_quic);
EXPECT_EQ("bar", supports_quic2.address);
+
+ // Verify ServerNetworkStats.
+ const ServerNetworkStats* stats2 =
+ http_server_props_manager_->GetServerNetworkStats(google_server);
+ EXPECT_EQ(10, stats2->srtt.ToInternalValue());
+ const ServerNetworkStats* stats3 =
+ http_server_props_manager_->GetServerNetworkStats(mail_server);
+ EXPECT_EQ(20, stats3->srtt.ToInternalValue());
}
TEST_F(HttpServerPropertiesManagerTest, BadCachedHostPortPair) {
@@ -264,6 +281,11 @@ TEST_F(HttpServerPropertiesManagerTest, BadCachedHostPortPair) {
supports_quic->SetString("address", "foo");
server_pref_dict->SetWithoutPathExpansion("supports_quic", supports_quic);
+ // Set up ServerNetworkStats for www.google.com:65536.
+ base::DictionaryValue* stats = new base::DictionaryValue;
+ stats->SetInteger("srtt", 10);
+ server_pref_dict->SetWithoutPathExpansion("network_stats", stats);
+
// Set the server preference for www.google.com:65536.
base::DictionaryValue* servers_dict = new base::DictionaryValue;
servers_dict->SetWithoutPathExpansion("www.google.com:65536",
@@ -283,13 +305,16 @@ TEST_F(HttpServerPropertiesManagerTest, BadCachedHostPortPair) {
// Verify that nothing is set.
EXPECT_FALSE(http_server_props_manager_->SupportsSpdy(
- net::HostPortPair::FromString("www.google.com:65536")));
+ HostPortPair::FromString("www.google.com:65536")));
EXPECT_FALSE(http_server_props_manager_->HasAlternateProtocol(
- net::HostPortPair::FromString("www.google.com:65536")));
- net::SupportsQuic supports_quic2 =
- http_server_props_manager_->GetSupportsQuic(
- net::HostPortPair::FromString("www.google.com:65536"));
+ HostPortPair::FromString("www.google.com:65536")));
+ SupportsQuic supports_quic2 = http_server_props_manager_->GetSupportsQuic(
+ HostPortPair::FromString("www.google.com:65536"));
EXPECT_FALSE(supports_quic2.used_quic);
+ const ServerNetworkStats* stats1 =
+ http_server_props_manager_->GetServerNetworkStats(
+ HostPortPair::FromString("www.google.com:65536"));
+ EXPECT_EQ(NULL, stats1);
}
TEST_F(HttpServerPropertiesManagerTest, BadCachedAltProtocolPort) {
@@ -327,7 +352,7 @@ TEST_F(HttpServerPropertiesManagerTest, BadCachedAltProtocolPort) {
// Verify AlternateProtocol is not set.
EXPECT_FALSE(http_server_props_manager_->HasAlternateProtocol(
- net::HostPortPair::FromString("www.google.com:80")));
+ HostPortPair::FromString("www.google.com:80")));
}
TEST_F(HttpServerPropertiesManagerTest, SupportsSpdy) {
@@ -337,7 +362,7 @@ TEST_F(HttpServerPropertiesManagerTest, SupportsSpdy) {
// ScheduleUpdatePrefsOnNetworkThread.
// Add mail.google.com:443 as a supporting spdy server.
- net::HostPortPair spdy_server_mail("mail.google.com", 443);
+ HostPortPair spdy_server_mail("mail.google.com", 443);
EXPECT_FALSE(http_server_props_manager_->SupportsSpdy(spdy_server_mail));
http_server_props_manager_->SetSupportsSpdy(spdy_server_mail, true);
@@ -352,9 +377,9 @@ TEST_F(HttpServerPropertiesManagerTest, SetSpdySetting) {
ExpectPrefsUpdate();
// Add SpdySetting for mail.google.com:443.
- net::HostPortPair spdy_server_mail("mail.google.com", 443);
- const net::SpdySettingsIds id1 = net::SETTINGS_UPLOAD_BANDWIDTH;
- const net::SpdySettingsFlags flags1 = net::SETTINGS_FLAG_PLEASE_PERSIST;
+ HostPortPair spdy_server_mail("mail.google.com", 443);
+ const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH;
+ const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST;
const uint32 value1 = 31337;
http_server_props_manager_->SetSpdySetting(
spdy_server_mail, id1, flags1, value1);
@@ -362,13 +387,13 @@ TEST_F(HttpServerPropertiesManagerTest, SetSpdySetting) {
// Run the task.
base::RunLoop().RunUntilIdle();
- const net::SettingsMap& settings_map1_ret =
+ const SettingsMap& settings_map1_ret =
http_server_props_manager_->GetSpdySettings(spdy_server_mail);
ASSERT_EQ(1U, settings_map1_ret.size());
- net::SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1);
+ SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1);
EXPECT_TRUE(it1_ret != settings_map1_ret.end());
- net::SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second;
- EXPECT_EQ(net::SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first);
+ SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second;
+ EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first);
EXPECT_EQ(value1, flags_and_value1_ret.second);
Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
@@ -378,9 +403,9 @@ TEST_F(HttpServerPropertiesManagerTest, ClearSpdySetting) {
ExpectPrefsUpdateRepeatedly();
// Add SpdySetting for mail.google.com:443.
- net::HostPortPair spdy_server_mail("mail.google.com", 443);
- const net::SpdySettingsIds id1 = net::SETTINGS_UPLOAD_BANDWIDTH;
- const net::SpdySettingsFlags flags1 = net::SETTINGS_FLAG_PLEASE_PERSIST;
+ HostPortPair spdy_server_mail("mail.google.com", 443);
+ const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH;
+ const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST;
const uint32 value1 = 31337;
http_server_props_manager_->SetSpdySetting(
spdy_server_mail, id1, flags1, value1);
@@ -388,13 +413,13 @@ TEST_F(HttpServerPropertiesManagerTest, ClearSpdySetting) {
// Run the task.
base::RunLoop().RunUntilIdle();
- const net::SettingsMap& settings_map1_ret =
+ const SettingsMap& settings_map1_ret =
http_server_props_manager_->GetSpdySettings(spdy_server_mail);
ASSERT_EQ(1U, settings_map1_ret.size());
- net::SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1);
+ SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1);
EXPECT_TRUE(it1_ret != settings_map1_ret.end());
- net::SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second;
- EXPECT_EQ(net::SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first);
+ SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second;
+ EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first);
EXPECT_EQ(value1, flags_and_value1_ret.second);
// Clear SpdySetting for mail.google.com:443.
@@ -405,7 +430,7 @@ TEST_F(HttpServerPropertiesManagerTest, ClearSpdySetting) {
// Verify that there are no entries in the settings map for
// mail.google.com:443.
- const net::SettingsMap& settings_map2_ret =
+ const SettingsMap& settings_map2_ret =
http_server_props_manager_->GetSpdySettings(spdy_server_mail);
ASSERT_EQ(0U, settings_map2_ret.size());
@@ -416,9 +441,9 @@ TEST_F(HttpServerPropertiesManagerTest, ClearAllSpdySetting) {
ExpectPrefsUpdateRepeatedly();
// Add SpdySetting for mail.google.com:443.
- net::HostPortPair spdy_server_mail("mail.google.com", 443);
- const net::SpdySettingsIds id1 = net::SETTINGS_UPLOAD_BANDWIDTH;
- const net::SpdySettingsFlags flags1 = net::SETTINGS_FLAG_PLEASE_PERSIST;
+ HostPortPair spdy_server_mail("mail.google.com", 443);
+ const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH;
+ const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST;
const uint32 value1 = 31337;
http_server_props_manager_->SetSpdySetting(
spdy_server_mail, id1, flags1, value1);
@@ -426,13 +451,13 @@ TEST_F(HttpServerPropertiesManagerTest, ClearAllSpdySetting) {
// Run the task.
base::RunLoop().RunUntilIdle();
- const net::SettingsMap& settings_map1_ret =
+ const SettingsMap& settings_map1_ret =
http_server_props_manager_->GetSpdySettings(spdy_server_mail);
ASSERT_EQ(1U, settings_map1_ret.size());
- net::SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1);
+ SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1);
EXPECT_TRUE(it1_ret != settings_map1_ret.end());
- net::SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second;
- EXPECT_EQ(net::SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first);
+ SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second;
+ EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first);
EXPECT_EQ(value1, flags_and_value1_ret.second);
// Clear All SpdySettings.
@@ -442,7 +467,7 @@ TEST_F(HttpServerPropertiesManagerTest, ClearAllSpdySetting) {
base::RunLoop().RunUntilIdle();
// Verify that there are no entries in the settings map.
- const net::SpdySettingsMap& spdy_settings_map2_ret =
+ const SpdySettingsMap& spdy_settings_map2_ret =
http_server_props_manager_->spdy_settings_map();
ASSERT_EQ(0U, spdy_settings_map2_ret.size());
@@ -452,11 +477,11 @@ TEST_F(HttpServerPropertiesManagerTest, ClearAllSpdySetting) {
TEST_F(HttpServerPropertiesManagerTest, HasAlternateProtocol) {
ExpectPrefsUpdate();
- net::HostPortPair spdy_server_mail("mail.google.com", 80);
+ HostPortPair spdy_server_mail("mail.google.com", 80);
EXPECT_FALSE(
http_server_props_manager_->HasAlternateProtocol(spdy_server_mail));
- http_server_props_manager_->SetAlternateProtocol(
- spdy_server_mail, 443, net::NPN_SPDY_3, 1);
+ http_server_props_manager_->SetAlternateProtocol(spdy_server_mail, 443,
+ NPN_SPDY_3, 1);
// Run the task.
base::RunLoop().RunUntilIdle();
@@ -464,18 +489,18 @@ TEST_F(HttpServerPropertiesManagerTest, HasAlternateProtocol) {
ASSERT_TRUE(
http_server_props_manager_->HasAlternateProtocol(spdy_server_mail));
- net::AlternateProtocolInfo port_alternate_protocol =
+ AlternateProtocolInfo port_alternate_protocol =
http_server_props_manager_->GetAlternateProtocol(spdy_server_mail);
EXPECT_EQ(443, port_alternate_protocol.port);
- EXPECT_EQ(net::NPN_SPDY_3, port_alternate_protocol.protocol);
+ EXPECT_EQ(NPN_SPDY_3, port_alternate_protocol.protocol);
}
TEST_F(HttpServerPropertiesManagerTest, SupportsQuic) {
ExpectPrefsUpdate();
- net::HostPortPair quic_server_mail("mail.google.com", 80);
- net::SupportsQuic supports_quic = http_server_props_manager_->GetSupportsQuic(
- quic_server_mail);
+ HostPortPair quic_server_mail("mail.google.com", 80);
+ SupportsQuic supports_quic =
+ http_server_props_manager_->GetSupportsQuic(quic_server_mail);
EXPECT_FALSE(supports_quic.used_quic);
EXPECT_EQ("", supports_quic.address);
http_server_props_manager_->SetSupportsQuic(quic_server_mail, true, "foo");
@@ -484,23 +509,46 @@ TEST_F(HttpServerPropertiesManagerTest, SupportsQuic) {
base::RunLoop().RunUntilIdle();
Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
- net::SupportsQuic supports_quic1 =
+ SupportsQuic supports_quic1 =
http_server_props_manager_->GetSupportsQuic(quic_server_mail);
EXPECT_TRUE(supports_quic1.used_quic);
EXPECT_EQ("foo", supports_quic1.address);
}
+TEST_F(HttpServerPropertiesManagerTest, ServerNetworkStats) {
+ ExpectPrefsUpdate();
+
+ HostPortPair mail_server("mail.google.com", 80);
+ const ServerNetworkStats* stats =
+ http_server_props_manager_->GetServerNetworkStats(mail_server);
+ EXPECT_EQ(NULL, stats);
+ ServerNetworkStats stats1;
+ stats1.srtt = base::TimeDelta::FromMicroseconds(10);
+ http_server_props_manager_->SetServerNetworkStats(mail_server, stats1);
+
+ // Run the task.
+ base::RunLoop().RunUntilIdle();
+ Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
+
+ const ServerNetworkStats* stats2 =
+ http_server_props_manager_->GetServerNetworkStats(mail_server);
+ EXPECT_EQ(10, stats2->srtt.ToInternalValue());
+}
+
TEST_F(HttpServerPropertiesManagerTest, Clear) {
ExpectPrefsUpdate();
- net::HostPortPair spdy_server_mail("mail.google.com", 443);
+ 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_3, 1);
+ http_server_props_manager_->SetAlternateProtocol(spdy_server_mail, 443,
+ NPN_SPDY_3, 1);
http_server_props_manager_->SetSupportsQuic(spdy_server_mail, true, "foo");
+ ServerNetworkStats stats;
+ stats.srtt = base::TimeDelta::FromMicroseconds(10);
+ http_server_props_manager_->SetServerNetworkStats(spdy_server_mail, stats);
- const net::SpdySettingsIds id1 = net::SETTINGS_UPLOAD_BANDWIDTH;
- const net::SpdySettingsFlags flags1 = net::SETTINGS_FLAG_PLEASE_PERSIST;
+ const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH;
+ const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST;
const uint32 value1 = 31337;
http_server_props_manager_->SetSpdySetting(
spdy_server_mail, id1, flags1, value1);
@@ -511,19 +559,22 @@ TEST_F(HttpServerPropertiesManagerTest, Clear) {
EXPECT_TRUE(http_server_props_manager_->SupportsSpdy(spdy_server_mail));
EXPECT_TRUE(
http_server_props_manager_->HasAlternateProtocol(spdy_server_mail));
- net::SupportsQuic supports_quic = http_server_props_manager_->GetSupportsQuic(
- spdy_server_mail);
+ SupportsQuic supports_quic =
+ http_server_props_manager_->GetSupportsQuic(spdy_server_mail);
EXPECT_TRUE(supports_quic.used_quic);
EXPECT_EQ("foo", supports_quic.address);
+ const ServerNetworkStats* stats1 =
+ http_server_props_manager_->GetServerNetworkStats(spdy_server_mail);
+ EXPECT_EQ(10, stats1->srtt.ToInternalValue());
// Check SPDY settings values.
- const net::SettingsMap& settings_map1_ret =
+ const SettingsMap& settings_map1_ret =
http_server_props_manager_->GetSpdySettings(spdy_server_mail);
ASSERT_EQ(1U, settings_map1_ret.size());
- net::SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1);
+ SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1);
EXPECT_TRUE(it1_ret != settings_map1_ret.end());
- net::SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second;
- EXPECT_EQ(net::SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first);
+ SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second;
+ EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first);
EXPECT_EQ(value1, flags_and_value1_ret.second);
Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
@@ -537,18 +588,84 @@ TEST_F(HttpServerPropertiesManagerTest, Clear) {
EXPECT_FALSE(http_server_props_manager_->SupportsSpdy(spdy_server_mail));
EXPECT_FALSE(
http_server_props_manager_->HasAlternateProtocol(spdy_server_mail));
- net::SupportsQuic supports_quic1 =
+ SupportsQuic supports_quic1 =
http_server_props_manager_->GetSupportsQuic(spdy_server_mail);
EXPECT_FALSE(supports_quic1.used_quic);
EXPECT_EQ("", supports_quic1.address);
+ const ServerNetworkStats* stats2 =
+ http_server_props_manager_->GetServerNetworkStats(spdy_server_mail);
+ EXPECT_EQ(NULL, stats2);
- const net::SettingsMap& settings_map2_ret =
+ const SettingsMap& settings_map2_ret =
http_server_props_manager_->GetSpdySettings(spdy_server_mail);
EXPECT_EQ(0U, settings_map2_ret.size());
Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
}
+// crbug.com/444956: Add 200 alternate_protocol servers followed by
+// supports_quic and verify we have read supports_quic from prefs.
+TEST_F(HttpServerPropertiesManagerTest, BadSupportsQuic) {
+ ExpectCacheUpdate();
+
+ base::DictionaryValue* servers_dict = new base::DictionaryValue;
+
+ for (int i = 0; i < 200; ++i) {
+ // Set up alternate_protocol for www.google.com:i.
+ base::DictionaryValue* alternate_protocol = new base::DictionaryValue;
+ alternate_protocol->SetInteger("port", i);
+ alternate_protocol->SetString("protocol_str", "npn-spdy/3");
+ base::DictionaryValue* server_pref_dict = new base::DictionaryValue;
+ server_pref_dict->SetWithoutPathExpansion("alternate_protocol",
+ alternate_protocol);
+ servers_dict->SetWithoutPathExpansion(StringPrintf("www.google.com:%d", i),
+ server_pref_dict);
+ }
+
+ // Set the preference for mail.google.com server.
+ base::DictionaryValue* server_pref_dict1 = new base::DictionaryValue;
+ // Set up SupportsQuic for mail.google.com:80
+ base::DictionaryValue* supports_quic = new base::DictionaryValue;
+ supports_quic->SetBoolean("used_quic", true);
+ supports_quic->SetString("address", "bar");
+ server_pref_dict1->SetWithoutPathExpansion("supports_quic", supports_quic);
+
+ // Set the server preference for mail.google.com:80.
+ servers_dict->SetWithoutPathExpansion("mail.google.com:80",
+ server_pref_dict1);
+
+ base::DictionaryValue* http_server_properties_dict =
+ new base::DictionaryValue;
+ HttpServerPropertiesManager::SetVersion(http_server_properties_dict, -1);
+ http_server_properties_dict->SetWithoutPathExpansion("servers", servers_dict);
+
+ // Set up the pref.
+ pref_service_.SetManagedPref(kTestHttpServerProperties,
+ http_server_properties_dict);
+
+ base::RunLoop().RunUntilIdle();
+ Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
+
+ // Verify AlternateProtocol.
+ for (int i = 0; i < 200; ++i) {
+ std::string server = StringPrintf("www.google.com:%d", i);
+ ASSERT_TRUE(http_server_props_manager_->HasAlternateProtocol(
+ net::HostPortPair::FromString(server)));
+ net::AlternateProtocolInfo port_alternate_protocol =
+ http_server_props_manager_->GetAlternateProtocol(
+ net::HostPortPair::FromString(server));
+ EXPECT_EQ(i, port_alternate_protocol.port);
+ EXPECT_EQ(net::NPN_SPDY_3, port_alternate_protocol.protocol);
+ }
+
+ // Verify SupportsQuic.
+ net::SupportsQuic supports_quic1 =
+ http_server_props_manager_->GetSupportsQuic(
+ net::HostPortPair::FromString("mail.google.com:80"));
+ EXPECT_TRUE(supports_quic1.used_quic);
+ EXPECT_EQ("bar", supports_quic1.address);
+}
+
TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache0) {
// Post an update task to the UI thread.
http_server_props_manager_->ScheduleUpdateCacheOnPrefThread();
« no previous file with comments | « net/http/http_server_properties_manager.cc ('k') | net/http/mock_http_cache.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698