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 |