Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1033)

Unified Diff: chrome/browser/engagement/site_engagement_service_unittest.cc

Issue 2749823002: Restore KeyedServiceFactory diagnostics for context use-after-destroy. (Closed)
Patch Set: Add shared shutdown logic in SiteEngagementService tests. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();

Powered by Google App Engine
This is Rietveld 408576698