Index: net/spdy/spdy_protocol_test.cc |
=================================================================== |
--- net/spdy/spdy_protocol_test.cc (revision 131881) |
+++ net/spdy/spdy_protocol_test.cc (working copy) |
@@ -215,7 +215,7 @@ |
SpdyFramer framer(spdy_version_); |
// Create a settings frame with no settings. |
- SpdySettings settings; |
+ SettingsMap settings; |
scoped_ptr<SpdySettingsControlFrame> settings_frame( |
framer.CreateSettings(settings)); |
EXPECT_EQ(framer.protocol_version(), settings_frame->version()); |
@@ -225,34 +225,65 @@ |
// We'll add several different ID/Flag combinations and then verify |
// that they encode and decode properly. |
- SettingsFlagsAndId ids[] = { |
+ SettingsFlagsAndId spdy2_ids[] = { |
+ // id = 0, flags = 0. |
SettingsFlagsAndId::FromWireFormat(spdy_version_, 0x00000000), |
+ // id = 1, flags = 0xff. |
+ SettingsFlagsAndId::FromWireFormat(spdy_version_, 0xff000001), |
+ // id = 2, flags = 1. |
+ SettingsFlagsAndId::FromWireFormat(spdy_version_, 0x01000002), |
+ // id = 9, flags = 6. |
+ SettingsFlagsAndId(6, 9), |
+ // id = 0x00ffffff, flags = 0xff. |
SettingsFlagsAndId::FromWireFormat(spdy_version_, 0xffffffff), |
+ }; |
+ |
+ SettingsFlagsAndId spdy3_ids[] = { |
+ // id = 0, flags = 0. |
+ SettingsFlagsAndId::FromWireFormat(spdy_version_, 0x00000000), |
+ // id = 1, flags = 2. |
+ SettingsFlagsAndId::FromWireFormat(spdy_version_, 0x01000002), |
+ // id = 9, flags = 6. |
+ SettingsFlagsAndId(6, 9), |
+ // id = 0xff, flags = 1. |
SettingsFlagsAndId::FromWireFormat(spdy_version_, 0xff000001), |
+ // id = 0x00ffffff, flags = 0xff. |
SettingsFlagsAndId::FromWireFormat(spdy_version_, 0xffffffff), |
- SettingsFlagsAndId::FromWireFormat(spdy_version_, 0x01000002), |
- SettingsFlagsAndId(3, 1) |
}; |
Ryan Hamilton
2012/04/12 17:11:21
How come the spdy2 and spdy3 settings are separate
ramant (doing other things)
2012/04/12 18:35:59
In the map, settings are stored in sorted order ba
Ryan Hamilton
2012/04/17 02:32:49
Perhaps I'm missing something, but it looks like b
ramant (doing other things)
2012/04/17 18:48:19
(sorry if already known)
We get data out of "ids"
|
- for (size_t index = 0; index < arraysize(ids); ++index) { |
- settings.insert(settings.end(), std::make_pair(ids[index], index)); |
+ SettingsFlagsAndId* ids; |
+ size_t settings_size; |
+ if (IsSpdy2()) { |
+ ids = &spdy2_ids[0]; |
+ settings_size = arraysize(spdy2_ids); |
+ } else { |
+ ids = &spdy3_ids[0]; |
+ settings_size = arraysize(spdy3_ids); |
+ } |
+ |
+ for (size_t index = 0; index < settings_size; ++index) { |
+ SettingsFlagsAndId flags_and_id = ids[index]; |
+ SpdySettingsIds id = static_cast<SpdySettingsIds>(flags_and_id.id()); |
+ SpdySettingsFlags flags = |
+ static_cast<SpdySettingsFlags>(flags_and_id.flags()); |
+ settings[id] = SettingsFlagsAndValue(flags, index); |
settings_frame.reset(framer.CreateSettings(settings)); |
EXPECT_EQ(framer.protocol_version(), settings_frame->version()); |
EXPECT_TRUE(settings_frame->is_control_frame()); |
EXPECT_EQ(SETTINGS, settings_frame->type()); |
EXPECT_EQ(index + 1, settings_frame->num_entries()); |
- SpdySettings parsed_settings; |
+ SettingsMap parsed_settings; |
EXPECT_TRUE(framer.ParseSettings(settings_frame.get(), &parsed_settings)); |
EXPECT_EQ(settings.size(), parsed_settings.size()); |
- SpdySettings::const_iterator it = parsed_settings.begin(); |
+ SettingsMap::const_iterator it = parsed_settings.begin(); |
int pos = 0; |
while (it != parsed_settings.end()) { |
- SettingsFlagsAndId parsed = it->first; |
- uint32 value = it->second; |
- EXPECT_EQ(ids[pos].flags(), parsed.flags()); |
- EXPECT_EQ(ids[pos].id(), parsed.id()); |
- EXPECT_EQ(static_cast<uint32>(pos), value); |
+ SpdySettingsIds parsed_id = it->first; |
+ SettingsFlagsAndValue parsed = it->second; |
+ EXPECT_EQ(ids[pos].flags(), static_cast<uint8>(parsed.first)); |
+ EXPECT_EQ(ids[pos].id(), static_cast<uint32>(parsed_id)); |
+ EXPECT_EQ(static_cast<uint32>(pos), parsed.second); |
++it; |
++pos; |
} |