Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Side by Side Diff: chrome/browser/engagement/site_engagement_service_unittest.cc

Issue 2535483002: Plumb site engagement to the renderer process. (Closed)
Patch Set: Address comments Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698