Chromium Code Reviews| Index: Source/platform/weborigin/SecurityOriginTest.cpp |
| diff --git a/Source/platform/weborigin/SecurityOriginTest.cpp b/Source/platform/weborigin/SecurityOriginTest.cpp |
| index 8c9e36e1209df69fb0495c7bc6c9f167be46853a..c64ced2f462531be0214acd47456ae126437a16f 100644 |
| --- a/Source/platform/weborigin/SecurityOriginTest.cpp |
| +++ b/Source/platform/weborigin/SecurityOriginTest.cpp |
| @@ -31,6 +31,7 @@ |
| #include "config.h" |
| #include "platform/weborigin/SecurityOrigin.h" |
| +#include "platform/RuntimeEnabledFeatures.h" |
| #include "platform/weborigin/KURL.h" |
| #include <gtest/gtest.h> |
| @@ -139,5 +140,51 @@ TEST(SecurityOriginTest, CanAccessFeatureRequringSecureOrigin) |
| EXPECT_EQ("Only secure origins are allowed. http://goo.gl/lq4gCo", errorMessage); |
| } |
| +TEST(SecurityOriginTest, Suborigins) |
| +{ |
| + blink::RuntimeEnabledFeatures::setSuboriginsEnabled(true); |
| + |
| + RefPtr<SecurityOrigin> origin = SecurityOrigin::createFromString("https://test.com"); |
| + EXPECT_FALSE(origin->hasSuborigin()); |
| + origin->addSuborigin("foobar"); |
| + EXPECT_TRUE(origin->hasSuborigin()); |
| + EXPECT_EQ("foobar", origin->suboriginName()); |
| + |
| + origin = SecurityOrigin::createFromString("suborigin+foobar+https://test.com"); |
| + EXPECT_TRUE(origin->hasSuborigin()); |
| + EXPECT_EQ("foobar", origin->suboriginName()); |
| + |
| + origin = SecurityOrigin::createFromString("sborigin+foobar+https://test.com"); |
| + EXPECT_FALSE(origin->hasSuborigin()); |
| + |
| + origin = SecurityOrigin::createFromString("+foobar+https://test.com"); |
| + EXPECT_FALSE(origin->hasSuborigin()); |
| + |
| + origin = SecurityOrigin::createFromString("suborigin++https://test.com"); |
| + EXPECT_FALSE(origin->hasSuborigin()); |
| + |
| + origin = SecurityOrigin::createFromString("suborigin+https://test.com"); |
| + EXPECT_FALSE(origin->hasSuborigin()); |
| + |
| + origin = SecurityOrigin::createFromString("suborigin+foobar+https://test.com"); |
| + EXPECT_DEATH(origin->addSuborigin("shouldhitassert"), ""); |
| + |
| + origin = SecurityOrigin::createFromString("https://test.com"); |
| + RefPtr<SecurityOrigin> suborigin1 = SecurityOrigin::createFromString("suborigin+foobar+https://test.com"); |
| + RefPtr<SecurityOrigin> suborigin2 = SecurityOrigin::createFromString("suborigin+bazbar+https://test.com"); |
| + EXPECT_TRUE(suborigin1->canAccess(suborigin1.get())); |
| + EXPECT_FALSE(origin->canAccess(suborigin1.get())); |
| + EXPECT_FALSE(suborigin1->canAccess(origin.get())); |
| + EXPECT_FALSE(suborigin1->canAccess(suborigin2.get())); |
|
Mike West
2015/04/13 10:03:35
Nit: I'd suggest splitting `canAccess` and `canReq
|
| + |
| + EXPECT_TRUE(suborigin1->canRequest(blink::KURL(blink::KURL(), suborigin1->toString()))); |
| + EXPECT_FALSE(origin->canRequest(blink::KURL(blink::KURL(), suborigin1->toString()))); |
| + EXPECT_FALSE(suborigin1->canRequest(blink::KURL(blink::KURL(), origin->toString()))); |
| + EXPECT_FALSE(suborigin1->canRequest(blink::KURL(blink::KURL(), suborigin2->toString()))); |
| + |
| + origin = SecurityOrigin::createFromString("suborigin+foobar+https://test.com"); |
| + EXPECT_FALSE(origin->canShowNotifications()); |
| +} |
| + |
| } // namespace |