Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(936)

Unified Diff: components/subresource_filter/core/common/url_rule_test_support.h

Issue 2865643002: Clean up IndexedRuleset tests; factor out test_support. (Closed)
Patch Set: Address comments from engedy@. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_

Powered by Google App Engine
This is Rietveld 408576698