| Index: chrome/browser/engagement/site_engagement_service_unittest.cc
|
| diff --git a/chrome/browser/engagement/site_engagement_service_unittest.cc b/chrome/browser/engagement/site_engagement_service_unittest.cc
|
| index adff26216ee58491a3dc25391c426685b88f9148..936e2e1aa675d54b611e4b6dc5c4d2a00aec18a1 100644
|
| --- a/chrome/browser/engagement/site_engagement_service_unittest.cc
|
| +++ b/chrome/browser/engagement/site_engagement_service_unittest.cc
|
| @@ -14,9 +14,9 @@
|
|
|
| namespace {
|
|
|
| -const int kLessNavigationsThanNeededToMaxDailyEngagement = 2;
|
| -const int kMoreNavigationsThanNeededToMaxDailyEngagement = 20;
|
| -const int kMoreNavigationsThanNeededToMaxTotalEngagement = 200;
|
| +const int kLessAccumulationsThanNeededToMaxDailyEngagement = 2;
|
| +const int kMoreAccumulationsThanNeededToMaxDailyEngagement = 40;
|
| +const int kMoreAccumulationsThanNeededToMaxTotalEngagement = 200;
|
| const int kLessDaysThanNeededToMaxTotalEngagement = 4;
|
| const int kMoreDaysThanNeededToMaxTotalEngagement = 40;
|
| const int kLessPeriodsThanNeededToDecayMaxScore = 2;
|
| @@ -88,13 +88,13 @@ class SiteEngagementScoreTest : public testing::Test {
|
| SiteEngagementScore score_;
|
| };
|
|
|
| -// Navigate many times on the same day. Ensure each time the score goes up by
|
| -// kNavigationPoints, but not more than kMaxPointsPerDay.
|
| -TEST_F(SiteEngagementScoreTest, NavigateOnSameDay) {
|
| +// Accumulate score many times on the same day. Ensure each time the score goes
|
| +// up by kNavigationPoints, but not more than kMaxPointsPerDay.
|
| +TEST_F(SiteEngagementScoreTest, AccumulateOnSameDay) {
|
| base::Time reference_time = GetReferenceTime();
|
|
|
| test_clock_.SetNow(reference_time);
|
| - for (int i = 0; i < kMoreNavigationsThanNeededToMaxDailyEngagement; ++i) {
|
| + for (int i = 0; i < kMoreAccumulationsThanNeededToMaxDailyEngagement; ++i) {
|
| score_.AddPoints(SiteEngagementScore::kNavigationPoints);
|
| EXPECT_EQ(std::min(SiteEngagementScore::kMaxPointsPerDay,
|
| (i + 1) * SiteEngagementScore::kNavigationPoints),
|
| @@ -104,20 +104,20 @@ TEST_F(SiteEngagementScoreTest, NavigateOnSameDay) {
|
| EXPECT_EQ(SiteEngagementScore::kMaxPointsPerDay, score_.Score());
|
| }
|
|
|
| -// Navigate on the first day to max that day's engagement, then navigate on a
|
| -// different day.
|
| -TEST_F(SiteEngagementScoreTest, NavigateOnTwoDays) {
|
| +// Accumulate on the first day to max that day's engagement, then accumulate on
|
| +// a different day.
|
| +TEST_F(SiteEngagementScoreTest, AccumulateOnTwoDays) {
|
| base::Time reference_time = GetReferenceTime();
|
| base::Time later_date = reference_time + base::TimeDelta::FromDays(2);
|
|
|
| test_clock_.SetNow(reference_time);
|
| - for (int i = 0; i < kMoreNavigationsThanNeededToMaxDailyEngagement; ++i)
|
| + for (int i = 0; i < kMoreAccumulationsThanNeededToMaxDailyEngagement; ++i)
|
| score_.AddPoints(SiteEngagementScore::kNavigationPoints);
|
|
|
| EXPECT_EQ(SiteEngagementScore::kMaxPointsPerDay, score_.Score());
|
|
|
| test_clock_.SetNow(later_date);
|
| - for (int i = 0; i < kMoreNavigationsThanNeededToMaxDailyEngagement; ++i) {
|
| + for (int i = 0; i < kMoreAccumulationsThanNeededToMaxDailyEngagement; ++i) {
|
| score_.AddPoints(SiteEngagementScore::kNavigationPoints);
|
| double day_score =
|
| std::min(SiteEngagementScore::kMaxPointsPerDay,
|
| @@ -129,15 +129,15 @@ TEST_F(SiteEngagementScoreTest, NavigateOnTwoDays) {
|
| EXPECT_EQ(2 * SiteEngagementScore::kMaxPointsPerDay, score_.Score());
|
| }
|
|
|
| -// Navigate a lot on many consecutive days and ensure the score doesn't exceed
|
| +// Accumulate score on many consecutive days and ensure the score doesn't exceed
|
| // the maximum allowed.
|
| -TEST_F(SiteEngagementScoreTest, NavigateALotOnManyDays) {
|
| +TEST_F(SiteEngagementScoreTest, AccumulateALotOnManyDays) {
|
| base::Time current_day = GetReferenceTime();
|
|
|
| for (int i = 0; i < kMoreDaysThanNeededToMaxTotalEngagement; ++i) {
|
| current_day += base::TimeDelta::FromDays(1);
|
| test_clock_.SetNow(current_day);
|
| - for (int j = 0; j < kMoreNavigationsThanNeededToMaxDailyEngagement; ++j)
|
| + for (int j = 0; j < kMoreAccumulationsThanNeededToMaxDailyEngagement; ++j)
|
| score_.AddPoints(SiteEngagementScore::kNavigationPoints);
|
|
|
| EXPECT_EQ(std::min(SiteEngagementScore::kMaxPoints,
|
| @@ -148,21 +148,21 @@ TEST_F(SiteEngagementScoreTest, NavigateALotOnManyDays) {
|
| EXPECT_EQ(SiteEngagementScore::kMaxPoints, score_.Score());
|
| }
|
|
|
| -// Navigate a little on many consecutive days and ensure the score doesn't
|
| +// Accumulate a little on many consecutive days and ensure the score doesn't
|
| // exceed the maximum allowed.
|
| -TEST_F(SiteEngagementScoreTest, NavigateALittleOnManyDays) {
|
| +TEST_F(SiteEngagementScoreTest, AccumulateALittleOnManyDays) {
|
| base::Time current_day = GetReferenceTime();
|
|
|
| - for (int i = 0; i < kMoreNavigationsThanNeededToMaxTotalEngagement; ++i) {
|
| + for (int i = 0; i < kMoreAccumulationsThanNeededToMaxTotalEngagement; ++i) {
|
| current_day += base::TimeDelta::FromDays(1);
|
| test_clock_.SetNow(current_day);
|
|
|
| - for (int j = 0; j < kLessNavigationsThanNeededToMaxDailyEngagement; ++j)
|
| + for (int j = 0; j < kLessAccumulationsThanNeededToMaxDailyEngagement; ++j)
|
| score_.AddPoints(SiteEngagementScore::kNavigationPoints);
|
|
|
| EXPECT_EQ(
|
| std::min(SiteEngagementScore::kMaxPoints,
|
| - (i + 1) * kLessNavigationsThanNeededToMaxDailyEngagement *
|
| + (i + 1) * kLessAccumulationsThanNeededToMaxDailyEngagement *
|
| SiteEngagementScore::kNavigationPoints),
|
| score_.Score());
|
| }
|
| @@ -170,7 +170,7 @@ TEST_F(SiteEngagementScoreTest, NavigateALittleOnManyDays) {
|
| EXPECT_EQ(SiteEngagementScore::kMaxPoints, score_.Score());
|
| }
|
|
|
| -// Navigate a bit, then check the score decays properly for a range of times.
|
| +// Accumulate a bit, then check the score decays properly for a range of times.
|
| TEST_F(SiteEngagementScoreTest, ScoresDecayOverTime) {
|
| base::Time current_day = GetReferenceTime();
|
|
|
| @@ -179,7 +179,7 @@ TEST_F(SiteEngagementScoreTest, ScoresDecayOverTime) {
|
| current_day += base::TimeDelta::FromDays(1);
|
| test_clock_.SetNow(current_day);
|
|
|
| - for (int j = 0; j < kMoreNavigationsThanNeededToMaxDailyEngagement; ++j)
|
| + for (int j = 0; j < kMoreAccumulationsThanNeededToMaxDailyEngagement; ++j)
|
| score_.AddPoints(SiteEngagementScore::kNavigationPoints);
|
| }
|
|
|
| @@ -228,7 +228,7 @@ TEST_F(SiteEngagementScoreTest, DecaysAppliedBeforeAdd) {
|
| current_day += base::TimeDelta::FromDays(1);
|
| test_clock_.SetNow(current_day);
|
|
|
| - for (int j = 0; j < kMoreNavigationsThanNeededToMaxDailyEngagement; ++j)
|
| + for (int j = 0; j < kMoreAccumulationsThanNeededToMaxDailyEngagement; ++j)
|
| score_.AddPoints(SiteEngagementScore::kNavigationPoints);
|
| }
|
|
|
| @@ -258,7 +258,7 @@ TEST_F(SiteEngagementScoreTest, GoBackInTime) {
|
| base::Time current_day = GetReferenceTime();
|
|
|
| test_clock_.SetNow(current_day);
|
| - for (int i = 0; i < kMoreNavigationsThanNeededToMaxDailyEngagement; ++i)
|
| + for (int i = 0; i < kMoreAccumulationsThanNeededToMaxDailyEngagement; ++i)
|
| score_.AddPoints(SiteEngagementScore::kNavigationPoints);
|
|
|
| EXPECT_EQ(SiteEngagementScore::kMaxPointsPerDay, score_.Score());
|
| @@ -268,7 +268,7 @@ TEST_F(SiteEngagementScoreTest, GoBackInTime) {
|
| test_clock_.SetNow(current_day - base::TimeDelta::FromDays(
|
| kMorePeriodsThanNeededToDecayMaxScore *
|
| SiteEngagementScore::kDecayPoints));
|
| - for (int i = 0; i < kMoreNavigationsThanNeededToMaxDailyEngagement; ++i) {
|
| + for (int i = 0; i < kMoreAccumulationsThanNeededToMaxDailyEngagement; ++i) {
|
| score_.AddPoints(SiteEngagementScore::kNavigationPoints);
|
| double day_score =
|
| std::min(SiteEngagementScore::kMaxPointsPerDay,
|
| @@ -320,7 +320,6 @@ class SiteEngagementServiceTest : public BrowserWithTestWindowTest {
|
| }
|
| };
|
|
|
| -
|
| // Tests that the Site Engagement service is hooked up properly to navigations
|
| // by performing two navigations and checking the engagement score increases
|
| // both times.
|
| @@ -333,7 +332,7 @@ TEST_F(SiteEngagementServiceTest, ScoreIncrementsOnPageRequest) {
|
|
|
| AddTab(browser(), GURL("about:blank"));
|
| EXPECT_EQ(0, service->GetScore(url));
|
| - int prev_score = service->GetScore(url);
|
| + double prev_score = service->GetScore(url);
|
|
|
| NavigateAndCommitActiveTab(url);
|
| EXPECT_LT(prev_score, service->GetScore(url));
|
| @@ -345,7 +344,7 @@ TEST_F(SiteEngagementServiceTest, ScoreIncrementsOnPageRequest) {
|
|
|
| // Expect that site engagement scores for several sites are correctly aggregated
|
| // by GetTotalEngagementPoints().
|
| -TEST_F(SiteEngagementServiceTest, GetTotalEngagementPoints) {
|
| +TEST_F(SiteEngagementServiceTest, GetTotalNavigationPoints) {
|
| SiteEngagementService* service =
|
| SiteEngagementServiceFactory::GetForProfile(profile());
|
| DCHECK(service);
|
| @@ -359,21 +358,54 @@ TEST_F(SiteEngagementServiceTest, GetTotalEngagementPoints) {
|
| EXPECT_EQ(0, service->GetScore(url2));
|
| EXPECT_EQ(0, service->GetScore(url3));
|
|
|
| - service->HandleNavigation(url1);
|
| - EXPECT_EQ(1, service->GetScore(url1));
|
| - EXPECT_EQ(1, service->GetTotalEngagementPoints());
|
| + service->HandleNavigation(url1, ui::PAGE_TRANSITION_TYPED);
|
| + EXPECT_EQ(0.5, service->GetScore(url1));
|
| + EXPECT_EQ(0.5, service->GetTotalEngagementPoints());
|
| +
|
| + service->HandleNavigation(url2, ui::PAGE_TRANSITION_GENERATED);
|
| + service->HandleNavigation(url2, ui::PAGE_TRANSITION_AUTO_TOPLEVEL);
|
| + EXPECT_EQ(1, service->GetScore(url2));
|
| + EXPECT_EQ(1.5, service->GetTotalEngagementPoints());
|
| +
|
| + service->HandleNavigation(url3, ui::PAGE_TRANSITION_TYPED);
|
| + EXPECT_EQ(0.5, service->GetScore(url3));
|
| + EXPECT_EQ(2, service->GetTotalEngagementPoints());
|
|
|
| - service->HandleNavigation(url2);
|
| - service->HandleNavigation(url2);
|
| - EXPECT_EQ(2, service->GetScore(url2));
|
| + service->HandleNavigation(url1, ui::PAGE_TRANSITION_GENERATED);
|
| + service->HandleNavigation(url1, ui::PAGE_TRANSITION_TYPED);
|
| + EXPECT_EQ(1.5, service->GetScore(url1));
|
| EXPECT_EQ(3, service->GetTotalEngagementPoints());
|
| +}
|
| +
|
| +TEST_F(SiteEngagementServiceTest, GetTotalUserInputPoints) {
|
| + SiteEngagementService* service =
|
| + SiteEngagementServiceFactory::GetForProfile(profile());
|
| + DCHECK(service);
|
| +
|
| + // The https and http versions of www.google.com should be separate.
|
| + GURL url1("https://www.google.com/");
|
| + GURL url2("http://www.google.com/");
|
| + GURL url3("http://drive.google.com/");
|
| +
|
| + EXPECT_EQ(0, service->GetScore(url1));
|
| + EXPECT_EQ(0, service->GetScore(url2));
|
| + EXPECT_EQ(0, service->GetScore(url3));
|
| +
|
| + service->HandleUserInput(url1);
|
| + EXPECT_DOUBLE_EQ(0.05, service->GetScore(url1));
|
| + EXPECT_DOUBLE_EQ(0.05, service->GetTotalEngagementPoints());
|
| +
|
| + service->HandleUserInput(url2);
|
| + service->HandleUserInput(url2);
|
| + EXPECT_DOUBLE_EQ(0.1, service->GetScore(url2));
|
| + EXPECT_DOUBLE_EQ(0.15, service->GetTotalEngagementPoints());
|
|
|
| - service->HandleNavigation(url3);
|
| - EXPECT_EQ(1, service->GetScore(url3));
|
| - EXPECT_EQ(4, service->GetTotalEngagementPoints());
|
| + service->HandleUserInput(url3);
|
| + EXPECT_DOUBLE_EQ(0.05, service->GetScore(url3));
|
| + EXPECT_DOUBLE_EQ(0.2, service->GetTotalEngagementPoints());
|
|
|
| - service->HandleNavigation(url1);
|
| - service->HandleNavigation(url1);
|
| - EXPECT_EQ(3, service->GetScore(url1));
|
| - EXPECT_EQ(6, service->GetTotalEngagementPoints());
|
| + service->HandleUserInput(url1);
|
| + service->HandleUserInput(url1);
|
| + EXPECT_DOUBLE_EQ(0.15, service->GetScore(url1));
|
| + EXPECT_DOUBLE_EQ(0.3, service->GetTotalEngagementPoints());
|
| }
|
|
|