| Index: url/gurl_unittest.cc
|
| diff --git a/url/gurl_unittest.cc b/url/gurl_unittest.cc
|
| index 67da8e48259c4d61de6bde061c6beda6185e5b03..521c4e90fa7142fb2dfc4911faacaee2ed39df2e 100644
|
| --- a/url/gurl_unittest.cc
|
| +++ b/url/gurl_unittest.cc
|
| @@ -350,6 +350,30 @@ TEST(GURLTest, Replacements) {
|
| }
|
| }
|
|
|
| +TEST(GURLTest, ClearFragmentOnDataUrl) {
|
| + // http://crbug.com/291747 - a data URL may legitimately have trailing
|
| + // whitespace in the spec after the ref is cleared. Test this does not trigger
|
| + // the url_parse::Parsed importing validation DCHECK in GURL.
|
| + GURL url(" data: one ? two # three ");
|
| +
|
| + // The trailing whitespace will have been stripped.
|
| + EXPECT_EQ("data:%20one%20?%20two%20#%20three", url.spec());
|
| + GURL::Replacements repl;
|
| + repl.ClearRef();
|
| + GURL url_no_ref = url.ReplaceComponents(repl);
|
| +
|
| + EXPECT_EQ("data:%20one%20?%20two%20", url_no_ref.spec());
|
| +
|
| + // Importing a parsed url via this constructor overload will retain trailing
|
| + // whitespace.
|
| + GURL import_url(url_no_ref.spec(),
|
| + url_no_ref.parsed_for_possibly_invalid_spec(),
|
| + url_no_ref.is_valid());
|
| + EXPECT_EQ(url_no_ref, import_url);
|
| + EXPECT_EQ(import_url.query(), "%20two%20");
|
| +
|
| +}
|
| +
|
| TEST(GURLTest, PathForRequest) {
|
| struct TestCase {
|
| const char* input;
|
|
|