summaryrefslogtreecommitdiff
path: root/chromium/content/common/site_isolation_policy_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/common/site_isolation_policy_unittest.cc')
-rw-r--r--chromium/content/common/site_isolation_policy_unittest.cc48
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