Index: components/subresource_filter/core/common/url_rule_test_support.cc |
diff --git a/components/subresource_filter/core/common/url_rule_test_support.cc b/components/subresource_filter/core/common/url_rule_test_support.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ab6f7f1bfe71633caeb86e2d606159afb920b531 |
--- /dev/null |
+++ b/components/subresource_filter/core/common/url_rule_test_support.cc |
@@ -0,0 +1,56 @@ |
+// 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 "components/subresource_filter/core/common/url_rule_test_support.h" |
+ |
+#include "base/logging.h" |
+#include "net/base/registry_controlled_domains/registry_controlled_domain.h" |
+#include "url/gurl.h" |
+#include "url/origin.h" |
+ |
+namespace subresource_filter { |
+namespace testing { |
+ |
+proto::UrlRule MakeUrlRule(const UrlPattern& url_pattern) { |
+ proto::UrlRule rule; |
+ |
+ rule.set_semantics(proto::RULE_SEMANTICS_BLACKLIST); |
+ rule.set_source_type(proto::SOURCE_TYPE_ANY); |
+ rule.set_element_types(kAllElementTypes); |
+ |
+ rule.set_url_pattern_type(url_pattern.type()); |
+ rule.set_anchor_left(url_pattern.anchor_left()); |
+ rule.set_anchor_right(url_pattern.anchor_right()); |
+ rule.set_match_case(url_pattern.match_case()); |
+ rule.set_url_pattern(url_pattern.url_pattern().as_string()); |
+ |
+ return rule; |
+} |
+ |
+void AddDomains(const std::vector<std::string>& domains, proto::UrlRule* rule) { |
+ for (std::string domain_pattern : domains) { |
+ DCHECK(!domain_pattern.empty()); |
+ auto* domain = rule->add_domains(); |
+ if (domain_pattern[0] == '~') { |
+ domain_pattern.erase(0, 1); |
+ domain->set_exclude(true); |
+ } |
+ domain->set_domain(std::move(domain_pattern)); |
+ } |
+} |
+ |
+url::Origin GetOrigin(base::StringPiece origin_string) { |
+ return !origin_string.empty() ? url::Origin(GURL(origin_string)) |
+ : url::Origin(); |
+} |
+ |
+bool IsThirdParty(const GURL& url, const url::Origin& first_party_origin) { |
+ return first_party_origin.unique() || |
+ !net::registry_controlled_domains::SameDomainOrHost( |
+ url, first_party_origin, |
+ net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES); |
+} |
+ |
+} // namespace testing |
+} // namespace subresource_filter |