| 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 95c77a3c4986313a91977e8b00e3d7005526ae4e..4e8b8189a4e4eebe6f6f0d0f18f8587697e12683 100644
|
| --- a/chrome/browser/engagement/site_engagement_service_unittest.cc
|
| +++ b/chrome/browser/engagement/site_engagement_service_unittest.cc
|
| @@ -391,6 +391,49 @@ TEST_F(SiteEngagementServiceTest, GetTotalUserInputPoints) {
|
| EXPECT_DOUBLE_EQ(0.4, service->GetTotalEngagementPoints());
|
| }
|
|
|
| +TEST_F(SiteEngagementServiceTest, GetTotalNotificationPoints) {
|
| + SiteEngagementService* service = SiteEngagementService::Get(profile());
|
| + ASSERT_TRUE(service);
|
| + base::HistogramTester histograms;
|
| +
|
| + // 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->HandleNotificationInteraction(url1);
|
| + EXPECT_DOUBLE_EQ(1.0, service->GetScore(url1));
|
| + EXPECT_DOUBLE_EQ(1.0, service->GetTotalEngagementPoints());
|
| + histograms.ExpectBucketCount(
|
| + SiteEngagementMetrics::kEngagementTypeHistogram,
|
| + SiteEngagementMetrics::ENGAGEMENT_NOTIFICATION_INTERACTION, 1);
|
| +
|
| + service->HandleNotificationInteraction(url2);
|
| + EXPECT_DOUBLE_EQ(1.0, service->GetScore(url2));
|
| + EXPECT_DOUBLE_EQ(2.0, service->GetTotalEngagementPoints());
|
| + histograms.ExpectBucketCount(
|
| + SiteEngagementMetrics::kEngagementTypeHistogram,
|
| + SiteEngagementMetrics::ENGAGEMENT_NOTIFICATION_INTERACTION, 2);
|
| +
|
| + service->HandleNotificationInteraction(url1);
|
| + EXPECT_DOUBLE_EQ(2.0, service->GetScore(url1));
|
| + EXPECT_DOUBLE_EQ(3.0, service->GetTotalEngagementPoints());
|
| + histograms.ExpectBucketCount(
|
| + SiteEngagementMetrics::kEngagementTypeHistogram,
|
| + SiteEngagementMetrics::ENGAGEMENT_NOTIFICATION_INTERACTION, 3);
|
| +
|
| + service->HandleNotificationInteraction(url3);
|
| + EXPECT_DOUBLE_EQ(1.0, service->GetScore(url3));
|
| + EXPECT_DOUBLE_EQ(4.0, service->GetTotalEngagementPoints());
|
| + histograms.ExpectBucketCount(
|
| + SiteEngagementMetrics::kEngagementTypeHistogram,
|
| + SiteEngagementMetrics::ENGAGEMENT_NOTIFICATION_INTERACTION, 4);
|
| +}
|
| +
|
| TEST_F(SiteEngagementServiceTest, RestrictedToHTTPAndHTTPS) {
|
| SiteEngagementService* service = SiteEngagementService::Get(profile());
|
| ASSERT_TRUE(service);
|
| @@ -1390,6 +1433,7 @@ TEST_F(SiteEngagementServiceTest, Observers) {
|
| GURL url_score_1("http://www.google.com/maps");
|
| GURL url_score_2("http://www.google.com/drive");
|
| GURL url_score_3("http://www.google.com/");
|
| + GURL url_score_4("http://maps.google.com/");
|
| GURL url_not_called("https://www.google.com/");
|
|
|
| // Create an observer and Observe(nullptr).
|
| @@ -1445,6 +1489,17 @@ TEST_F(SiteEngagementServiceTest, Observers) {
|
| EXPECT_FALSE(tester_not_called.callback_called());
|
| tester.Observe(nullptr);
|
| }
|
| +
|
| + // Add an observer for notifications.
|
| + {
|
| + ObserverTester tester(service, nullptr, url_score_4, 1.0);
|
| + service->HandleNotificationInteraction(url_score_4);
|
| + tester.Wait();
|
| +
|
| + EXPECT_TRUE(tester.callback_called());
|
| + EXPECT_FALSE(tester_not_called.callback_called());
|
| + tester.Observe(nullptr);
|
| + }
|
| }
|
|
|
| TEST_F(SiteEngagementServiceTest, ScoreDecayHistograms) {
|
|
|