| Index: components/previews/core/previews_black_list_unittest.cc
|
| diff --git a/components/previews/core/previews_black_list_unittest.cc b/components/previews/core/previews_black_list_unittest.cc
|
| index a3d3e9dcbed9d6a575e7fa6c8399c5ec76a78a69..1622a7b1a7f7509a7bb11627eb65824244af3576 100644
|
| --- a/components/previews/core/previews_black_list_unittest.cc
|
| +++ b/components/previews/core/previews_black_list_unittest.cc
|
| @@ -107,53 +107,63 @@ TEST_F(PreviewsBlackListTest, PerHostBlackListNoStore) {
|
| params) &&
|
| base::FieldTrialList::CreateFieldTrial("ClientSidePreviews", "Enabled"));
|
|
|
| base::SimpleTestClock* test_clock = new base::SimpleTestClock();
|
| base::Time start = test_clock->Now();
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
|
|
| std::unique_ptr<PreviewsBlackList> black_list(
|
| new PreviewsBlackList(nullptr, base::WrapUnique(test_clock)));
|
|
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_a, PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_a, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
|
|
| black_list->AddPreviewNavigation(url_a, true, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| black_list->AddPreviewNavigation(url_a, true, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
|
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_a, PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::HOST_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(url_a, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
|
|
| black_list->AddPreviewNavigation(url_b, true, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| black_list->AddPreviewNavigation(url_b, true, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
|
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_a, PreviewsType::OFFLINE));
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::HOST_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(url_a, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::HOST_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
|
|
| black_list->AddPreviewNavigation(url_b, false, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| black_list->AddPreviewNavigation(url_b, false, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| black_list->AddPreviewNavigation(url_b, false, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
|
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_a, PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::HOST_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(url_a, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
|
|
| black_list->ClearBlackList(start, test_clock->Now());
|
|
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_a, PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_a, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
|
|
| variations::testing::ClearAllVariationParams();
|
| }
|
|
|
| TEST_F(PreviewsBlackListTest, PerHostBlackListWithStore) {
|
| // Tests the black list behavior when a non-null OptOutSture is passed in.
|
| const GURL url_a1("http://www.url_a.com/a1");
|
| const GURL url_a2("http://www.url_a.com/a2");
|
| const GURL url_b("http://www.url_b.com");
|
| const size_t per_host_history = 4;
|
| @@ -187,73 +197,94 @@ TEST_F(PreviewsBlackListTest, PerHostBlackListWithStore) {
|
|
|
| base::SimpleTestClock* test_clock = new base::SimpleTestClock();
|
| base::Time start = test_clock->Now();
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
|
|
| TestPreviewsOptOutStore* opt_out_store = new TestPreviewsOptOutStore();
|
|
|
| std::unique_ptr<PreviewsBlackList> black_list(new PreviewsBlackList(
|
| base::WrapUnique(opt_out_store), base::WrapUnique(test_clock)));
|
|
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_a1, PreviewsType::OFFLINE));
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_a2, PreviewsType::OFFLINE));
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::BLACKLIST_DATA_NOT_LOADED,
|
| + black_list->IsLoadedAndAllowed(url_a1, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::BLACKLIST_DATA_NOT_LOADED,
|
| + black_list->IsLoadedAndAllowed(url_a2, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::BLACKLIST_DATA_NOT_LOADED,
|
| + black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
|
|
| base::RunLoop().RunUntilIdle();
|
|
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_a1, PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_a2, PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_a1, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_a2, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
|
|
| black_list->AddPreviewNavigation(url_a1, true, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| black_list->AddPreviewNavigation(url_a1, true, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
|
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_a1, PreviewsType::OFFLINE));
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_a2, PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::HOST_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(url_a1, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::HOST_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(url_a2, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
|
|
| black_list->AddPreviewNavigation(url_b, true, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| black_list->AddPreviewNavigation(url_b, true, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
|
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_a1, PreviewsType::OFFLINE));
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_a2, PreviewsType::OFFLINE));
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::HOST_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(url_a1, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::HOST_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(url_a2, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::HOST_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
|
|
| black_list->AddPreviewNavigation(url_b, false, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| black_list->AddPreviewNavigation(url_b, false, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| black_list->AddPreviewNavigation(url_b, false, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
|
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_a1, PreviewsType::OFFLINE));
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_a2, PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::HOST_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(url_a1, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::HOST_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(url_a2, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
|
|
| EXPECT_EQ(0, opt_out_store->clear_blacklist_count());
|
| black_list->ClearBlackList(start, base::Time::Now());
|
| EXPECT_EQ(1, opt_out_store->clear_blacklist_count());
|
|
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_a1, PreviewsType::OFFLINE));
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_a2, PreviewsType::OFFLINE));
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::BLACKLIST_DATA_NOT_LOADED,
|
| + black_list->IsLoadedAndAllowed(url_a1, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::BLACKLIST_DATA_NOT_LOADED,
|
| + black_list->IsLoadedAndAllowed(url_a2, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::BLACKLIST_DATA_NOT_LOADED,
|
| + black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
|
|
| base::RunLoop().RunUntilIdle();
|
| EXPECT_EQ(1, opt_out_store->clear_blacklist_count());
|
|
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_a1, PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_a1, PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_a1, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_a1, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
|
|
| variations::testing::ClearAllVariationParams();
|
| }
|
|
|
| TEST_F(PreviewsBlackListTest, HostIndifferentBlackList) {
|
| // Tests the black list behavior when a null OptOutSture is passed in.
|
| const GURL urls[] = {
|
| GURL("http://www.url_0.com"), GURL("http://www.url_1.com"),
|
| GURL("http://www.url_2.com"), GURL("http://www.url_3.com"),
|
| };
|
| @@ -282,45 +313,58 @@ TEST_F(PreviewsBlackListTest, HostIndifferentBlackList) {
|
| variations::AssociateVariationParams("ClientSidePreviews", "Enabled",
|
| params) &&
|
| base::FieldTrialList::CreateFieldTrial("ClientSidePreviews", "Enabled"));
|
|
|
| base::SimpleTestClock* test_clock = new base::SimpleTestClock();
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
|
|
| std::unique_ptr<PreviewsBlackList> black_list(
|
| new PreviewsBlackList(nullptr, base::WrapUnique(test_clock)));
|
|
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(urls[0], PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(urls[1], PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(urls[2], PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(urls[3], PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(urls[0], PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(urls[1], PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(urls[2], PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(urls[3], PreviewsType::OFFLINE));
|
|
|
| for (size_t i = 0; i < host_indifferent_threshold; i++) {
|
| black_list->AddPreviewNavigation(urls[i], true, PreviewsType::OFFLINE);
|
| - EXPECT_EQ(i != 3,
|
| + EXPECT_EQ(i != 3 ? PreviewsEligibilityReason::ALLOWED
|
| + : PreviewsEligibilityReason::USER_BLACKLISTED,
|
| black_list->IsLoadedAndAllowed(urls[0], PreviewsType::OFFLINE));
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| }
|
|
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(urls[0], PreviewsType::OFFLINE));
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(urls[1], PreviewsType::OFFLINE));
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(urls[2], PreviewsType::OFFLINE));
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(urls[3], PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::USER_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(urls[0], PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::USER_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(urls[1], PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::USER_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(urls[2], PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::USER_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(urls[3], PreviewsType::OFFLINE));
|
|
|
| black_list->AddPreviewNavigation(urls[3], false, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
|
|
| // New non-opt-out entry will cause these to be allowed now.
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(urls[0], PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(urls[1], PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(urls[2], PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(urls[3], PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(urls[0], PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(urls[1], PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(urls[2], PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(urls[3], PreviewsType::OFFLINE));
|
|
|
| variations::testing::ClearAllVariationParams();
|
| }
|
|
|
| TEST_F(PreviewsBlackListTest, QueueBehavior) {
|
| // Tests the black list asynchronous queue behavior. Methods called while
|
| // loading the opt-out store are queued and should run in the order they were
|
| // queued.
|
| const GURL url("http://www.url.com");
|
| const GURL url2("http://www.url2.com");
|
| @@ -352,46 +396,51 @@ TEST_F(PreviewsBlackListTest, QueueBehavior) {
|
|
|
| for (auto opt_out : test_opt_out) {
|
| base::SimpleTestClock* test_clock = new base::SimpleTestClock();
|
| base::Time start = test_clock->Now();
|
|
|
| TestPreviewsOptOutStore* opt_out_store = new TestPreviewsOptOutStore();
|
|
|
| std::unique_ptr<PreviewsBlackList> black_list(new PreviewsBlackList(
|
| base::WrapUnique(opt_out_store), base::WrapUnique(test_clock)));
|
|
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::BLACKLIST_DATA_NOT_LOADED,
|
| + black_list->IsLoadedAndAllowed(url, PreviewsType::OFFLINE));
|
| black_list->AddPreviewNavigation(url, opt_out, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| black_list->AddPreviewNavigation(url, opt_out, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::BLACKLIST_DATA_NOT_LOADED,
|
| + black_list->IsLoadedAndAllowed(url, PreviewsType::OFFLINE));
|
| base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(!opt_out,
|
| + EXPECT_EQ(opt_out ? PreviewsEligibilityReason::HOST_BLACKLISTED
|
| + : PreviewsEligibilityReason::ALLOWED,
|
| black_list->IsLoadedAndAllowed(url, PreviewsType::OFFLINE));
|
| black_list->AddPreviewNavigation(url, opt_out, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| black_list->AddPreviewNavigation(url, opt_out, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| EXPECT_EQ(0, opt_out_store->clear_blacklist_count());
|
| black_list->ClearBlackList(
|
| start, test_clock->Now() + base::TimeDelta::FromSeconds(1));
|
| EXPECT_EQ(1, opt_out_store->clear_blacklist_count());
|
| black_list->AddPreviewNavigation(url2, opt_out, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| black_list->AddPreviewNavigation(url2, opt_out, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| base::RunLoop().RunUntilIdle();
|
| EXPECT_EQ(1, opt_out_store->clear_blacklist_count());
|
|
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url, PreviewsType::OFFLINE));
|
| - EXPECT_EQ(!opt_out,
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(opt_out ? PreviewsEligibilityReason::HOST_BLACKLISTED
|
| + : PreviewsEligibilityReason::ALLOWED,
|
| black_list->IsLoadedAndAllowed(url2, PreviewsType::OFFLINE));
|
| }
|
|
|
| variations::testing::ClearAllVariationParams();
|
| }
|
|
|
| TEST_F(PreviewsBlackListTest, MaxHosts) {
|
| // Test that the black list only stores n hosts, and it stores the correct n
|
| // hosts.
|
| const GURL url_a("http://www.url_a.com");
|
| @@ -435,32 +484,38 @@ TEST_F(PreviewsBlackListTest, MaxHosts) {
|
|
|
| std::unique_ptr<PreviewsBlackList> black_list(
|
| new PreviewsBlackList(nullptr, base::WrapUnique(test_clock)));
|
|
|
| black_list->AddPreviewNavigation(url_a, true, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| black_list->AddPreviewNavigation(url_b, false, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| black_list->AddPreviewNavigation(url_c, false, PreviewsType::OFFLINE);
|
| // url_a should stay in the map, since it has an opt out time.
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_a, PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_c, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::HOST_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(url_a, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_c, PreviewsType::OFFLINE));
|
|
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| black_list->AddPreviewNavigation(url_d, true, PreviewsType::OFFLINE);
|
| test_clock->Advance(base::TimeDelta::FromSeconds(1));
|
| black_list->AddPreviewNavigation(url_e, true, PreviewsType::OFFLINE);
|
| // url_d and url_e should remain in the map, but url_a should be evicted.
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_a, PreviewsType::OFFLINE));
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_d, PreviewsType::OFFLINE));
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_e, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_a, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::HOST_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(url_d, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::HOST_BLACKLISTED,
|
| + black_list->IsLoadedAndAllowed(url_e, PreviewsType::OFFLINE));
|
|
|
| variations::testing::ClearAllVariationParams();
|
| }
|
|
|
| TEST_F(PreviewsBlackListTest, SingleOptOut) {
|
| // Test that when a user opts out of a preview, previews won't be shown until
|
| // |single_opt_out_duration| has elapsed.
|
| const GURL url_a("http://www.url_a.com");
|
| const GURL url_b("http://www.url_b.com");
|
| const GURL url_c("http://www.url_c.com");
|
| @@ -492,36 +547,44 @@ TEST_F(PreviewsBlackListTest, SingleOptOut) {
|
| variations::AssociateVariationParams("ClientSidePreviews", "Enabled",
|
| params) &&
|
| base::FieldTrialList::CreateFieldTrial("ClientSidePreviews", "Enabled"));
|
|
|
| base::SimpleTestClock* test_clock = new base::SimpleTestClock();
|
|
|
| std::unique_ptr<PreviewsBlackList> black_list(
|
| new PreviewsBlackList(nullptr, base::WrapUnique(test_clock)));
|
|
|
| black_list->AddPreviewNavigation(url_a, false, PreviewsType::OFFLINE);
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_a, PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_c, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_a, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_c, PreviewsType::OFFLINE));
|
|
|
| test_clock->Advance(
|
| base::TimeDelta::FromSeconds(single_opt_out_duration + 1));
|
|
|
| black_list->AddPreviewNavigation(url_b, true, PreviewsType::OFFLINE);
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_c, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::USER_RECENTLY_OPTED_OUT,
|
| + black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::USER_RECENTLY_OPTED_OUT,
|
| + black_list->IsLoadedAndAllowed(url_c, PreviewsType::OFFLINE));
|
|
|
| test_clock->Advance(
|
| base::TimeDelta::FromSeconds(single_opt_out_duration - 1));
|
|
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| - EXPECT_FALSE(black_list->IsLoadedAndAllowed(url_c, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::USER_RECENTLY_OPTED_OUT,
|
| + black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::USER_RECENTLY_OPTED_OUT,
|
| + black_list->IsLoadedAndAllowed(url_c, PreviewsType::OFFLINE));
|
|
|
| test_clock->Advance(
|
| base::TimeDelta::FromSeconds(single_opt_out_duration + 1));
|
|
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| - EXPECT_TRUE(black_list->IsLoadedAndAllowed(url_c, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_b, PreviewsType::OFFLINE));
|
| + EXPECT_EQ(PreviewsEligibilityReason::ALLOWED,
|
| + black_list->IsLoadedAndAllowed(url_c, PreviewsType::OFFLINE));
|
|
|
| variations::testing::ClearAllVariationParams();
|
| }
|
|
|
| } // namespace previews
|
|
|