| Index: net/base/url_util_unittest.cc
|
| diff --git a/net/base/url_util_unittest.cc b/net/base/url_util_unittest.cc
|
| index 83ac258650b8c73e6a7e4628b8873af40bce18c2..158e2740306e29bcdcfd1ab53b6d5cfcbd39af43 100644
|
| --- a/net/base/url_util_unittest.cc
|
| +++ b/net/base/url_util_unittest.cc
|
| @@ -108,5 +108,56 @@ TEST(UrlUtilTest, GetValueForKeyInQueryInvalidURL) {
|
| EXPECT_FALSE(GetValueForKeyInQuery(url, "test", &value));
|
| }
|
|
|
| +TEST(UrlUtilTest, ParseQuery) {
|
| + const GURL url("http://example.com/path?name=value&boolParam&"
|
| + "url=http://test.com/q?n1%3Dv1%26n2&"
|
| + "multikey=value1&multikey=value2&multikey");
|
| + QueryIterator it(url);
|
| +
|
| + ASSERT_FALSE(it.IsAtEnd());
|
| + EXPECT_EQ("name", it.GetKey());
|
| + EXPECT_EQ("value", it.GetValue());
|
| + EXPECT_EQ("value", it.GetUnescapedValue());
|
| + it.Advance();
|
| +
|
| + ASSERT_FALSE(it.IsAtEnd());
|
| + EXPECT_EQ("boolParam", it.GetKey());
|
| + EXPECT_EQ("", it.GetValue());
|
| + EXPECT_EQ("", it.GetUnescapedValue());
|
| + it.Advance();
|
| +
|
| + ASSERT_FALSE(it.IsAtEnd());
|
| + EXPECT_EQ("url", it.GetKey());
|
| + EXPECT_EQ("http://test.com/q?n1%3Dv1%26n2", it.GetValue());
|
| + EXPECT_EQ("http://test.com/q?n1=v1&n2", it.GetUnescapedValue());
|
| + it.Advance();
|
| +
|
| + ASSERT_FALSE(it.IsAtEnd());
|
| + EXPECT_EQ("multikey", it.GetKey());
|
| + EXPECT_EQ("value1", it.GetValue());
|
| + EXPECT_EQ("value1", it.GetUnescapedValue());
|
| + it.Advance();
|
| +
|
| + ASSERT_FALSE(it.IsAtEnd());
|
| + EXPECT_EQ("multikey", it.GetKey());
|
| + EXPECT_EQ("value2", it.GetValue());
|
| + EXPECT_EQ("value2", it.GetUnescapedValue());
|
| + it.Advance();
|
| +
|
| + ASSERT_FALSE(it.IsAtEnd());
|
| + EXPECT_EQ("multikey", it.GetKey());
|
| + EXPECT_EQ("", it.GetValue());
|
| + EXPECT_EQ("", it.GetUnescapedValue());
|
| + it.Advance();
|
| +
|
| + EXPECT_TRUE(it.IsAtEnd());
|
| +}
|
| +
|
| +TEST(UrlUtilTest, ParseQueryInvalidURL) {
|
| + const GURL url("http://%01/?test");
|
| + QueryIterator it(url);
|
| + EXPECT_TRUE(it.IsAtEnd());
|
| +}
|
| +
|
| } // namespace
|
| } // namespace net
|
|
|