Chromium Code Reviews| Index: url/gurl_unittest.cc |
| diff --git a/url/gurl_unittest.cc b/url/gurl_unittest.cc |
| index 67da8e48259c4d61de6bde061c6beda6185e5b03..d3d6540cce56a212da7a35894b1aab62fc1bfe5b 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 "); |
| + |
| + // By default the trailing whitespace will have been stripped. |
| + EXPECT_EQ("data: one ? two # three", url.spec()); |
| + GURL::Replacements repl; |
| + repl.ClearRef(); |
| + GURL url_no_ref = url.ReplaceComponents(repl); |
| + |
| + EXPECT_EQ("data: one ? two ", 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(), " two "); |
| + |
|
brettw
2013/11/20 00:03:51
Nit: extra blank
joth
2013/11/21 00:08:45
Done.
|
| +} |
| + |
| TEST(GURLTest, PathForRequest) { |
| struct TestCase { |
| const char* input; |