summaryrefslogtreecommitdiffstats
path: root/net/http
diff options
context:
space:
mode:
authorrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-24 14:12:48 +0000
committerrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-24 14:12:48 +0000
commite0935cc22a6c10461b004b9f3c0b0f7f4d52c137 (patch)
treefb6e67b1a526192a0794d199ba9aa2846f38be05 /net/http
parent5970f146cda0eefc2726a2eeb9bd8e16234e0df1 (diff)
downloadchromium_src-e0935cc22a6c10461b004b9f3c0b0f7f4d52c137.zip
chromium_src-e0935cc22a6c10461b004b9f3c0b0f7f4d52c137.tar.gz
chromium_src-e0935cc22a6c10461b004b9f3c0b0f7f4d52c137.tar.bz2
SPDY - persist SPDY settings.
HttpServerProperties stores SPDY settings in SettingsMap whose key is settings ID and value is a (flags, value) pair (SettingsFlagsAndValue). The format of the persisted data is same as before (restored the old code that persisted the data). Verified it with an older version of the Preferences file that is very large. Verified that we have sent the right data (sorted and unique settings) to the server and that duplicates were removed from the file. Changed all the code above SpdyFramer to use the above spdy::SettingsMap and spdy::SettingsFlagsAndValue data structures. When chrome sends Spdy Settings to the server, it uses the current SpdyFramer's API calls to create Settings frame. TODO: 1) Delete spdy::SpdySettings and spdy::SpdySetting and replace them with SettingsMap, SpdySettingsIds, SpdySettingsFlags and value. 2) Add version to the persisted data. BUG=117760 R=rch, willchan TEST=network unit tests and browser unit tests. Review URL: http://codereview.chromium.org/9802003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128737 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http')
-rw-r--r--net/http/http_server_properties.h26
-rw-r--r--net/http/http_server_properties_impl.cc53
-rw-r--r--net/http/http_server_properties_impl.h23
-rw-r--r--net/http/http_server_properties_impl_unittest.cc211
4 files changed, 118 insertions, 195 deletions
diff --git a/net/http/http_server_properties.h b/net/http/http_server_properties.h
index ccadf2b..e61be5e 100644
--- a/net/http/http_server_properties.h
+++ b/net/http/http_server_properties.h
@@ -37,7 +37,7 @@ struct NET_EXPORT PortAlternateProtocolPair {
};
typedef std::map<HostPortPair, PortAlternateProtocolPair> AlternateProtocolMap;
-typedef std::map<HostPortPair, SpdySettings> SpdySettingsMap;
+typedef std::map<HostPortPair, SettingsMap> SpdySettingsMap;
typedef std::map<HostPortPair,
HttpPipelinedHostCapability> PipelineCapabilityMap;
@@ -84,26 +84,22 @@ class NET_EXPORT HttpServerProperties {
// Returns all Alternate-Protocol mappings.
virtual const AlternateProtocolMap& alternate_protocol_map() const = 0;
- // Gets a reference to the SpdySettings stored for a host.
- // If no settings are stored, returns an empty set of settings.
- virtual const SpdySettings& GetSpdySettings(
+ // Gets a reference to the SettingsMap stored for a host.
+ // If no settings are stored, returns an empty SettingsMap.
+ virtual const SettingsMap& GetSpdySettings(
const HostPortPair& host_port_pair) const = 0;
- // Saves settings for a host. Returns true if SpdySettings are to be
- // persisted. Used by unittests only.
- // TODO(rtenneti): Move this method to test utility file.
- virtual bool SetSpdySettings(const HostPortPair& host_port_pair,
- const SpdySettings& settings) = 0;
-
- // Saves an individual setting for a host. Returns true if SpdySetting is to
- // be persisted.
+ // Saves an individual SPDY setting for a host. Returns true if SPDY setting
+ // is to be persisted.
virtual bool SetSpdySetting(const HostPortPair& host_port_pair,
- const SpdySetting& setting) = 0;
+ SpdySettingsIds id,
+ SpdySettingsFlags flags,
+ uint32 value) = 0;
- // Clears all spdy_settings.
+ // Clears all SPDY settings.
virtual void ClearSpdySettings() = 0;
- // Returns all persistent SpdySettings.
+ // Returns all persistent SPDY settings.
virtual const SpdySettingsMap& spdy_settings_map() const = 0;
virtual HttpPipelinedHostCapability GetPipelineCapability(
diff --git a/net/http/http_server_properties_impl.cc b/net/http/http_server_properties_impl.cc
index 714f4c1..32f0694 100644
--- a/net/http/http_server_properties_impl.cc
+++ b/net/http/http_server_properties_impl.cc
@@ -52,7 +52,7 @@ void HttpServerPropertiesImpl::InitializeAlternateProtocolServers(
}
void HttpServerPropertiesImpl::InitializeSpdySettingsServers(
- std::map<HostPortPair, SpdySettings>* spdy_settings_map) {
+ SpdySettingsMap* spdy_settings_map) {
spdy_settings_map_.swap(*spdy_settings_map);
}
@@ -220,58 +220,27 @@ HttpServerPropertiesImpl::alternate_protocol_map() const {
return alternate_protocol_map_;
}
-const SpdySettings& HttpServerPropertiesImpl::GetSpdySettings(
+const SettingsMap& HttpServerPropertiesImpl::GetSpdySettings(
const HostPortPair& host_port_pair) const {
SpdySettingsMap::const_iterator it = spdy_settings_map_.find(host_port_pair);
if (it == spdy_settings_map_.end()) {
- CR_DEFINE_STATIC_LOCAL(SpdySettings, kEmptySpdySettings, ());
- return kEmptySpdySettings;
+ CR_DEFINE_STATIC_LOCAL(SettingsMap, kEmptySettingsMap, ());
+ return kEmptySettingsMap;
}
return it->second;
}
-bool HttpServerPropertiesImpl::SetSpdySettings(
- const HostPortPair& host_port_pair,
- const SpdySettings& settings) {
- SpdySettings persistent_settings;
-
- // Iterate through the list, and only copy those settings which are marked
- // for persistence.
- SpdySettings::const_iterator it;
- for (it = settings.begin(); it != settings.end(); ++it) {
- SettingsFlagsAndId id = it->first;
- if (id.flags() & SETTINGS_FLAG_PLEASE_PERSIST) {
- SettingsFlagsAndId new_id(SETTINGS_FLAG_PERSISTED, id.id());
- persistent_settings.push_back(std::make_pair(new_id, it->second));
- }
- }
-
- // If we didn't persist anything, then we are done.
- if (persistent_settings.empty())
- return false;
-
- spdy_settings_map_[host_port_pair] = persistent_settings;
- return true;
-}
-
bool HttpServerPropertiesImpl::SetSpdySetting(
const HostPortPair& host_port_pair,
- const SpdySetting& setting) {
-
- SettingsFlagsAndId id = setting.first;
- if (!(id.flags() & SETTINGS_FLAG_PLEASE_PERSIST))
+ SpdySettingsIds id,
+ SpdySettingsFlags flags,
+ uint32 value) {
+ if (!(flags & SETTINGS_FLAG_PLEASE_PERSIST))
return false;
- SpdySettingsMap::const_iterator it = spdy_settings_map_.find(host_port_pair);
- SpdySettings persistent_settings;
- if (it != spdy_settings_map_.end()) {
- persistent_settings = it->second;
- }
-
- SettingsFlagsAndId new_id(SETTINGS_FLAG_PERSISTED, id.id());
- persistent_settings.push_back(std::make_pair(new_id, setting.second));
- spdy_settings_map_[host_port_pair] = persistent_settings;
-
+ SettingsMap& settings_map = spdy_settings_map_[host_port_pair];
+ SettingsFlagsAndValue flags_and_value(SETTINGS_FLAG_PERSISTED, value);
+ settings_map[id] = flags_and_value;
return true;
}
diff --git a/net/http/http_server_properties_impl.h b/net/http/http_server_properties_impl.h
index eb4816e..98a968c 100644
--- a/net/http/http_server_properties_impl.h
+++ b/net/http/http_server_properties_impl.h
@@ -103,25 +103,22 @@ class NET_EXPORT HttpServerPropertiesImpl
// Returns all Alternate-Protocol mappings.
virtual const AlternateProtocolMap& alternate_protocol_map() const OVERRIDE;
- // Gets a reference to the SpdySettings stored for a host.
- // If no settings are stored, returns an empty set of settings.
- virtual const SpdySettings& GetSpdySettings(
+ // Gets a reference to the SettingsMap stored for a host.
+ // If no settings are stored, returns an empty SettingsMap.
+ virtual const SettingsMap& GetSpdySettings(
const HostPortPair& host_port_pair) const OVERRIDE;
- // Saves settings for a host. Returns true if SpdySettings are to be
- // persisted because |spdy_settings_map_| has been updated.
- virtual bool SetSpdySettings(const HostPortPair& host_port_pair,
- const SpdySettings& settings) OVERRIDE;
-
- // Saves an individual setting for a host. Returns true if SpdySetting is to
- // be persisted because |spdy_settings_map_| has been updated.
+ // Saves an individual SPDY setting for a host. Returns true if SPDY setting
+ // is to be persisted.
virtual bool SetSpdySetting(const HostPortPair& host_port_pair,
- const SpdySetting& setting) OVERRIDE;
+ SpdySettingsIds id,
+ SpdySettingsFlags flags,
+ uint32 value) OVERRIDE;
- // Clears all spdy_settings.
+ // Clears all entries in |spdy_settings_map_|.
virtual void ClearSpdySettings() OVERRIDE;
- // Returns all persistent SpdySettings.
+ // Returns all persistent SPDY settings.
virtual const SpdySettingsMap& spdy_settings_map() const OVERRIDE;
virtual HttpPipelinedHostCapability GetPipelineCapability(
diff --git a/net/http/http_server_properties_impl_unittest.cc b/net/http/http_server_properties_impl_unittest.cc
index c26491c..f3129e8 100644
--- a/net/http/http_server_properties_impl_unittest.cc
+++ b/net/http/http_server_properties_impl_unittest.cc
@@ -188,10 +188,8 @@ typedef HttpServerPropertiesImplTest AlternateProtocolServerPropertiesTest;
TEST_F(AlternateProtocolServerPropertiesTest, Basic) {
HostPortPair test_host_port_pair("foo", 80);
- EXPECT_FALSE(
- impl_.HasAlternateProtocol(test_host_port_pair));
- impl_.SetAlternateProtocol(
- test_host_port_pair, 443, NPN_SPDY_1);
+ EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
+ impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_1);
ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
const PortAlternateProtocolPair alternate =
impl_.GetAlternateProtocol(test_host_port_pair);
@@ -206,8 +204,7 @@ TEST_F(AlternateProtocolServerPropertiesTest, Initialize) {
HostPortPair test_host_port_pair1("foo1", 80);
impl_.SetBrokenAlternateProtocol(test_host_port_pair1);
HostPortPair test_host_port_pair2("foo2", 80);
- impl_.SetAlternateProtocol(
- test_host_port_pair2, 443, NPN_SPDY_1);
+ impl_.SetAlternateProtocol(test_host_port_pair2, 443, NPN_SPDY_1);
AlternateProtocolMap alternate_protocol_map;
PortAlternateProtocolPair port_alternate_protocol_pair;
@@ -254,16 +251,14 @@ TEST_F(AlternateProtocolServerPropertiesTest, Forced) {
// Verify the forced protocol.
HostPortPair test_host_port_pair("foo", 80);
- EXPECT_TRUE(
- impl_.HasAlternateProtocol(test_host_port_pair));
+ EXPECT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
PortAlternateProtocolPair alternate =
impl_.GetAlternateProtocol(test_host_port_pair);
EXPECT_EQ(default_protocol.port, alternate.port);
EXPECT_EQ(default_protocol.protocol, alternate.protocol);
// Verify the real protocol overrides the forced protocol.
- impl_.SetAlternateProtocol(
- test_host_port_pair, 443, NPN_SPDY_1);
+ impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_1);
ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
alternate = impl_.GetAlternateProtocol(test_host_port_pair);
EXPECT_EQ(443, alternate.port);
@@ -275,8 +270,7 @@ TEST_F(AlternateProtocolServerPropertiesTest, Forced) {
// Verify the forced protocol is off.
HostPortPair test_host_port_pair2("bar", 80);
- EXPECT_FALSE(
- impl_.HasAlternateProtocol(test_host_port_pair2));
+ EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair2));
}
typedef HttpServerPropertiesImplTest SpdySettingsServerPropertiesTest;
@@ -290,148 +284,115 @@ TEST_F(SpdySettingsServerPropertiesTest, Initialize) {
EXPECT_TRUE(impl_.GetSpdySettings(spdy_server_google).empty());
// Check by initializing with www.google.com:443 spdy server settings.
- SpdySettings spdy_settings;
- SettingsFlagsAndId spdy_setting(SETTINGS_FLAG_PERSISTED, 1234);
- spdy_settings.push_back(std::make_pair(spdy_setting, 31337));
- spdy_settings_map[spdy_server_google] = spdy_settings;
+ SettingsMap settings_map;
+ const SpdySettingsIds id = SETTINGS_UPLOAD_BANDWIDTH;
+ const SpdySettingsFlags flags = SETTINGS_FLAG_PERSISTED;
+ const uint32 value = 31337;
+ SettingsFlagsAndValue flags_and_value(flags, value);
+ settings_map[id] = flags_and_value;
+ spdy_settings_map[spdy_server_google] = settings_map;
impl_.InitializeSpdySettingsServers(&spdy_settings_map);
- SpdySettings spdy_settings2 = impl_.GetSpdySettings(spdy_server_google);
- ASSERT_EQ(1U, spdy_settings2.size());
- SpdySetting spdy_setting2 = spdy_settings2.front();
- SettingsFlagsAndId id2_ret(spdy_setting2.first);
- EXPECT_EQ(1234U, id2_ret.id());
- EXPECT_EQ(SETTINGS_FLAG_PERSISTED, id2_ret.flags());
- EXPECT_EQ(31337U, spdy_settings2.front().second);
-}
-
-TEST_F(SpdySettingsServerPropertiesTest, SetSpdySettings) {
- HostPortPair spdy_server_empty("", 443);
- SpdySettings spdy_settings0 = impl_.GetSpdySettings(spdy_server_empty);
- EXPECT_EQ(0U, spdy_settings0.size()); // Returns kEmptySpdySettings
-
- // Add www.google.com:443 as persisting.
- HostPortPair spdy_server_google("www.google.com", 443);
- SpdySettings spdy_settings1;
- SettingsFlagsAndId id1(SETTINGS_FLAG_PLEASE_PERSIST, 1234);
- spdy_settings1.push_back(std::make_pair(id1, 31337));
- EXPECT_TRUE(impl_.SetSpdySettings(spdy_server_google, spdy_settings1));
- SpdySettings spdy_settings1_ret =
- impl_.GetSpdySettings(spdy_server_google);
- ASSERT_EQ(1U, spdy_settings1_ret.size());
- SpdySetting spdy_setting1_ret = spdy_settings1_ret.front();
- SettingsFlagsAndId id1_ret(spdy_setting1_ret.first);
- EXPECT_EQ(1234U, id1_ret.id());
- EXPECT_EQ(SETTINGS_FLAG_PERSISTED, id1_ret.flags());
- EXPECT_EQ(31337U, spdy_setting1_ret.second);
- // Add mail.google.com:443 as not persisting.
- HostPortPair spdy_server_mail("mail.google.com", 443);
- SpdySettings spdy_settings2;
- SettingsFlagsAndId id2(0, 5678);
- spdy_settings2.push_back(std::make_pair(id2, 62667));
- EXPECT_FALSE(impl_.SetSpdySettings(spdy_server_mail, spdy_settings2));
- SpdySettings spdy_settings2_ret =
- impl_.GetSpdySettings(spdy_server_mail);
- EXPECT_EQ(0U, spdy_settings2_ret.size()); // Returns kEmptySpdySettings
-
- // Add docs.google.com:443 as persisting
- HostPortPair spdy_server_docs("docs.google.com", 443);
- SpdySettings spdy_settings3;
- SettingsFlagsAndId id3(SETTINGS_FLAG_PLEASE_PERSIST, 9012);
- spdy_settings3.push_back(std::make_pair(id3, 93997));
- EXPECT_TRUE(impl_.SetSpdySettings(spdy_server_docs, spdy_settings3));
- SpdySettings spdy_settings3_ret =
- impl_.GetSpdySettings(spdy_server_docs);
- ASSERT_EQ(1U, spdy_settings3_ret.size());
- SpdySetting spdy_setting3_ret = spdy_settings3_ret.front();
- SettingsFlagsAndId id3_ret(spdy_setting3_ret.first);
- EXPECT_EQ(9012U, id3_ret.id());
- EXPECT_EQ(SETTINGS_FLAG_PERSISTED, id3_ret.flags());
- EXPECT_EQ(93997U, spdy_setting3_ret.second);
+ const SettingsMap& settings_map2 = impl_.GetSpdySettings(spdy_server_google);
+ ASSERT_EQ(1U, settings_map2.size());
+ SettingsMap::const_iterator it = settings_map2.find(id);
+ EXPECT_TRUE(it != settings_map2.end());
+ SettingsFlagsAndValue flags_and_value2 = it->second;
+ EXPECT_EQ(flags, flags_and_value2.first);
+ EXPECT_EQ(value, flags_and_value2.second);
}
TEST_F(SpdySettingsServerPropertiesTest, SetSpdySetting) {
HostPortPair spdy_server_empty("", 443);
- SpdySettings spdy_settings0 = impl_.GetSpdySettings(spdy_server_empty);
- EXPECT_EQ(0U, spdy_settings0.size()); // Returns kEmptySpdySettings
+ const SettingsMap& settings_map0 = impl_.GetSpdySettings(spdy_server_empty);
+ EXPECT_EQ(0U, settings_map0.size()); // Returns kEmptySettingsMap.
// Add www.google.com:443 as persisting.
HostPortPair spdy_server_google("www.google.com", 443);
- SettingsFlagsAndId id1(SETTINGS_FLAG_PLEASE_PERSIST, 1234);
- EXPECT_TRUE(impl_.SetSpdySetting(
- spdy_server_google, std::make_pair(id1, 31337)));
- SpdySettings spdy_settings1_ret =
+ const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH;
+ const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST;
+ const uint32 value1 = 31337;
+ EXPECT_TRUE(impl_.SetSpdySetting(spdy_server_google, id1, flags1, value1));
+ // Check the values.
+ const SettingsMap& settings_map1_ret =
impl_.GetSpdySettings(spdy_server_google);
- ASSERT_EQ(1U, spdy_settings1_ret.size());
- SpdySetting spdy_setting1_ret = spdy_settings1_ret.front();
- SettingsFlagsAndId id1_ret(spdy_setting1_ret.first);
- EXPECT_EQ(1234U, id1_ret.id());
- EXPECT_EQ(SETTINGS_FLAG_PERSISTED, id1_ret.flags());
- EXPECT_EQ(31337U, spdy_setting1_ret.second);
+ ASSERT_EQ(1U, settings_map1_ret.size());
+ SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1);
+ EXPECT_TRUE(it1_ret != settings_map1_ret.end());
+ 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);
// Add mail.google.com:443 as not persisting.
HostPortPair spdy_server_mail("mail.google.com", 443);
- SettingsFlagsAndId id2(0, 5678);
- EXPECT_FALSE(impl_.SetSpdySetting(
- spdy_server_mail, std::make_pair(id2, 62667)));
- SpdySettings spdy_settings2_ret =
+ const SpdySettingsIds id2 = SETTINGS_DOWNLOAD_BANDWIDTH;
+ const SpdySettingsFlags flags2 = SETTINGS_FLAG_NONE;
+ const uint32 value2 = 62667;
+ EXPECT_FALSE(impl_.SetSpdySetting(spdy_server_mail, id2, flags2, value2));
+ const SettingsMap& settings_map2_ret =
impl_.GetSpdySettings(spdy_server_mail);
- EXPECT_EQ(0U, spdy_settings2_ret.size()); // Returns kEmptySpdySettings
+ EXPECT_EQ(0U, settings_map2_ret.size()); // Returns kEmptySettingsMap.
// Add docs.google.com:443 as persisting
HostPortPair spdy_server_docs("docs.google.com", 443);
- SettingsFlagsAndId id3(SETTINGS_FLAG_PLEASE_PERSIST, 9012);
- EXPECT_TRUE(impl_.SetSpdySetting(
- spdy_server_docs, std::make_pair(id3, 93997)));
- SpdySettings spdy_settings3_ret =
+ const SpdySettingsIds id3 = SETTINGS_ROUND_TRIP_TIME;
+ const SpdySettingsFlags flags3 = SETTINGS_FLAG_PLEASE_PERSIST;
+ const uint32 value3 = 93997;
+ SettingsFlagsAndValue flags_and_value3(flags3, value3);
+ EXPECT_TRUE(impl_.SetSpdySetting(spdy_server_docs, id3, flags3, value3));
+ // Check the values.
+ const SettingsMap& settings_map3_ret =
impl_.GetSpdySettings(spdy_server_docs);
- ASSERT_EQ(1U, spdy_settings3_ret.size());
- SpdySetting spdy_setting3_ret = spdy_settings3_ret.front();
- SettingsFlagsAndId id3_ret(spdy_setting3_ret.first);
- EXPECT_EQ(9012U, id3_ret.id());
- EXPECT_EQ(SETTINGS_FLAG_PERSISTED, id3_ret.flags());
- EXPECT_EQ(93997U, spdy_setting3_ret.second);
- // Check data for www.google.com:443.
- SpdySettings spdy_settings4_ret =
+ ASSERT_EQ(1U, settings_map3_ret.size());
+ SettingsMap::const_iterator it3_ret = settings_map3_ret.find(id3);
+ EXPECT_TRUE(it3_ret != settings_map3_ret.end());
+ SettingsFlagsAndValue flags_and_value3_ret = it3_ret->second;
+ EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value3_ret.first);
+ EXPECT_EQ(value3, flags_and_value3_ret.second);
+
+ // Check data for www.google.com:443 (id1).
+ const SettingsMap& settings_map4_ret =
impl_.GetSpdySettings(spdy_server_google);
- ASSERT_EQ(1U, spdy_settings4_ret.size());
- SpdySetting spdy_setting4_ret = spdy_settings4_ret.front();
- SettingsFlagsAndId id4_ret(spdy_setting4_ret.first);
- EXPECT_EQ(1234U, id4_ret.id());
- EXPECT_EQ(SETTINGS_FLAG_PERSISTED, id4_ret.flags());
- EXPECT_EQ(31337U, spdy_setting4_ret.second);
+ ASSERT_EQ(1U, settings_map4_ret.size());
+ SettingsMap::const_iterator it4_ret = settings_map4_ret.find(id1);
+ EXPECT_TRUE(it4_ret != settings_map4_ret.end());
+ SettingsFlagsAndValue flags_and_value4_ret = it4_ret->second;
+ EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value4_ret.first);
+ EXPECT_EQ(value1, flags_and_value1_ret.second);
}
TEST_F(SpdySettingsServerPropertiesTest, Clear) {
// Add www.google.com:443 as persisting.
HostPortPair spdy_server_google("www.google.com", 443);
- SpdySettings spdy_settings1;
- SettingsFlagsAndId id1(SETTINGS_FLAG_PLEASE_PERSIST, 1234);
- spdy_settings1.push_back(std::make_pair(id1, 31337));
- EXPECT_TRUE(impl_.SetSpdySettings(spdy_server_google, spdy_settings1));
- SpdySettings spdy_settings1_ret =
+ const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH;
+ const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST;
+ const uint32 value1 = 31337;
+ EXPECT_TRUE(impl_.SetSpdySetting(spdy_server_google, id1, flags1, value1));
+ // Check the values.
+ const SettingsMap& settings_map1_ret =
impl_.GetSpdySettings(spdy_server_google);
- ASSERT_EQ(1U, spdy_settings1_ret.size());
- SpdySetting spdy_setting1_ret = spdy_settings1_ret.front();
- SettingsFlagsAndId id1_ret(spdy_setting1_ret.first);
- EXPECT_EQ(1234U, id1_ret.id());
- EXPECT_EQ(SETTINGS_FLAG_PERSISTED, id1_ret.flags());
- EXPECT_EQ(31337U, spdy_setting1_ret.second);
+ ASSERT_EQ(1U, settings_map1_ret.size());
+ SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1);
+ EXPECT_TRUE(it1_ret != settings_map1_ret.end());
+ 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);
// Add docs.google.com:443 as persisting
HostPortPair spdy_server_docs("docs.google.com", 443);
- SpdySettings spdy_settings3;
- SettingsFlagsAndId id3(SETTINGS_FLAG_PLEASE_PERSIST, 9012);
- spdy_settings3.push_back(std::make_pair(id3, 93997));
- EXPECT_TRUE(impl_.SetSpdySettings(spdy_server_docs, spdy_settings3));
- SpdySettings spdy_settings3_ret =
+ const SpdySettingsIds id3 = SETTINGS_ROUND_TRIP_TIME;
+ const SpdySettingsFlags flags3 = SETTINGS_FLAG_PLEASE_PERSIST;
+ const uint32 value3 = 93997;
+ EXPECT_TRUE(impl_.SetSpdySetting(spdy_server_docs, id3, flags3, value3));
+ // Check the values.
+ const SettingsMap& settings_map3_ret =
impl_.GetSpdySettings(spdy_server_docs);
- ASSERT_EQ(1U, spdy_settings3_ret.size());
- SpdySetting spdy_setting3_ret = spdy_settings3_ret.front();
- SettingsFlagsAndId id3_ret(spdy_setting3_ret.first);
- EXPECT_EQ(9012U, id3_ret.id());
- EXPECT_EQ(SETTINGS_FLAG_PERSISTED, id3_ret.flags());
- EXPECT_EQ(93997U, spdy_setting3_ret.second);
+ ASSERT_EQ(1U, settings_map3_ret.size());
+ SettingsMap::const_iterator it3_ret = settings_map3_ret.find(id3);
+ EXPECT_TRUE(it3_ret != settings_map3_ret.end());
+ SettingsFlagsAndValue flags_and_value3_ret = it3_ret->second;
+ EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value3_ret.first);
+ EXPECT_EQ(value3, flags_and_value3_ret.second);
impl_.Clear();
EXPECT_EQ(0U, impl_.GetSpdySettings(spdy_server_google).size());