diff options
Diffstat (limited to 'chromium/content/common/site_isolation_policy_unittest.cc')
-rw-r--r-- | chromium/content/common/site_isolation_policy_unittest.cc | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/chromium/content/common/site_isolation_policy_unittest.cc b/chromium/content/common/site_isolation_policy_unittest.cc new file mode 100644 index 00000000000..b3935e68ab7 --- /dev/null +++ b/chromium/content/common/site_isolation_policy_unittest.cc @@ -0,0 +1,48 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/common/site_isolation_policy.h" + +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "url/gurl.h" +#include "url/origin.h" + +namespace content { + +// Verifies parsing logic in SiteIsolationPolicy::ParseIsolatedOrigins. +TEST(SiteIsolationPolicyTest, ParseIsolatedOrigins) { + // Invalid and unique origins are not permitted. + EXPECT_THAT(SiteIsolationPolicy::ParseIsolatedOrigins("foo"), + testing::IsEmpty()); + EXPECT_THAT(SiteIsolationPolicy::ParseIsolatedOrigins(""), + testing::IsEmpty()); + EXPECT_THAT(SiteIsolationPolicy::ParseIsolatedOrigins("about:blank"), + testing::IsEmpty()); + + // Single simple, valid origin. + EXPECT_THAT( + SiteIsolationPolicy::ParseIsolatedOrigins("http://isolated.foo.com"), + testing::ElementsAre( + url::Origin::Create(GURL("http://isolated.foo.com")))); + + // Multiple comma-separated origins. + EXPECT_THAT( + SiteIsolationPolicy::ParseIsolatedOrigins( + "http://a.com,https://b.com,,https://c.com:8000"), + testing::ElementsAre(url::Origin::Create(GURL("http://a.com")), + url::Origin::Create(GURL("https://b.com")), + url::Origin::Create(GURL("https://c.com:8000")))); + + // ParseIsolatedOrigins should not do any deduplication (that is the job of + // ChildProcessSecurityPolicyImpl::AddIsolatedOrigins). + EXPECT_THAT( + SiteIsolationPolicy::ParseIsolatedOrigins( + "https://b.com,https://b.com,https://b.com:1234"), + testing::ElementsAre(url::Origin::Create(GURL("https://b.com")), + url::Origin::Create(GURL("https://b.com")), + url::Origin::Create(GURL("https://b.com:1234")))); +} + +} // namespace content |