| 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_
|
|
|