Commit e20eaff5 authored by Catherine Chung's avatar Catherine Chung Committed by Commit Bot

DeleteInstanceForTesting method for the DesktopSessionDurationTracker

This method deletes the instance and resets it to nullptr to avoid
memory leaks in tests.

Bug: 743049
Change-Id: Ib14253155c2282dd8c4cedcc9bc25f7389ae7a28
Reviewed-on: https://chromium-review.googlesource.com/571504Reviewed-by: default avatarRobert Kaplow <rkaplow@chromium.org>
Reviewed-by: default avatarRobert Liao <robliao@chromium.org>
Reviewed-by: default avatarChris Hamilton <chrisha@chromium.org>
Commit-Queue: Catherine Chung <catherinechung@google.com>
Cr-Commit-Position: refs/heads/master@{#487994}
parent 5a02412f
...@@ -21,6 +21,7 @@ const base::TimeDelta kZeroTime = base::TimeDelta::FromSeconds(0); ...@@ -21,6 +21,7 @@ const base::TimeDelta kZeroTime = base::TimeDelta::FromSeconds(0);
// static // static
void DesktopSessionDurationTracker::Initialize() { void DesktopSessionDurationTracker::Initialize() {
DCHECK(!g_instance);
g_instance = new DesktopSessionDurationTracker; g_instance = new DesktopSessionDurationTracker;
} }
...@@ -75,6 +76,13 @@ void DesktopSessionDurationTracker::OnUserEvent() { ...@@ -75,6 +76,13 @@ void DesktopSessionDurationTracker::OnUserEvent() {
} }
} }
// static
void DesktopSessionDurationTracker::CleanupForTesting() {
DCHECK(g_instance);
delete g_instance;
g_instance = nullptr;
}
void DesktopSessionDurationTracker::OnAudioStart() { void DesktopSessionDurationTracker::OnAudioStart() {
// This may start session. // This may start session.
is_audio_playing_ = true; is_audio_playing_ = true;
......
...@@ -58,6 +58,9 @@ class DesktopSessionDurationTracker : public AudibleContentsTracker::Observer { ...@@ -58,6 +58,9 @@ class DesktopSessionDurationTracker : public AudibleContentsTracker::Observer {
void AddObserver(Observer* observer); void AddObserver(Observer* observer);
void RemoveObserver(Observer* observer); void RemoveObserver(Observer* observer);
// Cleans up any global state for testing.
static void CleanupForTesting();
protected: protected:
DesktopSessionDurationTracker(); DesktopSessionDurationTracker();
~DesktopSessionDurationTracker() override; ~DesktopSessionDurationTracker() override;
......
...@@ -70,6 +70,14 @@ class DesktopSessionDurationTrackerTest : public testing::Test { ...@@ -70,6 +70,14 @@ class DesktopSessionDurationTrackerTest : public testing::Test {
DesktopSessionDurationTrackerTest() DesktopSessionDurationTrackerTest()
: loop_(base::MessageLoop::TYPE_DEFAULT) {} : loop_(base::MessageLoop::TYPE_DEFAULT) {}
void SetUp() override {
metrics::DesktopSessionDurationTracker::Initialize();
}
void TearDown() override {
metrics::DesktopSessionDurationTracker::CleanupForTesting();
}
void ExpectTotalDuration(base::TimeDelta duration) { void ExpectTotalDuration(base::TimeDelta duration) {
histogram_tester_.ExpectTotalCount("Session.TotalDuration", 1); histogram_tester_.ExpectTotalCount("Session.TotalDuration", 1);
base::Bucket bucket = base::Bucket bucket =
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment