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 415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
426 TEST_F(SiteEngagementScoreTest, Reset) { | 426 TEST_F(SiteEngagementScoreTest, Reset) { |
427 base::Time current_day = GetReferenceTime(); | 427 base::Time current_day = GetReferenceTime(); |
428 | 428 |
429 test_clock_.SetNow(current_day); | 429 test_clock_.SetNow(current_day); |
430 score_.AddPoints(SiteEngagementScore::GetNavigationPoints()); | 430 score_.AddPoints(SiteEngagementScore::GetNavigationPoints()); |
431 EXPECT_EQ(SiteEngagementScore::GetNavigationPoints(), score_.Score()); | 431 EXPECT_EQ(SiteEngagementScore::GetNavigationPoints(), score_.Score()); |
432 | 432 |
433 current_day += base::TimeDelta::FromDays(7); | 433 current_day += base::TimeDelta::FromDays(7); |
434 test_clock_.SetNow(current_day); | 434 test_clock_.SetNow(current_day); |
435 | 435 |
436 score_.Reset(20.0, nullptr); | 436 score_.Reset(20.0, test_clock_.Now()); |
437 EXPECT_DOUBLE_EQ(20.0, score_.Score()); | 437 EXPECT_DOUBLE_EQ(20.0, score_.Score()); |
438 EXPECT_DOUBLE_EQ(0, score_.points_added_today_); | 438 EXPECT_DOUBLE_EQ(0, score_.points_added_today_); |
439 EXPECT_EQ(current_day, score_.last_engagement_time_); | 439 EXPECT_EQ(current_day, score_.last_engagement_time_); |
440 EXPECT_TRUE(score_.last_shortcut_launch_time_.is_null()); | 440 EXPECT_TRUE(score_.last_shortcut_launch_time_.is_null()); |
441 | 441 |
442 // Adding points after the reset should work as normal. | 442 // Adding points after the reset should work as normal. |
443 score_.AddPoints(5); | 443 score_.AddPoints(5); |
444 EXPECT_EQ(25.0, score_.Score()); | 444 EXPECT_EQ(25.0, score_.Score()); |
445 | 445 |
446 // The decay should happen one decay period from the current time. | 446 // The decay should happen one decay period from the current time. |
447 test_clock_.SetNow(current_day + | 447 test_clock_.SetNow(current_day + |
448 base::TimeDelta::FromDays( | 448 base::TimeDelta::FromDays( |
449 SiteEngagementScore::GetDecayPeriodInDays() + 1)); | 449 SiteEngagementScore::GetDecayPeriodInDays() + 1)); |
450 EXPECT_EQ(25.0 - SiteEngagementScore::GetDecayPoints(), score_.Score()); | 450 EXPECT_EQ(25.0 - SiteEngagementScore::GetDecayPoints(), score_.Score()); |
451 | 451 |
452 // Ensure that manually setting a time works as expected. | 452 // Ensure that manually setting a time works as expected. |
453 score_.AddPoints(5); | 453 score_.AddPoints(5); |
454 test_clock_.SetNow(GetReferenceTime()); | 454 test_clock_.SetNow(GetReferenceTime()); |
455 base::Time now = test_clock_.Now(); | 455 base::Time now = test_clock_.Now(); |
456 score_.Reset(10.0, &now); | 456 score_.Reset(10.0, now); |
457 | 457 |
458 EXPECT_DOUBLE_EQ(10.0, score_.Score()); | 458 EXPECT_DOUBLE_EQ(10.0, score_.Score()); |
459 EXPECT_DOUBLE_EQ(0, score_.points_added_today_); | 459 EXPECT_DOUBLE_EQ(0, score_.points_added_today_); |
460 EXPECT_EQ(now, score_.last_engagement_time_); | 460 EXPECT_EQ(now, score_.last_engagement_time_); |
461 EXPECT_TRUE(score_.last_shortcut_launch_time_.is_null()); | 461 EXPECT_TRUE(score_.last_shortcut_launch_time_.is_null()); |
462 | 462 |
463 score_.set_last_shortcut_launch_time(test_clock_.Now()); | 463 score_.set_last_shortcut_launch_time(test_clock_.Now()); |
| 464 base::Time old_now = test_clock_.Now(); |
464 test_clock_.SetNow(GetReferenceTime() + base::TimeDelta::FromDays(3)); | 465 test_clock_.SetNow(GetReferenceTime() + base::TimeDelta::FromDays(3)); |
465 now = test_clock_.Now(); | 466 now = test_clock_.Now(); |
466 score_.Reset(15.0, &now); | 467 score_.Reset(15.0, now); |
467 | 468 |
468 // 5 bonus from the last shortcut launch. | 469 // 5 bonus from the last shortcut launch. |
469 EXPECT_DOUBLE_EQ(20.0, score_.Score()); | 470 EXPECT_DOUBLE_EQ(20.0, score_.Score()); |
470 EXPECT_DOUBLE_EQ(0, score_.points_added_today_); | 471 EXPECT_DOUBLE_EQ(0, score_.points_added_today_); |
471 EXPECT_EQ(now, score_.last_engagement_time_); | 472 EXPECT_EQ(now, score_.last_engagement_time_); |
472 EXPECT_EQ(now, score_.last_shortcut_launch_time_); | 473 EXPECT_EQ(old_now, score_.last_shortcut_launch_time_); |
473 } | 474 } |
474 | 475 |
475 class SiteEngagementServiceTest : public ChromeRenderViewHostTestHarness { | 476 class SiteEngagementServiceTest : public ChromeRenderViewHostTestHarness { |
476 public: | 477 public: |
477 void SetUp() override { | 478 void SetUp() override { |
478 ChromeRenderViewHostTestHarness::SetUp(); | 479 ChromeRenderViewHostTestHarness::SetUp(); |
479 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 480 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
480 g_temp_history_dir = temp_dir_.path(); | 481 g_temp_history_dir = temp_dir_.path(); |
481 HistoryServiceFactory::GetInstance()->SetTestingFactory( | 482 HistoryServiceFactory::GetInstance()->SetTestingFactory( |
482 profile(), &BuildTestHistoryService); | 483 profile(), &BuildTestHistoryService); |
(...skipping 962 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1445 0, 2); | 1446 0, 2); |
1446 | 1447 |
1447 // Add more points and ensure no more samples are present. | 1448 // Add more points and ensure no more samples are present. |
1448 service->AddPoints(origin1, 0.01); | 1449 service->AddPoints(origin1, 0.01); |
1449 service->AddPoints(origin2, 0.01); | 1450 service->AddPoints(origin2, 0.01); |
1450 histograms.ExpectTotalCount(SiteEngagementMetrics::kScoreDecayedFromHistogram, | 1451 histograms.ExpectTotalCount(SiteEngagementMetrics::kScoreDecayedFromHistogram, |
1451 4); | 1452 4); |
1452 histograms.ExpectTotalCount(SiteEngagementMetrics::kScoreDecayedToHistogram, | 1453 histograms.ExpectTotalCount(SiteEngagementMetrics::kScoreDecayedToHistogram, |
1453 4); | 1454 4); |
1454 } | 1455 } |
OLD | NEW |