Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/engagement/site_engagement_service.h" | 5 #include "chrome/browser/engagement/site_engagement_service.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 475 EXPECT_DOUBLE_EQ(5.0, service->GetScore(url2)); | 475 EXPECT_DOUBLE_EQ(5.0, service->GetScore(url2)); |
| 476 | 476 |
| 477 service->AddPoints(url1, 1.0); | 477 service->AddPoints(url1, 1.0); |
| 478 clock->SetNow(GetReferenceTime() + base::TimeDelta::FromDays(10)); | 478 clock->SetNow(GetReferenceTime() + base::TimeDelta::FromDays(10)); |
| 479 EXPECT_DOUBLE_EQ(1.0, service->GetScore(url1)); | 479 EXPECT_DOUBLE_EQ(1.0, service->GetScore(url1)); |
| 480 EXPECT_DOUBLE_EQ(5.0, service->GetScore(url2)); | 480 EXPECT_DOUBLE_EQ(5.0, service->GetScore(url2)); |
| 481 | 481 |
| 482 clock->SetNow(GetReferenceTime() + base::TimeDelta::FromDays(11)); | 482 clock->SetNow(GetReferenceTime() + base::TimeDelta::FromDays(11)); |
| 483 EXPECT_DOUBLE_EQ(1.0, service->GetScore(url1)); | 483 EXPECT_DOUBLE_EQ(1.0, service->GetScore(url1)); |
| 484 EXPECT_DOUBLE_EQ(0.0, service->GetScore(url2)); | 484 EXPECT_DOUBLE_EQ(0.0, service->GetScore(url2)); |
| 485 | |
| 486 service->Shutdown(); | |
|
benwells
2017/03/20 03:15:27
This is unfortunate. Why do all the tests need to
sense (YandexTeam)
2017/03/20 04:01:56
Well, because of how KeyedService works, you shoul
benwells
2017/03/20 04:14:50
OK, that makes sense.
I think moving the Shutdown
| |
| 485 } | 487 } |
| 486 | 488 |
| 487 TEST_F(SiteEngagementServiceTest, NotificationPermission) { | 489 TEST_F(SiteEngagementServiceTest, NotificationPermission) { |
| 488 base::SimpleTestClock* clock = new base::SimpleTestClock(); | 490 base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| 489 std::unique_ptr<SiteEngagementService> service( | 491 std::unique_ptr<SiteEngagementService> service( |
| 490 new SiteEngagementService(profile(), base::WrapUnique(clock))); | 492 new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| 491 | 493 |
| 492 GURL url1("https://www.google.com/"); | 494 GURL url1("https://www.google.com/"); |
| 493 GURL url2("http://www.google.com/"); | 495 GURL url2("http://www.google.com/"); |
| 494 GURL url3("https://drive.google.com/"); | 496 GURL url3("https://drive.google.com/"); |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 520 service->AddPoints(url1, 1.0); | 522 service->AddPoints(url1, 1.0); |
| 521 service->AddPoints(url2, 3.0); | 523 service->AddPoints(url2, 3.0); |
| 522 EXPECT_EQ(6, service->GetScore(url1)); | 524 EXPECT_EQ(6, service->GetScore(url1)); |
| 523 EXPECT_EQ(3, service->GetScore(url2)); | 525 EXPECT_EQ(3, service->GetScore(url2)); |
| 524 | 526 |
| 525 settings_map->SetContentSettingDefaultScope( | 527 settings_map->SetContentSettingDefaultScope( |
| 526 url1, url1, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string(), | 528 url1, url1, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string(), |
| 527 CONTENT_SETTING_BLOCK); | 529 CONTENT_SETTING_BLOCK); |
| 528 | 530 |
| 529 EXPECT_EQ(1, service->GetScore(url1)); | 531 EXPECT_EQ(1, service->GetScore(url1)); |
| 532 | |
| 533 service->Shutdown(); | |
| 530 } | 534 } |
| 531 | 535 |
| 532 TEST_F(SiteEngagementServiceTest, CheckHistograms) { | 536 TEST_F(SiteEngagementServiceTest, CheckHistograms) { |
| 533 base::HistogramTester histograms; | 537 base::HistogramTester histograms; |
| 534 | 538 |
| 535 base::SimpleTestClock* clock = new base::SimpleTestClock(); | 539 base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| 536 std::unique_ptr<SiteEngagementService> service( | 540 std::unique_ptr<SiteEngagementService> service( |
| 537 new SiteEngagementService(profile(), base::WrapUnique(clock))); | 541 new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| 538 | 542 |
| 539 base::Time current_day = GetReferenceTime(); | 543 base::Time current_day = GetReferenceTime(); |
| (...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 809 SiteEngagementMetrics::ENGAGEMENT_FIRST_DAILY_ENGAGEMENT, 3); | 813 SiteEngagementMetrics::ENGAGEMENT_FIRST_DAILY_ENGAGEMENT, 3); |
| 810 | 814 |
| 811 for (const std::string& histogram_name : engagement_bucket_histogram_names) | 815 for (const std::string& histogram_name : engagement_bucket_histogram_names) |
| 812 histograms.ExpectTotalCount(histogram_name, 3); | 816 histograms.ExpectTotalCount(histogram_name, 3); |
| 813 | 817 |
| 814 histograms.ExpectBucketCount(engagement_bucket_histogram_names[0], 100, 1); | 818 histograms.ExpectBucketCount(engagement_bucket_histogram_names[0], 100, 1); |
| 815 histograms.ExpectBucketCount(engagement_bucket_histogram_names[0], 33, 1); | 819 histograms.ExpectBucketCount(engagement_bucket_histogram_names[0], 33, 1); |
| 816 histograms.ExpectBucketCount(engagement_bucket_histogram_names[0], 66, 1); | 820 histograms.ExpectBucketCount(engagement_bucket_histogram_names[0], 66, 1); |
| 817 histograms.ExpectBucketCount(engagement_bucket_histogram_names[1], 33, 1); | 821 histograms.ExpectBucketCount(engagement_bucket_histogram_names[1], 33, 1); |
| 818 histograms.ExpectBucketCount(engagement_bucket_histogram_names[1], 66, 1); | 822 histograms.ExpectBucketCount(engagement_bucket_histogram_names[1], 66, 1); |
| 823 | |
| 824 service->Shutdown(); | |
| 819 } | 825 } |
| 820 | 826 |
| 821 // Expect that sites that have reached zero engagement are cleaned up. Expect | 827 // Expect that sites that have reached zero engagement are cleaned up. Expect |
| 822 // engagement times to be reset if too much time has passed since the last | 828 // engagement times to be reset if too much time has passed since the last |
| 823 // engagement. | 829 // engagement. |
| 824 TEST_F(SiteEngagementServiceTest, CleanupEngagementScores) { | 830 TEST_F(SiteEngagementServiceTest, CleanupEngagementScores) { |
| 825 base::SimpleTestClock* clock = new base::SimpleTestClock(); | 831 base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| 826 std::unique_ptr<SiteEngagementService> service( | 832 std::unique_ptr<SiteEngagementService> service( |
| 827 new SiteEngagementService(profile(), base::WrapUnique(clock))); | 833 new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| 828 | 834 |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1028 EXPECT_EQ(clock->Now() - decay_period, service->GetLastEngagementTime()); | 1034 EXPECT_EQ(clock->Now() - decay_period, service->GetLastEngagementTime()); |
| 1029 | 1035 |
| 1030 service->CleanupEngagementScores(false); | 1036 service->CleanupEngagementScores(false); |
| 1031 ASSERT_FALSE(service->IsLastEngagementStale()); | 1037 ASSERT_FALSE(service->IsLastEngagementStale()); |
| 1032 | 1038 |
| 1033 score_map = service->GetScoreMap(); | 1039 score_map = service->GetScoreMap(); |
| 1034 EXPECT_EQ(0u, score_map.size()); | 1040 EXPECT_EQ(0u, score_map.size()); |
| 1035 EXPECT_EQ(0, service->GetScore(url1)); | 1041 EXPECT_EQ(0, service->GetScore(url1)); |
| 1036 EXPECT_EQ(clock->Now() - decay_period, service->GetLastEngagementTime()); | 1042 EXPECT_EQ(clock->Now() - decay_period, service->GetLastEngagementTime()); |
| 1037 } | 1043 } |
| 1044 | |
| 1045 service->Shutdown(); | |
| 1038 } | 1046 } |
| 1039 | 1047 |
| 1040 TEST_F(SiteEngagementServiceTest, CleanupEngagementScoresProportional) { | 1048 TEST_F(SiteEngagementServiceTest, CleanupEngagementScoresProportional) { |
| 1041 SetParamValue(SiteEngagementScore::DECAY_PROPORTION, 0.5); | 1049 SetParamValue(SiteEngagementScore::DECAY_PROPORTION, 0.5); |
| 1042 SetParamValue(SiteEngagementScore::DECAY_POINTS, 0); | 1050 SetParamValue(SiteEngagementScore::DECAY_POINTS, 0); |
| 1043 SetParamValue(SiteEngagementScore::SCORE_CLEANUP_THRESHOLD, 0.5); | 1051 SetParamValue(SiteEngagementScore::SCORE_CLEANUP_THRESHOLD, 0.5); |
| 1044 | 1052 |
| 1045 base::SimpleTestClock* clock = new base::SimpleTestClock(); | 1053 base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| 1046 std::unique_ptr<SiteEngagementService> service( | 1054 std::unique_ptr<SiteEngagementService> service( |
| 1047 new SiteEngagementService(profile(), base::WrapUnique(clock))); | 1055 new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 1060 std::map<GURL, double> score_map = service->GetScoreMap(); | 1068 std::map<GURL, double> score_map = service->GetScoreMap(); |
| 1061 EXPECT_EQ(2u, score_map.size()); | 1069 EXPECT_EQ(2u, score_map.size()); |
| 1062 AssertInRange(0.5, service->GetScore(url1)); | 1070 AssertInRange(0.5, service->GetScore(url1)); |
| 1063 AssertInRange(0.6, service->GetScore(url2)); | 1071 AssertInRange(0.6, service->GetScore(url2)); |
| 1064 | 1072 |
| 1065 service->CleanupEngagementScores(false); | 1073 service->CleanupEngagementScores(false); |
| 1066 score_map = service->GetScoreMap(); | 1074 score_map = service->GetScoreMap(); |
| 1067 EXPECT_EQ(1u, score_map.size()); | 1075 EXPECT_EQ(1u, score_map.size()); |
| 1068 EXPECT_EQ(0, service->GetScore(url1)); | 1076 EXPECT_EQ(0, service->GetScore(url1)); |
| 1069 AssertInRange(0.6, service->GetScore(url2)); | 1077 AssertInRange(0.6, service->GetScore(url2)); |
| 1078 | |
| 1079 service->Shutdown(); | |
| 1070 } | 1080 } |
| 1071 | 1081 |
| 1072 TEST_F(SiteEngagementServiceTest, NavigationAccumulation) { | 1082 TEST_F(SiteEngagementServiceTest, NavigationAccumulation) { |
| 1073 GURL url("https://www.google.com/"); | 1083 GURL url("https://www.google.com/"); |
| 1074 | 1084 |
| 1075 SiteEngagementService* service = SiteEngagementService::Get(profile()); | 1085 SiteEngagementService* service = SiteEngagementService::Get(profile()); |
| 1076 ASSERT_TRUE(service); | 1086 ASSERT_TRUE(service); |
| 1077 | 1087 |
| 1078 // Create the helper manually since it isn't present when a tab isn't created. | 1088 // Create the helper manually since it isn't present when a tab isn't created. |
| 1079 SiteEngagementService::Helper::CreateForWebContents(web_contents()); | 1089 SiteEngagementService::Helper::CreateForWebContents(web_contents()); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1113 EXPECT_FALSE(service->IsBootstrapped()); | 1123 EXPECT_FALSE(service->IsBootstrapped()); |
| 1114 | 1124 |
| 1115 service->AddPoints(url1, 5.0); | 1125 service->AddPoints(url1, 5.0); |
| 1116 EXPECT_FALSE(service->IsBootstrapped()); | 1126 EXPECT_FALSE(service->IsBootstrapped()); |
| 1117 | 1127 |
| 1118 service->AddPoints(url2, 5.0); | 1128 service->AddPoints(url2, 5.0); |
| 1119 EXPECT_TRUE(service->IsBootstrapped()); | 1129 EXPECT_TRUE(service->IsBootstrapped()); |
| 1120 | 1130 |
| 1121 clock->SetNow(current_day + base::TimeDelta::FromDays(8)); | 1131 clock->SetNow(current_day + base::TimeDelta::FromDays(8)); |
| 1122 EXPECT_FALSE(service->IsBootstrapped()); | 1132 EXPECT_FALSE(service->IsBootstrapped()); |
| 1133 | |
| 1134 service->Shutdown(); | |
| 1123 } | 1135 } |
| 1124 | 1136 |
| 1125 TEST_F(SiteEngagementServiceTest, CleanupOriginsOnHistoryDeletion) { | 1137 TEST_F(SiteEngagementServiceTest, CleanupOriginsOnHistoryDeletion) { |
| 1126 // Enable proportional decay to ensure that the undecay that happens to | 1138 // Enable proportional decay to ensure that the undecay that happens to |
| 1127 // balance out history deletion also accounts for the proportional decay. | 1139 // balance out history deletion also accounts for the proportional decay. |
| 1128 SetParamValue(SiteEngagementScore::DECAY_PROPORTION, 0.5); | 1140 SetParamValue(SiteEngagementScore::DECAY_PROPORTION, 0.5); |
| 1129 | 1141 |
| 1130 base::SimpleTestClock* clock = new base::SimpleTestClock(); | 1142 base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| 1131 std::unique_ptr<SiteEngagementService> engagement( | 1143 std::unique_ptr<SiteEngagementService> engagement( |
| 1132 new SiteEngagementService(profile(), base::WrapUnique(clock))); | 1144 new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1233 &task_tracker); | 1245 &task_tracker); |
| 1234 waiter.Wait(); | 1246 waiter.Wait(); |
| 1235 | 1247 |
| 1236 // origin1 should be removed. origin3 and origin4 remain untouched. | 1248 // origin1 should be removed. origin3 and origin4 remain untouched. |
| 1237 EXPECT_EQ(0, engagement->GetScore(origin1)); | 1249 EXPECT_EQ(0, engagement->GetScore(origin1)); |
| 1238 EXPECT_EQ(0, engagement->GetScore(origin2)); | 1250 EXPECT_EQ(0, engagement->GetScore(origin2)); |
| 1239 AssertInRange(5.0, engagement->GetScore(origin3)); | 1251 AssertInRange(5.0, engagement->GetScore(origin3)); |
| 1240 AssertInRange(2.5, engagement->GetScore(origin4)); | 1252 AssertInRange(2.5, engagement->GetScore(origin4)); |
| 1241 AssertInRange(7.5, engagement->GetTotalEngagementPoints()); | 1253 AssertInRange(7.5, engagement->GetTotalEngagementPoints()); |
| 1242 } | 1254 } |
| 1255 | |
| 1256 engagement->Shutdown(); | |
| 1243 } | 1257 } |
| 1244 | 1258 |
| 1245 TEST_F(SiteEngagementServiceTest, EngagementLevel) { | 1259 TEST_F(SiteEngagementServiceTest, EngagementLevel) { |
| 1246 static_assert(blink::mojom::EngagementLevel::NONE != | 1260 static_assert(blink::mojom::EngagementLevel::NONE != |
| 1247 blink::mojom::EngagementLevel::LOW, | 1261 blink::mojom::EngagementLevel::LOW, |
| 1248 "enum values should not be equal"); | 1262 "enum values should not be equal"); |
| 1249 static_assert(blink::mojom::EngagementLevel::LOW != | 1263 static_assert(blink::mojom::EngagementLevel::LOW != |
| 1250 blink::mojom::EngagementLevel::MEDIUM, | 1264 blink::mojom::EngagementLevel::MEDIUM, |
| 1251 "enum values should not be equal"); | 1265 "enum values should not be equal"); |
| 1252 static_assert(blink::mojom::EngagementLevel::MEDIUM != | 1266 static_assert(blink::mojom::EngagementLevel::MEDIUM != |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1375 EXPECT_TRUE(service->IsEngagementAtLeast( | 1389 EXPECT_TRUE(service->IsEngagementAtLeast( |
| 1376 url2, blink::mojom::EngagementLevel::MINIMAL)); | 1390 url2, blink::mojom::EngagementLevel::MINIMAL)); |
| 1377 EXPECT_TRUE( | 1391 EXPECT_TRUE( |
| 1378 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::LOW)); | 1392 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::LOW)); |
| 1379 EXPECT_TRUE(service->IsEngagementAtLeast( | 1393 EXPECT_TRUE(service->IsEngagementAtLeast( |
| 1380 url2, blink::mojom::EngagementLevel::MEDIUM)); | 1394 url2, blink::mojom::EngagementLevel::MEDIUM)); |
| 1381 EXPECT_TRUE( | 1395 EXPECT_TRUE( |
| 1382 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::HIGH)); | 1396 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::HIGH)); |
| 1383 EXPECT_TRUE( | 1397 EXPECT_TRUE( |
| 1384 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::MAX)); | 1398 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::MAX)); |
| 1399 | |
| 1400 service->Shutdown(); | |
| 1385 } | 1401 } |
| 1386 | 1402 |
| 1387 TEST_F(SiteEngagementServiceTest, Observers) { | 1403 TEST_F(SiteEngagementServiceTest, Observers) { |
| 1388 SiteEngagementService* service = SiteEngagementService::Get(profile()); | 1404 SiteEngagementService* service = SiteEngagementService::Get(profile()); |
| 1389 | 1405 |
| 1390 GURL url_score_1("http://www.google.com/maps"); | 1406 GURL url_score_1("http://www.google.com/maps"); |
| 1391 GURL url_score_2("http://www.google.com/drive"); | 1407 GURL url_score_2("http://www.google.com/drive"); |
| 1392 GURL url_score_3("http://www.google.com/"); | 1408 GURL url_score_3("http://www.google.com/"); |
| 1393 GURL url_not_called("https://www.google.com/"); | 1409 GURL url_not_called("https://www.google.com/"); |
| 1394 | 1410 |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1537 histograms.ExpectBucketCount(SiteEngagementMetrics::kScoreDecayedToHistogram, | 1553 histograms.ExpectBucketCount(SiteEngagementMetrics::kScoreDecayedToHistogram, |
| 1538 0, 22); | 1554 0, 22); |
| 1539 | 1555 |
| 1540 // Add more points and ensure no more samples are present. | 1556 // Add more points and ensure no more samples are present. |
| 1541 service->AddPoints(origin1, 0.01); | 1557 service->AddPoints(origin1, 0.01); |
| 1542 service->AddPoints(origin2, 0.01); | 1558 service->AddPoints(origin2, 0.01); |
| 1543 histograms.ExpectTotalCount(SiteEngagementMetrics::kScoreDecayedFromHistogram, | 1559 histograms.ExpectTotalCount(SiteEngagementMetrics::kScoreDecayedFromHistogram, |
| 1544 kMorePeriodsThanNeededToDecayMaxScore + 1); | 1560 kMorePeriodsThanNeededToDecayMaxScore + 1); |
| 1545 histograms.ExpectTotalCount(SiteEngagementMetrics::kScoreDecayedToHistogram, | 1561 histograms.ExpectTotalCount(SiteEngagementMetrics::kScoreDecayedToHistogram, |
| 1546 kMorePeriodsThanNeededToDecayMaxScore + 1); | 1562 kMorePeriodsThanNeededToDecayMaxScore + 1); |
| 1563 | |
| 1564 service->Shutdown(); | |
| 1547 } | 1565 } |
| 1548 | 1566 |
| 1549 TEST_F(SiteEngagementServiceTest, LastEngagementTime) { | 1567 TEST_F(SiteEngagementServiceTest, LastEngagementTime) { |
| 1550 // The last engagement time should start off null in prefs and in the service. | 1568 // The last engagement time should start off null in prefs and in the service. |
| 1551 base::Time last_engagement_time = base::Time::FromInternalValue( | 1569 base::Time last_engagement_time = base::Time::FromInternalValue( |
| 1552 profile()->GetPrefs()->GetInt64(prefs::kSiteEngagementLastUpdateTime)); | 1570 profile()->GetPrefs()->GetInt64(prefs::kSiteEngagementLastUpdateTime)); |
| 1553 | 1571 |
| 1554 ASSERT_TRUE(last_engagement_time.is_null()); | 1572 ASSERT_TRUE(last_engagement_time.is_null()); |
| 1555 | 1573 |
| 1556 base::SimpleTestClock* clock = new base::SimpleTestClock(); | 1574 base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1597 EXPECT_EQ(rebased_time, service->GetLastEngagementTime()); | 1615 EXPECT_EQ(rebased_time, service->GetLastEngagementTime()); |
| 1598 | 1616 |
| 1599 // Add some more points and ensure the value is persisted. | 1617 // Add some more points and ensure the value is persisted. |
| 1600 service->AddPoints(origin, 3); | 1618 service->AddPoints(origin, 3); |
| 1601 | 1619 |
| 1602 last_engagement_time = base::Time::FromInternalValue( | 1620 last_engagement_time = base::Time::FromInternalValue( |
| 1603 profile()->GetPrefs()->GetInt64(prefs::kSiteEngagementLastUpdateTime)); | 1621 profile()->GetPrefs()->GetInt64(prefs::kSiteEngagementLastUpdateTime)); |
| 1604 | 1622 |
| 1605 EXPECT_EQ(later_in_day, last_engagement_time); | 1623 EXPECT_EQ(later_in_day, last_engagement_time); |
| 1606 EXPECT_EQ(later_in_day, service->GetLastEngagementTime()); | 1624 EXPECT_EQ(later_in_day, service->GetLastEngagementTime()); |
| 1625 | |
| 1626 service->Shutdown(); | |
| 1607 } | 1627 } |
| 1608 | 1628 |
| 1609 TEST_F(SiteEngagementServiceTest, CleanupMovesScoreBackToNow) { | 1629 TEST_F(SiteEngagementServiceTest, CleanupMovesScoreBackToNow) { |
| 1610 base::SimpleTestClock* clock = new base::SimpleTestClock(); | 1630 base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| 1611 std::unique_ptr<SiteEngagementService> service( | 1631 std::unique_ptr<SiteEngagementService> service( |
| 1612 new SiteEngagementService(profile(), base::WrapUnique(clock))); | 1632 new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| 1613 base::Time last_engagement_time; | 1633 base::Time last_engagement_time; |
| 1614 | 1634 |
| 1615 base::Time current_day = GetReferenceTime(); | 1635 base::Time current_day = GetReferenceTime(); |
| 1616 clock->SetNow(current_day); | 1636 clock->SetNow(current_day); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1667 // appropriately, while origin1 is decayed correctly (once). | 1687 // appropriately, while origin1 is decayed correctly (once). |
| 1668 clock->SetNow(origin1_last_updated + less_than_decay_period + | 1688 clock->SetNow(origin1_last_updated + less_than_decay_period + |
| 1669 base::TimeDelta::FromSeconds(30)); | 1689 base::TimeDelta::FromSeconds(30)); |
| 1670 service->AddPoints(origin1, 1); | 1690 service->AddPoints(origin1, 1); |
| 1671 | 1691 |
| 1672 EXPECT_EQ(clock->Now(), | 1692 EXPECT_EQ(clock->Now(), |
| 1673 service->CreateEngagementScore(origin).last_engagement_time()); | 1693 service->CreateEngagementScore(origin).last_engagement_time()); |
| 1674 EXPECT_EQ(clock->Now(), service->GetLastEngagementTime()); | 1694 EXPECT_EQ(clock->Now(), service->GetLastEngagementTime()); |
| 1675 EXPECT_EQ(12, service->GetScore(origin)); | 1695 EXPECT_EQ(12, service->GetScore(origin)); |
| 1676 EXPECT_EQ(1, service->GetScore(origin1)); | 1696 EXPECT_EQ(1, service->GetScore(origin1)); |
| 1697 | |
| 1698 service->Shutdown(); | |
| 1677 } | 1699 } |
| 1678 | 1700 |
| 1679 TEST_F(SiteEngagementServiceTest, CleanupMovesScoreBackToRebase) { | 1701 TEST_F(SiteEngagementServiceTest, CleanupMovesScoreBackToRebase) { |
| 1680 base::SimpleTestClock* clock = new base::SimpleTestClock(); | 1702 base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| 1681 std::unique_ptr<SiteEngagementService> service( | 1703 std::unique_ptr<SiteEngagementService> service( |
| 1682 new SiteEngagementService(profile(), base::WrapUnique(clock))); | 1704 new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| 1683 base::Time last_engagement_time; | 1705 base::Time last_engagement_time; |
| 1684 | 1706 |
| 1685 base::Time current_day = GetReferenceTime(); | 1707 base::Time current_day = GetReferenceTime(); |
| 1686 clock->SetNow(current_day); | 1708 clock->SetNow(current_day); |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 1710 base::Time rebased_time = clock->Now() - service->GetMaxDecayPeriod(); | 1732 base::Time rebased_time = clock->Now() - service->GetMaxDecayPeriod(); |
| 1711 service->CleanupEngagementScores(true); | 1733 service->CleanupEngagementScores(true); |
| 1712 | 1734 |
| 1713 // Ensure that the original origin has its last engagement time updated to | 1735 // Ensure that the original origin has its last engagement time updated to |
| 1714 // rebase_time, and it has decayed when we access the score. | 1736 // rebase_time, and it has decayed when we access the score. |
| 1715 EXPECT_EQ(rebased_time, | 1737 EXPECT_EQ(rebased_time, |
| 1716 service->CreateEngagementScore(origin).last_engagement_time()); | 1738 service->CreateEngagementScore(origin).last_engagement_time()); |
| 1717 EXPECT_EQ(rebased_time, service->GetLastEngagementTime()); | 1739 EXPECT_EQ(rebased_time, service->GetLastEngagementTime()); |
| 1718 EXPECT_EQ(5, service->GetScore(origin)); | 1740 EXPECT_EQ(5, service->GetScore(origin)); |
| 1719 EXPECT_EQ(0, service->GetScore(origin1)); | 1741 EXPECT_EQ(0, service->GetScore(origin1)); |
| 1742 | |
| 1743 service->Shutdown(); | |
| 1720 } | 1744 } |
| 1721 | 1745 |
| 1722 TEST_F(SiteEngagementServiceTest, IncognitoEngagementService) { | 1746 TEST_F(SiteEngagementServiceTest, IncognitoEngagementService) { |
| 1723 SiteEngagementService* service = SiteEngagementService::Get(profile()); | 1747 SiteEngagementService* service = SiteEngagementService::Get(profile()); |
| 1724 ASSERT_TRUE(service); | 1748 ASSERT_TRUE(service); |
| 1725 | 1749 |
| 1726 GURL url1("http://www.google.com/"); | 1750 GURL url1("http://www.google.com/"); |
| 1727 GURL url2("https://www.google.com/"); | 1751 GURL url2("https://www.google.com/"); |
| 1728 GURL url3("https://drive.google.com/"); | 1752 GURL url3("https://drive.google.com/"); |
| 1729 GURL url4("https://maps.google.com/"); | 1753 GURL url4("https://maps.google.com/"); |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1809 | 1833 |
| 1810 EXPECT_EQ(3, CheckScoreFromSettingsOnThread(content::BrowserThread::IO, | 1834 EXPECT_EQ(3, CheckScoreFromSettingsOnThread(content::BrowserThread::IO, |
| 1811 settings_map, url1)); | 1835 settings_map, url1)); |
| 1812 EXPECT_EQ(3, CheckScoreFromSettingsOnThread(content::BrowserThread::FILE, | 1836 EXPECT_EQ(3, CheckScoreFromSettingsOnThread(content::BrowserThread::FILE, |
| 1813 settings_map, url2)); | 1837 settings_map, url2)); |
| 1814 EXPECT_EQ(4, CheckScoreFromSettingsOnThread(content::BrowserThread::FILE, | 1838 EXPECT_EQ(4, CheckScoreFromSettingsOnThread(content::BrowserThread::FILE, |
| 1815 incognito_settings_map, url1)); | 1839 incognito_settings_map, url1)); |
| 1816 EXPECT_EQ(3, CheckScoreFromSettingsOnThread(content::BrowserThread::IO, | 1840 EXPECT_EQ(3, CheckScoreFromSettingsOnThread(content::BrowserThread::IO, |
| 1817 incognito_settings_map, url2)); | 1841 incognito_settings_map, url2)); |
| 1818 } | 1842 } |
| OLD | NEW |