OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/android/preferences/important_sites_util.h" | 5 #include <chrome/browser/engagement/important_sites_util.h> |
michaeln
2016/10/05 23:27:45
ditto <>'s and blank line
dmurph
2016/10/06 01:01:59
Done.
| |
6 | |
7 #include <memory> | 6 #include <memory> |
8 #include <utility> | 7 #include <utility> |
9 | 8 |
10 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
11 #include "base/macros.h" | 10 #include "base/macros.h" |
12 #include "base/metrics/histogram_macros.h" | 11 #include "base/metrics/histogram_macros.h" |
13 #include "base/metrics/sample_vector.h" | 12 #include "base/metrics/sample_vector.h" |
14 #include "base/strings/utf_string_conversions.h" | 13 #include "base/strings/utf_string_conversions.h" |
15 #include "base/test/histogram_tester.h" | 14 #include "base/test/histogram_tester.h" |
16 #include "chrome/browser/bookmarks/bookmark_model_factory.h" | 15 #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
251 std::vector<ImportantDomainInfo> important_sites = | 250 std::vector<ImportantDomainInfo> important_sites = |
252 ImportantSitesUtil::GetImportantRegisterableDomains(profile(), | 251 ImportantSitesUtil::GetImportantRegisterableDomains(profile(), |
253 kNumImportantSites); | 252 kNumImportantSites); |
254 std::vector<std::string> expected_sorted_domains = {"google.com"}; | 253 std::vector<std::string> expected_sorted_domains = {"google.com"}; |
255 std::vector<GURL> expected_sorted_origins = {url1}; | 254 std::vector<GURL> expected_sorted_origins = {url1}; |
256 ExpectImportantResultsEq(expected_sorted_domains, expected_sorted_origins, | 255 ExpectImportantResultsEq(expected_sorted_domains, expected_sorted_origins, |
257 important_sites); | 256 important_sites); |
258 ASSERT_EQ(1u, important_sites.size()); | 257 ASSERT_EQ(1u, important_sites.size()); |
259 // Record ignore twice. | 258 // Record ignore twice. |
260 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( | 259 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( |
261 profile(), {}, {}, {"google.com"}, {important_sites[0].reason_bitfield}); | 260 profile(), std::vector<std::string>(), std::vector<int32_t>(), |
261 {"google.com"}, {important_sites[0].reason_bitfield}); | |
262 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( | 262 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( |
263 profile(), {}, {}, {"google.com"}, {important_sites[0].reason_bitfield}); | 263 profile(), std::vector<std::string>(), std::vector<int32_t>(), |
264 {"google.com"}, {important_sites[0].reason_bitfield}); | |
264 | 265 |
265 // Important fetch 2. | 266 // Important fetch 2. |
266 important_sites = ImportantSitesUtil::GetImportantRegisterableDomains( | 267 important_sites = ImportantSitesUtil::GetImportantRegisterableDomains( |
267 profile(), kNumImportantSites); | 268 profile(), kNumImportantSites); |
268 ExpectImportantResultsEq(expected_sorted_domains, expected_sorted_origins, | 269 ExpectImportantResultsEq(expected_sorted_domains, expected_sorted_origins, |
269 important_sites); | 270 important_sites); |
270 // We shouldn't blacklist after first two times. | 271 // We shouldn't blacklist after first two times. |
271 ASSERT_EQ(1u, important_sites.size()); | 272 ASSERT_EQ(1u, important_sites.size()); |
272 | 273 |
273 // Record ignore 3rd time. | 274 // Record ignore 3rd time. |
274 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( | 275 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( |
275 profile(), {}, {}, {"google.com"}, {important_sites[0].reason_bitfield}); | 276 profile(), std::vector<std::string>(), std::vector<int32_t>(), |
277 {"google.com"}, {important_sites[0].reason_bitfield}); | |
276 | 278 |
277 // Important fetch 3. We should be blacklisted now. | 279 // Important fetch 3. We should be blacklisted now. |
278 important_sites = ImportantSitesUtil::GetImportantRegisterableDomains( | 280 important_sites = ImportantSitesUtil::GetImportantRegisterableDomains( |
279 profile(), kNumImportantSites); | 281 profile(), kNumImportantSites); |
280 ASSERT_EQ(0u, important_sites.size()); | 282 ASSERT_EQ(0u, important_sites.size()); |
281 } | 283 } |
282 | 284 |
283 TEST_F(ImportantSitesUtilTest, BlacklistingReset) { | 285 TEST_F(ImportantSitesUtilTest, BlacklistingReset) { |
284 SiteEngagementService* service = SiteEngagementService::Get(profile()); | 286 SiteEngagementService* service = SiteEngagementService::Get(profile()); |
285 ASSERT_TRUE(service); | 287 ASSERT_TRUE(service); |
286 | 288 |
287 GURL url1("http://www.google.com/"); | 289 GURL url1("http://www.google.com/"); |
288 | 290 |
289 // Set a bunch of positive signals. | 291 // Set a bunch of positive signals. |
290 service->ResetScoreForURL(url1, 5); | 292 service->ResetScoreForURL(url1, 5); |
291 AddBookmark(url1); | 293 AddBookmark(url1); |
292 AddContentSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW, | 294 AddContentSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW, |
293 url1); | 295 url1); |
294 | 296 |
295 std::vector<ImportantDomainInfo> important_sites = | 297 std::vector<ImportantDomainInfo> important_sites = |
296 ImportantSitesUtil::GetImportantRegisterableDomains(profile(), | 298 ImportantSitesUtil::GetImportantRegisterableDomains(profile(), |
297 kNumImportantSites); | 299 kNumImportantSites); |
298 | 300 |
299 // Record ignored twice. | 301 // Record ignored twice. |
300 ASSERT_EQ(1u, important_sites.size()); | 302 ASSERT_EQ(1u, important_sites.size()); |
301 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( | 303 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( |
302 profile(), {}, {}, {"google.com"}, {important_sites[0].reason_bitfield}); | 304 profile(), std::vector<std::string>(), std::vector<int32_t>(), |
305 {"google.com"}, {important_sites[0].reason_bitfield}); | |
303 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( | 306 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( |
304 profile(), {}, {}, {"google.com"}, {important_sites[0].reason_bitfield}); | 307 profile(), std::vector<std::string>(), std::vector<int32_t>(), |
308 {"google.com"}, {important_sites[0].reason_bitfield}); | |
305 | 309 |
306 // Important fetch, we should still be there. | 310 // Important fetch, we should still be there. |
307 important_sites = ImportantSitesUtil::GetImportantRegisterableDomains( | 311 important_sites = ImportantSitesUtil::GetImportantRegisterableDomains( |
308 profile(), kNumImportantSites); | 312 profile(), kNumImportantSites); |
309 std::vector<std::string> expected_sorted_domains = {"google.com"}; | 313 std::vector<std::string> expected_sorted_domains = {"google.com"}; |
310 std::vector<GURL> expected_sorted_origins = {url1}; | 314 std::vector<GURL> expected_sorted_origins = {url1}; |
311 ASSERT_EQ(1u, important_sites.size()); | 315 ASSERT_EQ(1u, important_sites.size()); |
312 ExpectImportantResultsEq(expected_sorted_domains, expected_sorted_origins, | 316 ExpectImportantResultsEq(expected_sorted_domains, expected_sorted_origins, |
313 important_sites); | 317 important_sites); |
314 | 318 |
315 // Record NOT ignored. | 319 // Record NOT ignored. |
316 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( | 320 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( |
317 profile(), {"google.com"}, {important_sites[0].reason_bitfield}, {}, {}); | 321 profile(), {"google.com"}, {important_sites[0].reason_bitfield}, |
322 std::vector<std::string>(), std::vector<int32_t>()); | |
318 | 323 |
319 // Record ignored twice again. | 324 // Record ignored twice again. |
320 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( | 325 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( |
321 profile(), {}, {}, {"google.com"}, {important_sites[0].reason_bitfield}); | 326 profile(), std::vector<std::string>(), std::vector<int32_t>(), |
327 {"google.com"}, {important_sites[0].reason_bitfield}); | |
322 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( | 328 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( |
323 profile(), {}, {}, {"google.com"}, {important_sites[0].reason_bitfield}); | 329 profile(), std::vector<std::string>(), std::vector<int32_t>(), |
330 {"google.com"}, {important_sites[0].reason_bitfield}); | |
324 | 331 |
325 // Important fetch, we should still be there. | 332 // Important fetch, we should still be there. |
326 important_sites = ImportantSitesUtil::GetImportantRegisterableDomains( | 333 important_sites = ImportantSitesUtil::GetImportantRegisterableDomains( |
327 profile(), kNumImportantSites); | 334 profile(), kNumImportantSites); |
328 ExpectImportantResultsEq(expected_sorted_domains, expected_sorted_origins, | 335 ExpectImportantResultsEq(expected_sorted_domains, expected_sorted_origins, |
329 important_sites); | 336 important_sites); |
330 | 337 |
331 // Record ignored 3rd time in a row. | 338 // Record ignored 3rd time in a row. |
332 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( | 339 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( |
333 profile(), {}, {}, {"google.com"}, {important_sites[0].reason_bitfield}); | 340 profile(), std::vector<std::string>(), std::vector<int32_t>(), |
341 {"google.com"}, {important_sites[0].reason_bitfield}); | |
334 | 342 |
335 // Blacklisted now. | 343 // Blacklisted now. |
336 important_sites = ImportantSitesUtil::GetImportantRegisterableDomains( | 344 important_sites = ImportantSitesUtil::GetImportantRegisterableDomains( |
337 profile(), kNumImportantSites); | 345 profile(), kNumImportantSites); |
338 EXPECT_EQ(0u, important_sites.size()); | 346 EXPECT_EQ(0u, important_sites.size()); |
339 } | 347 } |
340 | 348 |
341 TEST_F(ImportantSitesUtilTest, Metrics) { | 349 TEST_F(ImportantSitesUtilTest, Metrics) { |
342 SiteEngagementService* service = SiteEngagementService::Get(profile()); | 350 SiteEngagementService* service = SiteEngagementService::Get(profile()); |
343 ASSERT_TRUE(service); | 351 ASSERT_TRUE(service); |
(...skipping 12 matching lines...) Expand all Loading... | |
356 | 364 |
357 std::vector<ImportantDomainInfo> important_sites = | 365 std::vector<ImportantDomainInfo> important_sites = |
358 ImportantSitesUtil::GetImportantRegisterableDomains(profile(), | 366 ImportantSitesUtil::GetImportantRegisterableDomains(profile(), |
359 kNumImportantSites); | 367 kNumImportantSites); |
360 | 368 |
361 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( | 369 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( |
362 profile(), {"google.com", "youtube.com"}, | 370 profile(), {"google.com", "youtube.com"}, |
363 {important_sites[0].reason_bitfield, important_sites[1].reason_bitfield}, | 371 {important_sites[0].reason_bitfield, important_sites[1].reason_bitfield}, |
364 {"bad.com"}, {important_sites[2].reason_bitfield}); | 372 {"bad.com"}, {important_sites[2].reason_bitfield}); |
365 | 373 |
366 EXPECT_THAT(histogram_tester.GetAllSamples( | 374 EXPECT_THAT( |
367 "Storage.ImportantSites.CBDChosenReason"), | 375 histogram_tester.GetAllSamples("Storage.ImportantSites.CBDChosenReason"), |
368 testing::ElementsAre( | 376 testing::ElementsAre(base::Bucket(ENGAGEMENT, 1), |
369 base::Bucket(ENGAGEMENT, 1), | 377 base::Bucket(BOOKMARKS, 1), |
370 base::Bucket(BOOKMARKS, 1), | 378 base::Bucket(NOTIFICATIONS, 1))); |
371 base::Bucket(NOTIFICATIONS, 1))); | |
372 | 379 |
373 EXPECT_THAT( | 380 EXPECT_THAT( |
374 histogram_tester.GetAllSamples("Storage.ImportantSites.CBDIgnoredReason"), | 381 histogram_tester.GetAllSamples("Storage.ImportantSites.CBDIgnoredReason"), |
375 testing::ElementsAre(base::Bucket(BOOKMARKS, 1))); | 382 testing::ElementsAre(base::Bucket(BOOKMARKS, 1))); |
376 | 383 |
377 // Bookmarks are "unknown", as they were added after the crossed reasons. | 384 // Bookmarks are "unknown", as they were added after the crossed reasons. |
378 EXPECT_THAT(histogram_tester.GetAllSamples( | 385 EXPECT_THAT(histogram_tester.GetAllSamples( |
379 "Storage.BlacklistedImportantSites.Reason"), | 386 "Storage.BlacklistedImportantSites.Reason"), |
380 testing::ElementsAre( | 387 testing::ElementsAre( |
381 base::Bucket(CROSSED_NOTIFICATIONS_AND_ENGAGEMENT, 1), | 388 base::Bucket(CROSSED_NOTIFICATIONS_AND_ENGAGEMENT, 1), |
382 base::Bucket(CROSSED_REASON_UNKNOWN, 1))); | 389 base::Bucket(CROSSED_REASON_UNKNOWN, 1))); |
383 } | 390 } |
OLD | NEW |