Chromium Code Reviews| 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..96118989d39f428d318bc4ae7df155277fb2e452 100644 |
| --- a/chrome/browser/engagement/site_engagement_service_unittest.cc |
| +++ b/chrome/browser/engagement/site_engagement_service_unittest.cc |
| @@ -156,6 +156,14 @@ class SiteEngagementServiceTest : public ChromeRenderViewHostTestHarness { |
| SiteEngagementScore::SetParamValuesForTesting(); |
| } |
| + void TearDown() override { |
| + if (service_with_test_clock_) { |
| + service_with_test_clock_->Shutdown(); |
| + service_with_test_clock_.reset(); |
| + } |
| + ChromeRenderViewHostTestHarness::TearDown(); |
| + } |
| + |
| void NavigateWithTransitionAndExpectHigherScore( |
| SiteEngagementService* service, |
| const GURL& url, |
| @@ -205,6 +213,15 @@ class SiteEngagementServiceTest : public ChromeRenderViewHostTestHarness { |
| return score; |
| } |
| + void CreateServiceWithTestClock(SiteEngagementService** service, |
|
benwells
2017/03/21 23:44:51
Thanks for factoring out this too. We can delete a
sense (YandexTeam)
2017/03/22 07:38:21
Okay, I think we can do this.
|
| + base::SimpleTestClock** clock) { |
| + DCHECK(service && clock); |
| + DCHECK(!service_with_test_clock_); |
| + (*clock) = new base::SimpleTestClock(); |
| + (*service) = new SiteEngagementService(profile(), base::WrapUnique(*clock)); |
| + service_with_test_clock_ = base::WrapUnique(*service); |
| + } |
| + |
| private: |
| void CheckScoreFromSettings(HostContentSettingsMap* settings_map, |
| const GURL& url, |
| @@ -213,6 +230,7 @@ class SiteEngagementServiceTest : public ChromeRenderViewHostTestHarness { |
| } |
| base::ScopedTempDir temp_dir_; |
| + std::unique_ptr<SiteEngagementService> service_with_test_clock_; |
| }; |
| TEST_F(SiteEngagementServiceTest, GetMedianEngagement) { |
| @@ -421,9 +439,9 @@ TEST_F(SiteEngagementServiceTest, RestrictedToHTTPAndHTTPS) { |
| } |
| TEST_F(SiteEngagementServiceTest, LastShortcutLaunch) { |
| - base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| - std::unique_ptr<SiteEngagementService> service( |
| - new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| + SiteEngagementService* service; |
| + base::SimpleTestClock* clock; |
| + CreateServiceWithTestClock(&service, &clock); |
| base::HistogramTester histograms; |
| @@ -485,9 +503,9 @@ TEST_F(SiteEngagementServiceTest, LastShortcutLaunch) { |
| } |
| TEST_F(SiteEngagementServiceTest, NotificationPermission) { |
| - base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| - std::unique_ptr<SiteEngagementService> service( |
| - new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| + SiteEngagementService* service; |
| + base::SimpleTestClock* clock; |
| + CreateServiceWithTestClock(&service, &clock); |
| GURL url1("https://www.google.com/"); |
| GURL url2("http://www.google.com/"); |
| @@ -532,9 +550,9 @@ TEST_F(SiteEngagementServiceTest, NotificationPermission) { |
| TEST_F(SiteEngagementServiceTest, CheckHistograms) { |
| base::HistogramTester histograms; |
| - base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| - std::unique_ptr<SiteEngagementService> service( |
| - new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| + SiteEngagementService* service; |
| + base::SimpleTestClock* clock; |
| + CreateServiceWithTestClock(&service, &clock); |
| base::Time current_day = GetReferenceTime(); |
| clock->SetNow(current_day); |
| @@ -822,9 +840,9 @@ TEST_F(SiteEngagementServiceTest, CheckHistograms) { |
| // engagement times to be reset if too much time has passed since the last |
| // engagement. |
| TEST_F(SiteEngagementServiceTest, CleanupEngagementScores) { |
| - base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| - std::unique_ptr<SiteEngagementService> service( |
| - new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| + SiteEngagementService* service; |
| + base::SimpleTestClock* clock; |
| + CreateServiceWithTestClock(&service, &clock); |
| // Set the base time to be 3 weeks past the stale period in the past. |
| // Use a 1 second offset to make sure scores don't yet decay. |
| @@ -1042,9 +1060,9 @@ TEST_F(SiteEngagementServiceTest, CleanupEngagementScoresProportional) { |
| SetParamValue(SiteEngagementScore::DECAY_POINTS, 0); |
| SetParamValue(SiteEngagementScore::SCORE_CLEANUP_THRESHOLD, 0.5); |
| - base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| - std::unique_ptr<SiteEngagementService> service( |
| - new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| + SiteEngagementService* service; |
| + base::SimpleTestClock* clock; |
| + CreateServiceWithTestClock(&service, &clock); |
| base::Time current_day = GetReferenceTime(); |
| clock->SetNow(current_day); |
| @@ -1100,9 +1118,9 @@ TEST_F(SiteEngagementServiceTest, NavigationAccumulation) { |
| } |
| TEST_F(SiteEngagementServiceTest, IsBootstrapped) { |
| - base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| - std::unique_ptr<SiteEngagementService> service( |
| - new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| + SiteEngagementService* service; |
| + base::SimpleTestClock* clock; |
| + CreateServiceWithTestClock(&service, &clock); |
| base::Time current_day = GetReferenceTime(); |
| clock->SetNow(current_day); |
| @@ -1127,10 +1145,9 @@ TEST_F(SiteEngagementServiceTest, CleanupOriginsOnHistoryDeletion) { |
| // balance out history deletion also accounts for the proportional decay. |
| SetParamValue(SiteEngagementScore::DECAY_PROPORTION, 0.5); |
| - base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| - std::unique_ptr<SiteEngagementService> engagement( |
| - new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| - ASSERT_TRUE(engagement.get()); |
| + SiteEngagementService* engagement; |
| + base::SimpleTestClock* clock; |
| + CreateServiceWithTestClock(&engagement, &clock); |
| GURL origin1("http://www.google.com/"); |
| GURL origin1a("http://www.google.com/search?q=asdf"); |
| @@ -1256,9 +1273,9 @@ TEST_F(SiteEngagementServiceTest, EngagementLevel) { |
| blink::mojom::EngagementLevel::MAX, |
| "enum values should not be equal"); |
| - base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| - std::unique_ptr<SiteEngagementService> service( |
| - new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| + SiteEngagementService* service; |
| + base::SimpleTestClock* clock; |
| + CreateServiceWithTestClock(&service, &clock); |
| base::Time current_day = GetReferenceTime(); |
| clock->SetNow(current_day); |
| @@ -1448,9 +1465,9 @@ TEST_F(SiteEngagementServiceTest, Observers) { |
| } |
| TEST_F(SiteEngagementServiceTest, ScoreDecayHistograms) { |
| - base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| - std::unique_ptr<SiteEngagementService> service( |
| - new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| + SiteEngagementService* service; |
| + base::SimpleTestClock* clock; |
| + CreateServiceWithTestClock(&service, &clock); |
| base::Time current_day = GetReferenceTime(); |
| clock->SetNow(current_day); |
| @@ -1553,9 +1570,9 @@ TEST_F(SiteEngagementServiceTest, LastEngagementTime) { |
| ASSERT_TRUE(last_engagement_time.is_null()); |
| - base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| - std::unique_ptr<SiteEngagementService> service( |
| - new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| + SiteEngagementService* service; |
| + base::SimpleTestClock* clock; |
| + CreateServiceWithTestClock(&service, &clock); |
| ASSERT_TRUE(service->GetLastEngagementTime().is_null()); |
| @@ -1607,9 +1624,9 @@ TEST_F(SiteEngagementServiceTest, LastEngagementTime) { |
| } |
| TEST_F(SiteEngagementServiceTest, CleanupMovesScoreBackToNow) { |
| - base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| - std::unique_ptr<SiteEngagementService> service( |
| - new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| + SiteEngagementService* service; |
| + base::SimpleTestClock* clock; |
| + CreateServiceWithTestClock(&service, &clock); |
| base::Time last_engagement_time; |
| base::Time current_day = GetReferenceTime(); |
| @@ -1677,9 +1694,9 @@ TEST_F(SiteEngagementServiceTest, CleanupMovesScoreBackToNow) { |
| } |
| TEST_F(SiteEngagementServiceTest, CleanupMovesScoreBackToRebase) { |
| - base::SimpleTestClock* clock = new base::SimpleTestClock(); |
| - std::unique_ptr<SiteEngagementService> service( |
| - new SiteEngagementService(profile(), base::WrapUnique(clock))); |
| + SiteEngagementService* service; |
| + base::SimpleTestClock* clock; |
| + CreateServiceWithTestClock(&service, &clock); |
| base::Time last_engagement_time; |
| base::Time current_day = GetReferenceTime(); |