Chromium Code Reviews| Index: url/origin_unittest.cc |
| diff --git a/url/origin_unittest.cc b/url/origin_unittest.cc |
| index 6a3128b7be2a8a87d1b0a5a840a0671e4af725a7..95441f2494013436c0ae9be071c471e9d35e6b1c 100644 |
| --- a/url/origin_unittest.cc |
| +++ b/url/origin_unittest.cc |
| @@ -24,7 +24,6 @@ TEST(OriginTest, UniqueOriginComparison) { |
| const char* const urls[] = {"data:text/html,Hello!", |
| "javascript:alert(1)", |
| "file://example.com:443/etc/passwd", |
| - "yay", |
| "http::///invalid.example.com/"}; |
| for (const auto& test_url : urls) { |
| @@ -86,7 +85,8 @@ TEST(OriginTest, ConstructFromGURL) { |
| // Blob: |
| {"blob:http://example.com/guid-goes-here", "http", "example.com", 80}, |
| - {"blob:http://example.com:123/guid-goes-here", "http", "example.com", 123}, |
| + {"blob:http://example.com:123/guid-goes-here", "http", "example.com", |
| + 123}, |
| {"blob:https://example.com/guid-goes-here", "https", "example.com", 443}, |
| {"blob:http://u:p@example.com/guid-goes-here", "http", "example.com", 80}, |
| }; |
| @@ -104,6 +104,16 @@ TEST(OriginTest, ConstructFromGURL) { |
| EXPECT_FALSE(different_origin.IsSameOriginWith(origin)); |
| EXPECT_FALSE(origin.IsSameOriginWith(different_origin)); |
| } |
| + |
| + const char* empties[] = {"yay", ""}; |
|
Mike West
2016/03/04 06:09:56
Hrm. Why is "GURL('yay')" empty? I would have expe
palmer
2016/03/08 01:20:00
GURL("yay") is invalid and empty.
I'm not sure wh
|
| + for (const auto& empty : empties) { |
| + GURL test_url(empty); |
| + url::Origin origin(test_url); |
| + EXPECT_EQ("", origin.scheme()); |
| + EXPECT_EQ("", origin.host()); |
| + EXPECT_EQ(0, origin.port()); |
| + EXPECT_TRUE(origin.empty()); |
| + } |
| } |
| TEST(OriginTest, Serialization) { |
| @@ -120,6 +130,7 @@ TEST(OriginTest, Serialization) { |
| {"https://example.com:123/", "https://example.com:123"}, |
| {"file:///etc/passwd", "file://"}, |
| {"file://example.com/etc/passwd", "file://"}, |
| + {"data:uniqueness", "null"}, |
| }; |
| for (const auto& test_case : cases) { |
| @@ -134,6 +145,14 @@ TEST(OriginTest, Serialization) { |
| out << origin; |
| EXPECT_EQ(test_case.expected, out.str()); |
| } |
| + |
| + GURL empty_url(""); |
| + EXPECT_FALSE(empty_url.is_valid()); |
| + url::Origin empty_origin(empty_url); |
| + EXPECT_EQ("", empty_origin.Serialize()); |
| + std::stringstream out; |
| + out << empty_origin; |
| + EXPECT_EQ("", out.str()); |
| } |
| TEST(OriginTest, Comparison) { |
| @@ -194,8 +213,7 @@ TEST(OriginTest, UnsafelyCreateUniqueOnInvalidInput) { |
| const char* scheme; |
| const char* host; |
| uint16_t port; |
| - } cases[] = {{"", "", 0}, |
| - {"data", "", 0}, |
| + } cases[] = {{"data", "", 0}, |
| {"blob", "", 0}, |
| {"filesystem", "", 0}, |
| {"data", "example.com", 80}, |
| @@ -222,6 +240,14 @@ TEST(OriginTest, UnsafelyCreateUniqueOnInvalidInput) { |
| EXPECT_TRUE(origin.unique()); |
| EXPECT_FALSE(origin.IsSameOriginWith(origin)); |
| } |
| + |
| + url::Origin origin = |
| + url::Origin::UnsafelyCreateOriginWithoutNormalization("", "", 0); |
| + EXPECT_EQ("", origin.scheme()); |
| + EXPECT_EQ("", origin.host()); |
| + EXPECT_EQ(0, origin.port()); |
| + EXPECT_TRUE(origin.unique()); |
| + EXPECT_TRUE(origin.IsSameOriginWith(origin)); |
|
Mike West
2016/03/04 06:09:56
Nit: `EXPECT_TRUE(origin.empty());`
palmer
2016/03/08 01:20:00
Done.
|
| } |
| TEST(OriginTest, UnsafelyCreateUniqueViaEmbeddedNulls) { |