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 1178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1189 // origin1 should be removed. origin3 and origin4 remain untouched. | 1189 // origin1 should be removed. origin3 and origin4 remain untouched. |
1190 EXPECT_EQ(0, engagement->GetScore(origin1)); | 1190 EXPECT_EQ(0, engagement->GetScore(origin1)); |
1191 EXPECT_EQ(0, engagement->GetScore(origin2)); | 1191 EXPECT_EQ(0, engagement->GetScore(origin2)); |
1192 AssertInRange(5.0, engagement->GetScore(origin3)); | 1192 AssertInRange(5.0, engagement->GetScore(origin3)); |
1193 AssertInRange(2.5, engagement->GetScore(origin4)); | 1193 AssertInRange(2.5, engagement->GetScore(origin4)); |
1194 AssertInRange(7.5, engagement->GetTotalEngagementPoints()); | 1194 AssertInRange(7.5, engagement->GetTotalEngagementPoints()); |
1195 } | 1195 } |
1196 } | 1196 } |
1197 | 1197 |
1198 TEST_F(SiteEngagementServiceTest, EngagementLevel) { | 1198 TEST_F(SiteEngagementServiceTest, EngagementLevel) { |
1199 static_assert(SiteEngagementService::ENGAGEMENT_LEVEL_NONE != | 1199 static_assert(blink::mojom::EngagementLevel::NONE != |
1200 SiteEngagementService::ENGAGEMENT_LEVEL_LOW, | 1200 blink::mojom::EngagementLevel::LOW, |
1201 "enum values should not be equal"); | 1201 "enum values should not be equal"); |
1202 static_assert(SiteEngagementService::ENGAGEMENT_LEVEL_LOW != | 1202 static_assert(blink::mojom::EngagementLevel::LOW != |
1203 SiteEngagementService::ENGAGEMENT_LEVEL_MEDIUM, | 1203 blink::mojom::EngagementLevel::MEDIUM, |
1204 "enum values should not be equal"); | 1204 "enum values should not be equal"); |
1205 static_assert(SiteEngagementService::ENGAGEMENT_LEVEL_MEDIUM != | 1205 static_assert(blink::mojom::EngagementLevel::MEDIUM != |
1206 SiteEngagementService::ENGAGEMENT_LEVEL_HIGH, | 1206 blink::mojom::EngagementLevel::HIGH, |
1207 "enum values should not be equal"); | 1207 "enum values should not be equal"); |
1208 static_assert(SiteEngagementService::ENGAGEMENT_LEVEL_HIGH != | 1208 static_assert(blink::mojom::EngagementLevel::HIGH != |
1209 SiteEngagementService::ENGAGEMENT_LEVEL_MAX, | 1209 blink::mojom::EngagementLevel::MAX, |
1210 "enum values should not be equal"); | 1210 "enum values should not be equal"); |
1211 | 1211 |
1212 base::SimpleTestClock* clock = new base::SimpleTestClock(); | 1212 base::SimpleTestClock* clock = new base::SimpleTestClock(); |
1213 std::unique_ptr<SiteEngagementService> service( | 1213 std::unique_ptr<SiteEngagementService> service( |
1214 new SiteEngagementService(profile(), base::WrapUnique(clock))); | 1214 new SiteEngagementService(profile(), base::WrapUnique(clock))); |
1215 | 1215 |
1216 base::Time current_day = GetReferenceTime(); | 1216 base::Time current_day = GetReferenceTime(); |
1217 clock->SetNow(current_day); | 1217 clock->SetNow(current_day); |
1218 | 1218 |
1219 GURL url1("https://www.google.com/"); | 1219 GURL url1("https://www.google.com/"); |
1220 GURL url2("http://www.google.com/"); | 1220 GURL url2("http://www.google.com/"); |
1221 | 1221 |
1222 EXPECT_EQ(SiteEngagementService::ENGAGEMENT_LEVEL_NONE, | 1222 EXPECT_EQ(blink::mojom::EngagementLevel::NONE, |
1223 service->GetEngagementLevel(url1)); | 1223 service->GetEngagementLevel(url1)); |
1224 EXPECT_EQ(SiteEngagementService::ENGAGEMENT_LEVEL_NONE, | 1224 EXPECT_EQ(blink::mojom::EngagementLevel::NONE, |
1225 service->GetEngagementLevel(url2)); | 1225 service->GetEngagementLevel(url2)); |
| 1226 EXPECT_TRUE( |
| 1227 service->IsEngagementAtLeast(url1, blink::mojom::EngagementLevel::NONE)); |
| 1228 EXPECT_FALSE(service->IsEngagementAtLeast( |
| 1229 url1, blink::mojom::EngagementLevel::MINIMAL)); |
| 1230 EXPECT_FALSE( |
| 1231 service->IsEngagementAtLeast(url1, blink::mojom::EngagementLevel::LOW)); |
| 1232 EXPECT_FALSE(service->IsEngagementAtLeast( |
| 1233 url1, blink::mojom::EngagementLevel::MEDIUM)); |
| 1234 EXPECT_FALSE( |
| 1235 service->IsEngagementAtLeast(url1, blink::mojom::EngagementLevel::HIGH)); |
| 1236 EXPECT_FALSE( |
| 1237 service->IsEngagementAtLeast(url1, blink::mojom::EngagementLevel::MAX)); |
| 1238 |
| 1239 // Bring url2 to MINIMAL engagement. |
| 1240 service->AddPoints(url2, 0.5); |
| 1241 EXPECT_EQ(blink::mojom::EngagementLevel::NONE, |
| 1242 service->GetEngagementLevel(url1)); |
| 1243 EXPECT_EQ(blink::mojom::EngagementLevel::MINIMAL, |
| 1244 service->GetEngagementLevel(url2)); |
| 1245 EXPECT_TRUE( |
| 1246 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::NONE)); |
1226 EXPECT_TRUE(service->IsEngagementAtLeast( | 1247 EXPECT_TRUE(service->IsEngagementAtLeast( |
1227 url1, SiteEngagementService::ENGAGEMENT_LEVEL_NONE)); | 1248 url2, blink::mojom::EngagementLevel::MINIMAL)); |
| 1249 EXPECT_FALSE( |
| 1250 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::LOW)); |
1228 EXPECT_FALSE(service->IsEngagementAtLeast( | 1251 EXPECT_FALSE(service->IsEngagementAtLeast( |
1229 url1, SiteEngagementService::ENGAGEMENT_LEVEL_LOW)); | 1252 url2, blink::mojom::EngagementLevel::MEDIUM)); |
1230 EXPECT_FALSE(service->IsEngagementAtLeast( | 1253 EXPECT_FALSE( |
1231 url1, SiteEngagementService::ENGAGEMENT_LEVEL_MEDIUM)); | 1254 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::HIGH)); |
1232 EXPECT_FALSE(service->IsEngagementAtLeast( | 1255 EXPECT_FALSE( |
1233 url1, SiteEngagementService::ENGAGEMENT_LEVEL_HIGH)); | 1256 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::MAX)); |
1234 EXPECT_FALSE(service->IsEngagementAtLeast( | |
1235 url1, SiteEngagementService::ENGAGEMENT_LEVEL_MAX)); | |
1236 | 1257 |
1237 // Bring url1 to LOW engagement. | 1258 // Bring url1 to LOW engagement. |
1238 service->AddPoints(url1, 1.0); | 1259 service->AddPoints(url1, 1.0); |
1239 EXPECT_EQ(SiteEngagementService::ENGAGEMENT_LEVEL_LOW, | 1260 EXPECT_EQ(blink::mojom::EngagementLevel::LOW, |
1240 service->GetEngagementLevel(url1)); | 1261 service->GetEngagementLevel(url1)); |
1241 EXPECT_EQ(SiteEngagementService::ENGAGEMENT_LEVEL_NONE, | 1262 EXPECT_EQ(blink::mojom::EngagementLevel::MINIMAL, |
1242 service->GetEngagementLevel(url2)); | 1263 service->GetEngagementLevel(url2)); |
| 1264 EXPECT_TRUE( |
| 1265 service->IsEngagementAtLeast(url1, blink::mojom::EngagementLevel::NONE)); |
1243 EXPECT_TRUE(service->IsEngagementAtLeast( | 1266 EXPECT_TRUE(service->IsEngagementAtLeast( |
1244 url1, SiteEngagementService::ENGAGEMENT_LEVEL_NONE)); | 1267 url1, blink::mojom::EngagementLevel::MINIMAL)); |
1245 EXPECT_TRUE(service->IsEngagementAtLeast( | 1268 EXPECT_TRUE( |
1246 url1, SiteEngagementService::ENGAGEMENT_LEVEL_LOW)); | 1269 service->IsEngagementAtLeast(url1, blink::mojom::EngagementLevel::LOW)); |
1247 EXPECT_FALSE(service->IsEngagementAtLeast( | 1270 EXPECT_FALSE(service->IsEngagementAtLeast( |
1248 url1, SiteEngagementService::ENGAGEMENT_LEVEL_MEDIUM)); | 1271 url1, blink::mojom::EngagementLevel::MEDIUM)); |
1249 EXPECT_FALSE(service->IsEngagementAtLeast( | 1272 EXPECT_FALSE( |
1250 url1, SiteEngagementService::ENGAGEMENT_LEVEL_HIGH)); | 1273 service->IsEngagementAtLeast(url1, blink::mojom::EngagementLevel::HIGH)); |
1251 EXPECT_FALSE(service->IsEngagementAtLeast( | 1274 EXPECT_FALSE( |
1252 url1, SiteEngagementService::ENGAGEMENT_LEVEL_MAX)); | 1275 service->IsEngagementAtLeast(url1, blink::mojom::EngagementLevel::MAX)); |
1253 | 1276 |
1254 // Bring url2 to MEDIUM engagement. | 1277 // Bring url2 to MEDIUM engagement. |
1255 service->AddPoints(url2, 5.0); | 1278 service->AddPoints(url2, 4.5); |
1256 EXPECT_EQ(SiteEngagementService::ENGAGEMENT_LEVEL_LOW, | 1279 EXPECT_EQ(blink::mojom::EngagementLevel::LOW, |
1257 service->GetEngagementLevel(url1)); | 1280 service->GetEngagementLevel(url1)); |
1258 EXPECT_EQ(SiteEngagementService::ENGAGEMENT_LEVEL_MEDIUM, | 1281 EXPECT_EQ(blink::mojom::EngagementLevel::MEDIUM, |
1259 service->GetEngagementLevel(url2)); | 1282 service->GetEngagementLevel(url2)); |
| 1283 EXPECT_TRUE( |
| 1284 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::NONE)); |
1260 EXPECT_TRUE(service->IsEngagementAtLeast( | 1285 EXPECT_TRUE(service->IsEngagementAtLeast( |
1261 url2, SiteEngagementService::ENGAGEMENT_LEVEL_NONE)); | 1286 url2, blink::mojom::EngagementLevel::MINIMAL)); |
| 1287 EXPECT_TRUE( |
| 1288 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::LOW)); |
1262 EXPECT_TRUE(service->IsEngagementAtLeast( | 1289 EXPECT_TRUE(service->IsEngagementAtLeast( |
1263 url2, SiteEngagementService::ENGAGEMENT_LEVEL_LOW)); | 1290 url2, blink::mojom::EngagementLevel::MEDIUM)); |
1264 EXPECT_TRUE(service->IsEngagementAtLeast( | 1291 EXPECT_FALSE( |
1265 url2, SiteEngagementService::ENGAGEMENT_LEVEL_MEDIUM)); | 1292 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::HIGH)); |
1266 EXPECT_FALSE(service->IsEngagementAtLeast( | 1293 EXPECT_FALSE( |
1267 url2, SiteEngagementService::ENGAGEMENT_LEVEL_HIGH)); | 1294 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::MAX)); |
1268 EXPECT_FALSE(service->IsEngagementAtLeast( | |
1269 url2, SiteEngagementService::ENGAGEMENT_LEVEL_MAX)); | |
1270 | 1295 |
1271 // Bring url2 to HIGH engagement. | 1296 // Bring url2 to HIGH engagement. |
1272 for (int i = 0; i < 9; ++i) { | 1297 for (int i = 0; i < 9; ++i) { |
1273 current_day += base::TimeDelta::FromDays(1); | 1298 current_day += base::TimeDelta::FromDays(1); |
1274 clock->SetNow(current_day); | 1299 clock->SetNow(current_day); |
1275 service->AddPoints(url2, 5.0); | 1300 service->AddPoints(url2, 5.0); |
1276 } | 1301 } |
1277 EXPECT_EQ(SiteEngagementService::ENGAGEMENT_LEVEL_HIGH, | 1302 EXPECT_EQ(blink::mojom::EngagementLevel::HIGH, |
1278 service->GetEngagementLevel(url2)); | 1303 service->GetEngagementLevel(url2)); |
1279 | 1304 |
| 1305 EXPECT_TRUE( |
| 1306 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::NONE)); |
1280 EXPECT_TRUE(service->IsEngagementAtLeast( | 1307 EXPECT_TRUE(service->IsEngagementAtLeast( |
1281 url2, SiteEngagementService::ENGAGEMENT_LEVEL_NONE)); | 1308 url2, blink::mojom::EngagementLevel::MINIMAL)); |
| 1309 EXPECT_TRUE( |
| 1310 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::LOW)); |
1282 EXPECT_TRUE(service->IsEngagementAtLeast( | 1311 EXPECT_TRUE(service->IsEngagementAtLeast( |
1283 url2, SiteEngagementService::ENGAGEMENT_LEVEL_LOW)); | 1312 url2, blink::mojom::EngagementLevel::MEDIUM)); |
1284 EXPECT_TRUE(service->IsEngagementAtLeast( | 1313 EXPECT_TRUE( |
1285 url2, SiteEngagementService::ENGAGEMENT_LEVEL_MEDIUM)); | 1314 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::HIGH)); |
1286 EXPECT_TRUE(service->IsEngagementAtLeast( | 1315 EXPECT_FALSE( |
1287 url2, SiteEngagementService::ENGAGEMENT_LEVEL_HIGH)); | 1316 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::MAX)); |
1288 EXPECT_FALSE(service->IsEngagementAtLeast( | |
1289 url2, SiteEngagementService::ENGAGEMENT_LEVEL_MAX)); | |
1290 | 1317 |
1291 // Bring url2 to MAX engagement. | 1318 // Bring url2 to MAX engagement. |
1292 for (int i = 0; i < 10; ++i) { | 1319 for (int i = 0; i < 10; ++i) { |
1293 current_day += base::TimeDelta::FromDays(1); | 1320 current_day += base::TimeDelta::FromDays(1); |
1294 clock->SetNow(current_day); | 1321 clock->SetNow(current_day); |
1295 service->AddPoints(url2, 5.0); | 1322 service->AddPoints(url2, 5.0); |
1296 } | 1323 } |
1297 EXPECT_EQ(SiteEngagementService::ENGAGEMENT_LEVEL_MAX, | 1324 EXPECT_EQ(blink::mojom::EngagementLevel::MAX, |
1298 service->GetEngagementLevel(url2)); | 1325 service->GetEngagementLevel(url2)); |
| 1326 EXPECT_TRUE( |
| 1327 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::NONE)); |
1299 EXPECT_TRUE(service->IsEngagementAtLeast( | 1328 EXPECT_TRUE(service->IsEngagementAtLeast( |
1300 url2, SiteEngagementService::ENGAGEMENT_LEVEL_NONE)); | 1329 url2, blink::mojom::EngagementLevel::MINIMAL)); |
| 1330 EXPECT_TRUE( |
| 1331 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::LOW)); |
1301 EXPECT_TRUE(service->IsEngagementAtLeast( | 1332 EXPECT_TRUE(service->IsEngagementAtLeast( |
1302 url2, SiteEngagementService::ENGAGEMENT_LEVEL_LOW)); | 1333 url2, blink::mojom::EngagementLevel::MEDIUM)); |
1303 EXPECT_TRUE(service->IsEngagementAtLeast( | 1334 EXPECT_TRUE( |
1304 url2, SiteEngagementService::ENGAGEMENT_LEVEL_MEDIUM)); | 1335 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::HIGH)); |
1305 EXPECT_TRUE(service->IsEngagementAtLeast( | 1336 EXPECT_TRUE( |
1306 url2, SiteEngagementService::ENGAGEMENT_LEVEL_HIGH)); | 1337 service->IsEngagementAtLeast(url2, blink::mojom::EngagementLevel::MAX)); |
1307 EXPECT_TRUE(service->IsEngagementAtLeast( | |
1308 url2, SiteEngagementService::ENGAGEMENT_LEVEL_MAX)); | |
1309 } | 1338 } |
1310 | 1339 |
1311 TEST_F(SiteEngagementServiceTest, Observers) { | 1340 TEST_F(SiteEngagementServiceTest, Observers) { |
1312 SiteEngagementService* service = SiteEngagementService::Get(profile()); | 1341 SiteEngagementService* service = SiteEngagementService::Get(profile()); |
1313 | 1342 |
1314 GURL url_score_1("http://www.google.com/maps"); | 1343 GURL url_score_1("http://www.google.com/maps"); |
1315 GURL url_score_2("http://www.google.com/drive"); | 1344 GURL url_score_2("http://www.google.com/drive"); |
1316 GURL url_score_3("http://www.google.com/"); | 1345 GURL url_score_3("http://www.google.com/"); |
1317 GURL url_not_called("https://www.google.com/"); | 1346 GURL url_not_called("https://www.google.com/"); |
1318 | 1347 |
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1733 | 1762 |
1734 EXPECT_EQ(3, CheckScoreFromSettingsOnThread(content::BrowserThread::IO, | 1763 EXPECT_EQ(3, CheckScoreFromSettingsOnThread(content::BrowserThread::IO, |
1735 settings_map, url1)); | 1764 settings_map, url1)); |
1736 EXPECT_EQ(3, CheckScoreFromSettingsOnThread(content::BrowserThread::FILE, | 1765 EXPECT_EQ(3, CheckScoreFromSettingsOnThread(content::BrowserThread::FILE, |
1737 settings_map, url2)); | 1766 settings_map, url2)); |
1738 EXPECT_EQ(4, CheckScoreFromSettingsOnThread(content::BrowserThread::FILE, | 1767 EXPECT_EQ(4, CheckScoreFromSettingsOnThread(content::BrowserThread::FILE, |
1739 incognito_settings_map, url1)); | 1768 incognito_settings_map, url1)); |
1740 EXPECT_EQ(3, CheckScoreFromSettingsOnThread(content::BrowserThread::IO, | 1769 EXPECT_EQ(3, CheckScoreFromSettingsOnThread(content::BrowserThread::IO, |
1741 incognito_settings_map, url2)); | 1770 incognito_settings_map, url2)); |
1742 } | 1771 } |
OLD | NEW |