Index: components/subresource_filter/core/common/url_rule_test_support.h |
diff --git a/components/subresource_filter/core/common/url_rule_test_support.h b/components/subresource_filter/core/common/url_rule_test_support.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..fef73b9456e8bfc0ec578aba266c46293461dec5 |
--- /dev/null |
+++ b/components/subresource_filter/core/common/url_rule_test_support.h |
@@ -0,0 +1,74 @@ |
+// 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. |
+ |
+#ifndef COMPONENTS_SUBRESOURCE_FILTER_CORE_COMMON_URL_RULE_TEST_SUPPORT_H_ |
+#define COMPONENTS_SUBRESOURCE_FILTER_CORE_COMMON_URL_RULE_TEST_SUPPORT_H_ |
+ |
+#include <string> |
+#include <vector> |
+ |
+#include "base/strings/string_piece.h" |
+#include "components/subresource_filter/core/common/proto/rules.pb.h" |
+#include "components/subresource_filter/core/common/url_pattern.h" |
+ |
+class GURL; |
+ |
+namespace url { |
+class Origin; |
+} |
+ |
+namespace subresource_filter { |
+namespace testing { |
+ |
+// Constants ------------------------------------------------------------------- |
+ |
+constexpr proto::UrlPatternType kSubstring = proto::URL_PATTERN_TYPE_SUBSTRING; |
+ |
+constexpr proto::AnchorType kAnchorNone = proto::ANCHOR_TYPE_NONE; |
+constexpr proto::AnchorType kBoundary = proto::ANCHOR_TYPE_BOUNDARY; |
+constexpr proto::AnchorType kSubdomain = proto::ANCHOR_TYPE_SUBDOMAIN; |
+ |
+constexpr proto::ElementType kNoElement = proto::ELEMENT_TYPE_UNSPECIFIED; |
+constexpr proto::ElementType kOther = proto::ELEMENT_TYPE_OTHER; |
+constexpr proto::ElementType kScript = proto::ELEMENT_TYPE_SCRIPT; |
+constexpr proto::ElementType kImage = proto::ELEMENT_TYPE_IMAGE; |
+constexpr proto::ElementType kSubdocument = proto::ELEMENT_TYPE_SUBDOCUMENT; |
+constexpr proto::ElementType kFont = proto::ELEMENT_TYPE_FONT; |
+constexpr proto::ElementType kPopup = proto::ELEMENT_TYPE_POPUP; |
+constexpr proto::ElementType kWebSocket = proto::ELEMENT_TYPE_WEBSOCKET; |
+constexpr proto::ElementType kAllElementTypes = proto::ELEMENT_TYPE_ALL; |
+ |
+constexpr proto::ActivationType kNoActivation = |
+ proto::ACTIVATION_TYPE_UNSPECIFIED; |
+constexpr proto::ActivationType kDocument = proto::ACTIVATION_TYPE_DOCUMENT; |
+constexpr proto::ActivationType kGenericBlock = |
+ proto::ACTIVATION_TYPE_GENERICBLOCK; |
+ |
+constexpr proto::SourceType kAnyParty = proto::SOURCE_TYPE_ANY; |
+constexpr proto::SourceType kThirdParty = proto::SOURCE_TYPE_THIRD_PARTY; |
+constexpr proto::SourceType kFirstParty = proto::SOURCE_TYPE_FIRST_PARTY; |
+ |
+// Helpers --------------------------------------------------------------------- |
+ |
+// Creates a UrlRule with the given |url_pattern|, and all necessary fields |
+// initialized to defaults. |
+proto::UrlRule MakeUrlRule(const UrlPattern& url_pattern = UrlPattern()); |
+ |
+// Parses |domains| and adds them to the domain list of the |rule|. |
+// |
+// The |domains| vector should contain non-empty strings. If a string starts |
+// with '~' then the following part of the string is an exception domain. |
+void AddDomains(const std::vector<std::string>& domains, proto::UrlRule* rule); |
+ |
+// Returns the url::Origin parsed from |origin_string|, or the unique origin if |
+// the string is empty. |
+url::Origin GetOrigin(base::StringPiece origin_string); |
+ |
+// Returns whether |url| is third-party resource w.r.t. |first_party_origin|. |
+bool IsThirdParty(const GURL& url, const url::Origin& first_party_origin); |
+ |
+} // namespace testing |
+} // namespace subresource_filter |
+ |
+#endif // COMPONENTS_SUBRESOURCE_FILTER_CORE_COMMON_URL_RULE_TEST_SUPPORT_H_ |