| Index: components/offline_pages/offline_page_model_query_unittest.cc
|
| diff --git a/components/offline_pages/offline_page_model_query_unittest.cc b/components/offline_pages/offline_page_model_query_unittest.cc
|
| deleted file mode 100644
|
| index f8e300646fd8211891e177dbd2630d7fdf285856..0000000000000000000000000000000000000000
|
| --- a/components/offline_pages/offline_page_model_query_unittest.cc
|
| +++ /dev/null
|
| @@ -1,421 +0,0 @@
|
| -// Copyright 2016 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 "base/time/time.h"
|
| -#include "components/offline_pages/client_namespace_constants.h"
|
| -#include "components/offline_pages/client_policy_controller.h"
|
| -#include "components/offline_pages/offline_page_client_policy.h"
|
| -#include "components/offline_pages/offline_page_item.h"
|
| -#include "components/offline_pages/offline_page_model_query.h"
|
| -
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -namespace offline_pages {
|
| -
|
| -using Requirement = OfflinePageModelQueryBuilder::Requirement;
|
| -
|
| -namespace {
|
| -
|
| -const ClientId kClientId1 = {kDefaultNamespace, "id1"};
|
| -const GURL kUrl1 = GURL("https://ktestitem1.com");
|
| -const OfflinePageItem kTestItem1(kUrl1, 1, kClientId1, base::FilePath(), 1);
|
| -
|
| -const ClientId kClientId2 = {kDefaultNamespace, "id2"};
|
| -const GURL kUrl2 = GURL("https://ktestitem2.com");
|
| -const OfflinePageItem kTestItem2(kUrl2, 2, kClientId2, base::FilePath(), 2);
|
| -
|
| -const char kTestNamespace[] = "test_namespace";
|
| -} // namespace
|
| -
|
| -class OfflinePageModelQueryTest : public testing::Test {
|
| - public:
|
| - OfflinePageModelQueryTest();
|
| - ~OfflinePageModelQueryTest() override;
|
| -
|
| - protected:
|
| - ClientPolicyController policy_;
|
| - OfflinePageModelQueryBuilder builder_;
|
| -
|
| - const OfflinePageItem expired_page() {
|
| - OfflinePageItem expiredTestItem(GURL("https://ktestitem1.com"), 3,
|
| - kClientId1, base::FilePath(), 3);
|
| - expiredTestItem.expiration_time = base::Time::Now();
|
| -
|
| - return expiredTestItem;
|
| - }
|
| -
|
| - const OfflinePageItem download_page() {
|
| - return OfflinePageItem(GURL("https://download.com"), 4,
|
| - {kDownloadNamespace, "id1"}, base::FilePath(), 4);
|
| - }
|
| -
|
| - const OfflinePageItem original_tab_page() {
|
| - return OfflinePageItem(GURL("https://download.com"), 5,
|
| - {kLastNNamespace, "id1"}, base::FilePath(), 5);
|
| - }
|
| -
|
| - const OfflinePageItem test_namespace_page() {
|
| - return OfflinePageItem(GURL("https://download.com"), 6,
|
| - {kTestNamespace, "id1"}, base::FilePath(), 6);
|
| - }
|
| -
|
| - const OfflinePageItem recent_page() {
|
| - return OfflinePageItem(GURL("https://download.com"), 7,
|
| - {kLastNNamespace, "id1"}, base::FilePath(), 7);
|
| - }
|
| -};
|
| -
|
| -OfflinePageModelQueryTest::OfflinePageModelQueryTest() {
|
| - policy_.AddPolicyForTest(
|
| - kTestNamespace,
|
| - OfflinePageClientPolicyBuilder(kTestNamespace,
|
| - LifetimePolicy::LifetimeType::TEMPORARY,
|
| - kUnlimitedPages, kUnlimitedPages)
|
| - .SetIsOnlyShownInOriginalTab(true));
|
| -}
|
| -
|
| -OfflinePageModelQueryTest::~OfflinePageModelQueryTest() {}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, DefaultValues) {
|
| - std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(&policy_);
|
| -
|
| - EXPECT_NE(nullptr, query.get());
|
| - EXPECT_FALSE(query->GetAllowExpired());
|
| - EXPECT_EQ(Requirement::UNSET, query->GetRestrictedToOfflineIds().first);
|
| - EXPECT_FALSE(query->GetRestrictedToNamespaces().first);
|
| -
|
| - EXPECT_TRUE(query->Matches(kTestItem1));
|
| - EXPECT_TRUE(query->Matches(kTestItem2));
|
| - EXPECT_FALSE(query->Matches(expired_page()));
|
| -}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, OfflinePageIdsSet_Exclude) {
|
| - std::vector<int64_t> ids = {1, 4, 9, 16};
|
| - builder_.SetOfflinePageIds(Requirement::EXCLUDE_MATCHING, ids);
|
| -
|
| - std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(&policy_);
|
| - std::pair<Requirement, std::set<int64_t>> offline_id_restriction =
|
| - query->GetRestrictedToOfflineIds();
|
| - EXPECT_EQ(Requirement::EXCLUDE_MATCHING, offline_id_restriction.first);
|
| -
|
| - ASSERT_EQ(ids.size(), offline_id_restriction.second.size());
|
| - for (auto id : ids) {
|
| - EXPECT_EQ(1U, offline_id_restriction.second.count(id))
|
| - << "Did not find " << id << "in query restrictions.";
|
| - }
|
| -
|
| - EXPECT_FALSE(query->Matches(kTestItem1));
|
| - EXPECT_TRUE(query->Matches(kTestItem2));
|
| -}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, OfflinePageIdsSet) {
|
| - std::vector<int64_t> ids = {1, 4, 9, 16};
|
| - builder_.SetOfflinePageIds(Requirement::INCLUDE_MATCHING, ids);
|
| -
|
| - std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(&policy_);
|
| - std::pair<Requirement, std::set<int64_t>> offline_id_restriction =
|
| - query->GetRestrictedToOfflineIds();
|
| - EXPECT_EQ(Requirement::INCLUDE_MATCHING, offline_id_restriction.first);
|
| -
|
| - ASSERT_EQ(ids.size(), offline_id_restriction.second.size());
|
| - for (auto id : ids) {
|
| - EXPECT_EQ(1U, offline_id_restriction.second.count(id))
|
| - << "Did not find " << id << "in query restrictions.";
|
| - }
|
| -
|
| - EXPECT_TRUE(query->Matches(kTestItem1));
|
| - EXPECT_FALSE(query->Matches(kTestItem2));
|
| -}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, OfflinePageIdsReplace) {
|
| - std::vector<int64_t> ids = {1, 4, 9, 16};
|
| - std::vector<int64_t> ids2 = {1, 2, 3, 4};
|
| -
|
| - builder_.SetOfflinePageIds(Requirement::INCLUDE_MATCHING, ids);
|
| - builder_.SetOfflinePageIds(Requirement::INCLUDE_MATCHING, ids2);
|
| -
|
| - std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(&policy_);
|
| - std::pair<Requirement, std::set<int64_t>> offline_id_restriction =
|
| - query->GetRestrictedToOfflineIds();
|
| - EXPECT_EQ(Requirement::INCLUDE_MATCHING, offline_id_restriction.first);
|
| -
|
| - ASSERT_EQ(ids2.size(), offline_id_restriction.second.size());
|
| - for (auto id : ids2) {
|
| - EXPECT_EQ(1U, offline_id_restriction.second.count(id))
|
| - << "Did not find " << id << "in query restrictions.";
|
| - }
|
| -
|
| - EXPECT_TRUE(query->Matches(kTestItem1));
|
| - EXPECT_TRUE(query->Matches(kTestItem2));
|
| -}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, ClientIdsSet) {
|
| - std::vector<ClientId> ids = {kClientId2, {"invalid", "client id"}};
|
| - builder_.SetClientIds(Requirement::INCLUDE_MATCHING, ids);
|
| -
|
| - std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(&policy_);
|
| -
|
| - auto restriction = query->GetRestrictedToClientIds();
|
| - const Requirement& requirement = restriction.first;
|
| - const std::set<ClientId>& ids_out = restriction.second;
|
| -
|
| - EXPECT_EQ(Requirement::INCLUDE_MATCHING, requirement);
|
| -
|
| - ASSERT_EQ(ids.size(), ids_out.size());
|
| - for (auto id : ids) {
|
| - EXPECT_EQ(1U, ids_out.count(id)) << "Did not find " << id.name_space << "."
|
| - << id.id << "in query restrictions.";
|
| - }
|
| -
|
| - EXPECT_TRUE(query->Matches(kTestItem2));
|
| - EXPECT_FALSE(query->Matches(kTestItem1));
|
| -}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, ClientIdsSet_Exclude) {
|
| - std::vector<ClientId> ids = {kClientId2, {"invalid", "client id"}};
|
| - builder_.SetClientIds(Requirement::EXCLUDE_MATCHING, ids);
|
| -
|
| - std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(&policy_);
|
| -
|
| - auto restriction = query->GetRestrictedToClientIds();
|
| - const Requirement& requirement = restriction.first;
|
| - const std::set<ClientId>& ids_out = restriction.second;
|
| -
|
| - EXPECT_EQ(Requirement::EXCLUDE_MATCHING, requirement);
|
| -
|
| - ASSERT_EQ(ids.size(), ids_out.size());
|
| - for (auto id : ids) {
|
| - EXPECT_EQ(1U, ids_out.count(id)) << "Did not find " << id.name_space << "."
|
| - << id.id << "in query restrictions.";
|
| - }
|
| -
|
| - EXPECT_TRUE(query->Matches(kTestItem1));
|
| - EXPECT_FALSE(query->Matches(kTestItem2));
|
| -}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, ClientIdsReplace) {
|
| - std::vector<ClientId> ids = {kClientId2, {"invalid", "client id"}};
|
| - std::vector<ClientId> ids2 = {kClientId1, {"invalid", "client id"}};
|
| -
|
| - builder_.SetClientIds(Requirement::INCLUDE_MATCHING, ids);
|
| - builder_.SetClientIds(Requirement::INCLUDE_MATCHING, ids2);
|
| -
|
| - std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(&policy_);
|
| -
|
| - auto restriction = query->GetRestrictedToClientIds();
|
| - const Requirement& requirement = restriction.first;
|
| - const std::set<ClientId>& ids_out = restriction.second;
|
| -
|
| - EXPECT_EQ(Requirement::INCLUDE_MATCHING, requirement);
|
| -
|
| - ASSERT_EQ(ids2.size(), ids_out.size());
|
| - for (auto id : ids2) {
|
| - EXPECT_EQ(1U, ids_out.count(id)) << "Did not find " << id.name_space << "."
|
| - << id.id << "in query restrictions.";
|
| - }
|
| -
|
| - EXPECT_TRUE(query->Matches(kTestItem1));
|
| - EXPECT_FALSE(query->Matches(kTestItem2));
|
| -}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, UrlsSet) {
|
| - std::vector<GURL> urls = {kUrl1, GURL("https://abc.def")};
|
| - builder_.SetUrls(Requirement::INCLUDE_MATCHING, urls);
|
| -
|
| - std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(&policy_);
|
| -
|
| - auto restriction = query->GetRestrictedToUrls();
|
| - const Requirement& requirement = restriction.first;
|
| - const std::set<GURL>& urls_out = restriction.second;
|
| -
|
| - EXPECT_EQ(Requirement::INCLUDE_MATCHING, requirement);
|
| -
|
| - ASSERT_EQ(urls.size(), urls_out.size());
|
| - for (auto url : urls) {
|
| - EXPECT_EQ(1U, urls_out.count(url)) << "Did not find " << url
|
| - << "in query restrictions.";
|
| - }
|
| -
|
| - EXPECT_TRUE(query->Matches(kTestItem1));
|
| - EXPECT_FALSE(query->Matches(kTestItem2));
|
| -}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, UrlsSet_Exclude) {
|
| - std::vector<GURL> urls = {kUrl1, GURL("https://abc.def")};
|
| - builder_.SetUrls(Requirement::EXCLUDE_MATCHING, urls);
|
| -
|
| - std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(&policy_);
|
| -
|
| - auto restriction = query->GetRestrictedToUrls();
|
| - const Requirement& requirement = restriction.first;
|
| - const std::set<GURL>& urls_out = restriction.second;
|
| -
|
| - EXPECT_EQ(Requirement::EXCLUDE_MATCHING, requirement);
|
| -
|
| - ASSERT_EQ(urls.size(), urls_out.size());
|
| - for (auto url : urls) {
|
| - EXPECT_EQ(1U, urls_out.count(url)) << "Did not find " << url
|
| - << "in query restrictions.";
|
| - }
|
| -
|
| - EXPECT_FALSE(query->Matches(kTestItem1));
|
| - EXPECT_TRUE(query->Matches(kTestItem2));
|
| -}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, UrlsReplace) {
|
| - std::vector<GURL> urls = {kUrl1, GURL("https://abc.def")};
|
| - std::vector<GURL> urls2 = {kUrl2, GURL("https://abc.def")};
|
| -
|
| - builder_.SetUrls(Requirement::INCLUDE_MATCHING, urls);
|
| - builder_.SetUrls(Requirement::INCLUDE_MATCHING, urls2);
|
| -
|
| - std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(&policy_);
|
| -
|
| - auto restriction = query->GetRestrictedToUrls();
|
| - const Requirement& requirement = restriction.first;
|
| - const std::set<GURL>& urls_out = restriction.second;
|
| -
|
| - EXPECT_EQ(Requirement::INCLUDE_MATCHING, requirement);
|
| -
|
| - ASSERT_EQ(urls2.size(), urls_out.size());
|
| - for (auto url : urls2) {
|
| - EXPECT_EQ(1U, urls_out.count(url)) << "Did not find " << url
|
| - << "in query restrictions.";
|
| - }
|
| -
|
| - EXPECT_FALSE(query->Matches(kTestItem1));
|
| - EXPECT_TRUE(query->Matches(kTestItem2));
|
| -}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, AllowExpired) {
|
| - std::unique_ptr<OfflinePageModelQuery> query =
|
| - builder_.AllowExpiredPages(true).Build(&policy_);
|
| -
|
| - EXPECT_NE(nullptr, query.get());
|
| - EXPECT_TRUE(query->GetAllowExpired());
|
| -
|
| - EXPECT_TRUE(query->Matches(kTestItem1));
|
| - EXPECT_TRUE(query->Matches(kTestItem2));
|
| - EXPECT_TRUE(query->Matches(expired_page()));
|
| -}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, RequireSupportedByDownload_Only) {
|
| - builder_.RequireSupportedByDownload(Requirement::INCLUDE_MATCHING);
|
| - std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(&policy_);
|
| -
|
| - auto restriction = query->GetRestrictedToNamespaces();
|
| - std::set<std::string> namespaces_allowed = restriction.second;
|
| - bool restricted_to_namespaces = restriction.first;
|
| - EXPECT_TRUE(restricted_to_namespaces);
|
| -
|
| - for (const std::string& name_space : namespaces_allowed) {
|
| - EXPECT_TRUE(policy_.IsSupportedByDownload(name_space)) << "Namespace: "
|
| - << name_space;
|
| - }
|
| - EXPECT_FALSE(query->Matches(kTestItem1));
|
| - EXPECT_TRUE(query->Matches(download_page()));
|
| -}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, RequireSupportedByDownload_Except) {
|
| - builder_.RequireSupportedByDownload(Requirement::EXCLUDE_MATCHING);
|
| - std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(&policy_);
|
| -
|
| - auto restriction = query->GetRestrictedToNamespaces();
|
| - std::set<std::string> namespaces_allowed = restriction.second;
|
| - bool restricted_to_namespaces = restriction.first;
|
| - EXPECT_TRUE(restricted_to_namespaces);
|
| -
|
| - for (const std::string& name_space : namespaces_allowed) {
|
| - EXPECT_FALSE(policy_.IsSupportedByDownload(name_space)) << "Namespace: "
|
| - << name_space;
|
| - }
|
| -
|
| - EXPECT_TRUE(query->Matches(kTestItem1));
|
| - EXPECT_FALSE(query->Matches(download_page()));
|
| -}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, RequireShownAsRecentlyVisitedSite_Only) {
|
| - builder_.RequireShownAsRecentlyVisitedSite(Requirement::INCLUDE_MATCHING);
|
| - std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(&policy_);
|
| -
|
| - auto restriction = query->GetRestrictedToNamespaces();
|
| - std::set<std::string> namespaces_allowed = restriction.second;
|
| - bool restricted_to_namespaces = restriction.first;
|
| - EXPECT_TRUE(restricted_to_namespaces);
|
| -
|
| - for (const std::string& name_space : namespaces_allowed) {
|
| - EXPECT_TRUE(policy_.IsShownAsRecentlyVisitedSite(name_space))
|
| - << "Namespace: " << name_space;
|
| - }
|
| - EXPECT_FALSE(query->Matches(kTestItem1));
|
| - EXPECT_TRUE(query->Matches(recent_page()));
|
| -}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, RequireShownAsRecentlyVisitedSite_Except) {
|
| - builder_.RequireShownAsRecentlyVisitedSite(Requirement::EXCLUDE_MATCHING);
|
| - std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(&policy_);
|
| -
|
| - auto restriction = query->GetRestrictedToNamespaces();
|
| - std::set<std::string> namespaces_allowed = restriction.second;
|
| - bool restricted_to_namespaces = restriction.first;
|
| - EXPECT_TRUE(restricted_to_namespaces);
|
| -
|
| - for (const std::string& name_space : namespaces_allowed) {
|
| - EXPECT_FALSE(policy_.IsShownAsRecentlyVisitedSite(name_space))
|
| - << "Namespace: " << name_space;
|
| - }
|
| - EXPECT_TRUE(query->Matches(kTestItem1));
|
| - EXPECT_FALSE(query->Matches(recent_page()));
|
| -}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, RequireRestrictedToOriginalTab_Only) {
|
| - builder_.RequireRestrictedToOriginalTab(Requirement::INCLUDE_MATCHING);
|
| - std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(&policy_);
|
| -
|
| - auto restriction = query->GetRestrictedToNamespaces();
|
| - std::set<std::string> namespaces_allowed = restriction.second;
|
| - bool restricted_to_namespaces = restriction.first;
|
| - EXPECT_TRUE(restricted_to_namespaces);
|
| -
|
| - for (const std::string& name_space : namespaces_allowed) {
|
| - EXPECT_TRUE(policy_.IsRestrictedToOriginalTab(name_space)) << "Namespace: "
|
| - << name_space;
|
| - }
|
| - EXPECT_FALSE(query->Matches(kTestItem1));
|
| - EXPECT_TRUE(query->Matches(original_tab_page()));
|
| -}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, RequireRestrictedToOriginalTab_Except) {
|
| - builder_.RequireRestrictedToOriginalTab(Requirement::EXCLUDE_MATCHING);
|
| - std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(&policy_);
|
| -
|
| - auto restriction = query->GetRestrictedToNamespaces();
|
| - std::set<std::string> namespaces_allowed = restriction.second;
|
| - bool restricted_to_namespaces = restriction.first;
|
| - EXPECT_TRUE(restricted_to_namespaces);
|
| -
|
| - for (const std::string& name_space : namespaces_allowed) {
|
| - EXPECT_FALSE(policy_.IsRestrictedToOriginalTab(name_space)) << "Namespace: "
|
| - << name_space;
|
| - }
|
| - EXPECT_TRUE(query->Matches(kTestItem1));
|
| - EXPECT_FALSE(query->Matches(original_tab_page()));
|
| -}
|
| -
|
| -TEST_F(OfflinePageModelQueryTest, IntersectNamespaces) {
|
| - // This should exclude last N, but include |kTestNamespace|.
|
| - builder_.RequireRestrictedToOriginalTab(Requirement::INCLUDE_MATCHING)
|
| - .RequireShownAsRecentlyVisitedSite(Requirement::EXCLUDE_MATCHING);
|
| - std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(&policy_);
|
| -
|
| - auto restriction = query->GetRestrictedToNamespaces();
|
| - std::set<std::string> namespaces_allowed = restriction.second;
|
| - bool restricted_to_namespaces = restriction.first;
|
| - EXPECT_TRUE(restricted_to_namespaces);
|
| -
|
| - EXPECT_TRUE(namespaces_allowed.count(kTestNamespace) == 1);
|
| - EXPECT_FALSE(query->Matches(recent_page()));
|
| -}
|
| -
|
| -} // namespace offline_pages
|
|
|