Index: net/spdy/spdy_alt_svc_wire_format_test.cc |
diff --git a/net/spdy/spdy_alt_svc_wire_format_test.cc b/net/spdy/spdy_alt_svc_wire_format_test.cc |
index 1ecd53b6065ba31025ababe9da6f0a7fa817ac16..532ba66b0dda9ec5b9fe39bcb54eafefd4afbbb1 100644 |
--- a/net/spdy/spdy_alt_svc_wire_format_test.cc |
+++ b/net/spdy/spdy_alt_svc_wire_format_test.cc |
@@ -117,19 +117,14 @@ TEST(SpdyAltSvcWireFormatTest, ParseHeaderFieldValue) { |
header_field_value.append(" "); |
} |
- std::string protocol_id; |
- std::string host; |
- uint16 port = 0; |
- uint32 max_age = 0; |
- double p = 0.0; |
- |
- ASSERT_TRUE(SpdyAltSvcWireFormat::ParseHeaderFieldValue( |
- header_field_value, &protocol_id, &host, &port, &max_age, &p)); |
- EXPECT_EQ("a=b%c", protocol_id); |
- EXPECT_EQ(expected_host, host); |
- EXPECT_EQ(42, port); |
- EXPECT_EQ(expected_max_age, max_age); |
- EXPECT_DOUBLE_EQ(expected_p, p); |
+ SpdyAltSvcWireFormat::AlternativeService altsvc; |
+ ASSERT_TRUE(SpdyAltSvcWireFormat::ParseHeaderFieldValue(header_field_value, |
+ &altsvc)); |
+ EXPECT_EQ("a=b%c", altsvc.protocol_id); |
+ EXPECT_EQ(expected_host, altsvc.host); |
+ EXPECT_EQ(42, altsvc.port); |
+ EXPECT_EQ(expected_max_age, altsvc.max_age); |
+ EXPECT_DOUBLE_EQ(expected_p, altsvc.p); |
} |
} |
@@ -137,26 +132,27 @@ TEST(SpdyAltSvcWireFormatTest, ParseHeaderFieldValue) { |
// parameter. |
TEST(SpdyAltSvcWireFormatTest, SerializeHeaderFieldValue) { |
for (int i = 0; i < 1 << 3; ++i) { |
+ SpdyAltSvcWireFormat::AlternativeService altsvc; |
+ altsvc.protocol_id = "a=b%c"; |
+ altsvc.port = 42; |
std::string expected_header_field_value = "a%3Db%25c=\""; |
- std::string host; |
if (i & 1 << 0) { |
- host = "foo\"bar\\baz"; |
+ altsvc.host = "foo\"bar\\baz"; |
expected_header_field_value.append("foo\\\"bar\\\\baz"); |
} |
expected_header_field_value.append(":42\""); |
- int max_age = 86400; |
+ altsvc.max_age = 86400; |
if (i & 1 << 1) { |
- max_age = 1111; |
+ altsvc.max_age = 1111; |
expected_header_field_value.append("; ma=1111"); |
} |
- double p = 1.0; |
+ altsvc.p = 1.0; |
if (i & 1 << 2) { |
- p = 0.33; |
+ altsvc.p = 0.33; |
expected_header_field_value.append("; p=0.33"); |
} |
EXPECT_EQ(expected_header_field_value, |
- SpdyAltSvcWireFormat::SerializeHeaderFieldValue("a=b%c", host, 42, |
- max_age, p)); |
+ SpdyAltSvcWireFormat::SerializeHeaderFieldValue(altsvc)); |
} |
} |
@@ -164,11 +160,7 @@ TEST(SpdyAltSvcWireFormatTest, SerializeHeaderFieldValue) { |
// invalid percent encoding, unmatched quotation mark, empty port, non-numeric |
// characters in numeric fields, negative or larger than 1.0 probability. |
TEST(SpdyAltSvcWireFormatTest, ParseHeaderFieldValueInvalid) { |
- std::string protocol_id; |
- std::string host; |
- uint16 port; |
- uint32 max_age; |
- double p; |
+ SpdyAltSvcWireFormat::AlternativeService altsvc; |
const char* invalid_field_value_array[] = {"", "a%", "a%x", "a%b", "a%9z", |
"a=", "a=\"", "a=\"b\"", "a=\":\"", "a=\"c:\"", "a=\"c:foo\"", |
"a=\"c:42foo\"", "a=\"b:42\"bar", "a=\"b:42\" ; m", |
@@ -177,7 +169,7 @@ TEST(SpdyAltSvcWireFormatTest, ParseHeaderFieldValueInvalid) { |
"a=\"b:42\" ; p=..", "a=\"b:42\" ; p=1.05"}; |
for (const char* invalid_field_value : invalid_field_value_array) { |
EXPECT_FALSE(SpdyAltSvcWireFormat::ParseHeaderFieldValue( |
- invalid_field_value, &protocol_id, &host, &port, &max_age, &p)) |
+ invalid_field_value, &altsvc)) |
<< invalid_field_value; |
} |
} |
@@ -186,17 +178,13 @@ TEST(SpdyAltSvcWireFormatTest, ParseHeaderFieldValueInvalid) { |
// before closing quotation mark, without trying to access memory beyond the end |
// of the input. |
TEST(SpdyAltSvcWireFormatTest, ParseTruncatedHeaderFieldValue) { |
- std::string protocol_id; |
- std::string host; |
- uint16 port; |
- uint32 max_age; |
- double p; |
+ SpdyAltSvcWireFormat::AlternativeService altsvc; |
const char* field_value_array[] = { |
"p=\":137\"", "p=\"foo:137\"", "p%25=\"foo\\\"bar\\\\baz:137\""}; |
for (std::string field_value : field_value_array) { |
for (size_t len = 1; len < field_value.size(); ++len) { |
EXPECT_FALSE(SpdyAltSvcWireFormat::ParseHeaderFieldValue( |
- field_value.substr(0, len), &protocol_id, &host, &port, &max_age, &p)) |
+ field_value.substr(0, len), &altsvc)) |
<< len; |
} |
} |