| Index: url/origin_unittest.cc
|
| diff --git a/url/origin_unittest.cc b/url/origin_unittest.cc
|
| index 6a3128b7be2a8a87d1b0a5a840a0671e4af725a7..640b18ec927a8d18fd0ec2cbe915972d8feabf26 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", ""};
|
| + 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,15 @@ 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.empty());
|
| + EXPECT_TRUE(origin.IsSameOriginWith(origin));
|
| }
|
|
|
| TEST(OriginTest, UnsafelyCreateUniqueViaEmbeddedNulls) {
|
|
|