Index: chrome/browser/chromeos/session_length_limiter_unittest.cc |
diff --git a/chrome/browser/chromeos/session_length_limiter_unittest.cc b/chrome/browser/chromeos/session_length_limiter_unittest.cc |
index 60252e3bc63e0d9a5aab16ee23cf818944b186e1..1d26284459a6631871a54e44467dbbc0d0de13b2 100644 |
--- a/chrome/browser/chromeos/session_length_limiter_unittest.cc |
+++ b/chrome/browser/chromeos/session_length_limiter_unittest.cc |
@@ -4,19 +4,12 @@ |
#include "chrome/browser/chromeos/session_length_limiter.h" |
-#include <queue> |
-#include <utility> |
-#include <vector> |
- |
-#include "base/callback.h" |
#include "base/compiler_specific.h" |
-#include "base/location.h" |
-#include "base/logging.h" |
#include "base/memory/ref_counted.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/prefs/testing_pref_service.h" |
-#include "base/single_thread_task_runner.h" |
#include "base/strings/string_number_conversions.h" |
+#include "base/test/test_mock_time_task_runner.h" |
#include "base/thread_task_runner_handle.h" |
#include "base/values.h" |
#include "chrome/common/pref_names.h" |
@@ -38,44 +31,6 @@ class MockSessionLengthLimiterDelegate : public SessionLengthLimiter::Delegate { |
MOCK_METHOD0(StopSession, void(void)); |
}; |
-// A SingleThreadTaskRunner that mocks the current time and allows it to be |
-// fast-forwarded. |
-class MockTimeSingleThreadTaskRunner : public base::SingleThreadTaskRunner { |
- public: |
- MockTimeSingleThreadTaskRunner(); |
- |
- // base::SingleThreadTaskRunner: |
- virtual bool RunsTasksOnCurrentThread() const override; |
- virtual bool PostDelayedTask(const tracked_objects::Location& from_here, |
- const base::Closure& task, |
- base::TimeDelta delay) override; |
- virtual bool PostNonNestableDelayedTask( |
- const tracked_objects::Location& from_here, |
- const base::Closure& task, |
- base::TimeDelta delay) override; |
- |
- const base::TimeTicks& GetCurrentTime() const; |
- |
- void FastForwardBy(const base::TimeDelta& time_delta); |
- void FastForwardUntilNoTasksRemain(); |
- |
- private: |
- // Strict weak temporal ordering of tasks. |
- class TemporalOrder { |
- public: |
- bool operator()( |
- const std::pair<base::TimeTicks, base::Closure>& first_task, |
- const std::pair<base::TimeTicks, base::Closure>& second_task) const; |
- }; |
- |
- virtual ~MockTimeSingleThreadTaskRunner(); |
- |
- base::TimeTicks now_; |
- std::priority_queue<std::pair<base::TimeTicks, base::Closure>, |
- std::vector<std::pair<base::TimeTicks, base::Closure> >, |
- TemporalOrder> tasks_; |
-}; |
- |
} // namespace |
class SessionLengthLimiterTest : public testing::Test { |
@@ -114,7 +69,7 @@ class SessionLengthLimiterTest : public testing::Test { |
void DestroySessionLengthLimiter(); |
- scoped_refptr<MockTimeSingleThreadTaskRunner> runner_; |
+ scoped_refptr<base::TestMockTimeTaskRunner> runner_; |
base::TimeTicks session_start_time_; |
base::TimeTicks session_stop_time_; |
@@ -127,64 +82,6 @@ class SessionLengthLimiterTest : public testing::Test { |
scoped_ptr<SessionLengthLimiter> session_length_limiter_; |
}; |
-MockTimeSingleThreadTaskRunner::MockTimeSingleThreadTaskRunner() |
- : now_(base::TimeTicks::FromInternalValue(1000)) { |
-} |
- |
-bool MockTimeSingleThreadTaskRunner::RunsTasksOnCurrentThread() const { |
- return true; |
-} |
- |
-bool MockTimeSingleThreadTaskRunner::PostDelayedTask( |
- const tracked_objects::Location& from_here, |
- const base::Closure& task, |
- base::TimeDelta delay) { |
- tasks_.push(std::pair<base::TimeTicks, base::Closure>(now_ + delay, task)); |
- return true; |
-} |
- |
-bool MockTimeSingleThreadTaskRunner::PostNonNestableDelayedTask( |
- const tracked_objects::Location& from_here, |
- const base::Closure& task, |
- base::TimeDelta delay) { |
- NOTREACHED(); |
- return false; |
-} |
- |
-const base::TimeTicks& MockTimeSingleThreadTaskRunner::GetCurrentTime() const { |
- return now_; |
-} |
- |
-void MockTimeSingleThreadTaskRunner::FastForwardBy( |
- const base::TimeDelta& time_delta) { |
- const base::TimeTicks latest = now_ + time_delta; |
- while (!tasks_.empty() && tasks_.top().first <= latest) { |
- now_ = tasks_.top().first; |
- base::Closure task = tasks_.top().second; |
- tasks_.pop(); |
- task.Run(); |
- } |
- now_ = latest; |
-} |
- |
-void MockTimeSingleThreadTaskRunner::FastForwardUntilNoTasksRemain() { |
- while (!tasks_.empty()) { |
- now_ = tasks_.top().first; |
- base::Closure task = tasks_.top().second; |
- tasks_.pop(); |
- task.Run(); |
- } |
-} |
- |
-bool MockTimeSingleThreadTaskRunner::TemporalOrder::operator()( |
- const std::pair<base::TimeTicks, base::Closure>& first_task, |
- const std::pair<base::TimeTicks, base::Closure>& second_task) const { |
- return first_task.first > second_task.first; |
-} |
- |
-MockTimeSingleThreadTaskRunner::~MockTimeSingleThreadTaskRunner() { |
-} |
- |
SessionLengthLimiterTest::SessionLengthLimiterTest() |
: user_activity_seen_(false), |
delegate_(NULL) { |
@@ -193,7 +90,8 @@ SessionLengthLimiterTest::SessionLengthLimiterTest() |
void SessionLengthLimiterTest::SetUp() { |
TestingBrowserProcess::GetGlobal()->SetLocalState(&local_state_); |
SessionLengthLimiter::RegisterPrefs(local_state_.registry()); |
- runner_ = new MockTimeSingleThreadTaskRunner; |
+ runner_ = new base::TestMockTimeTaskRunner; |
+ runner_->FastForwardBy(base::TimeDelta::FromInternalValue(1000)); |
} |
void SessionLengthLimiterTest::TearDown() { |
@@ -274,7 +172,7 @@ void SessionLengthLimiterTest:: |
UpdateSessionStartTimeIfWaitingForUserActivity() { |
if (!user_activity_seen_ && |
local_state_.GetBoolean(prefs::kSessionWaitForInitialUserActivity)) { |
- session_start_time_ = runner_->GetCurrentTime(); |
+ session_start_time_ = runner_->GetCurrentMockTime(); |
} |
} |
@@ -286,19 +184,19 @@ void SessionLengthLimiterTest::ExpectStopSession() { |
} |
void SessionLengthLimiterTest::SaveSessionStopTime() { |
- session_stop_time_ = runner_->GetCurrentTime(); |
+ session_stop_time_ = runner_->GetCurrentMockTime(); |
} |
void SessionLengthLimiterTest::CreateSessionLengthLimiter( |
bool browser_restarted) { |
user_activity_seen_ = false; |
- session_start_time_ = runner_->GetCurrentTime(); |
+ session_start_time_ = runner_->GetCurrentMockTime(); |
EXPECT_FALSE(delegate_); |
delegate_ = new NiceMock<MockSessionLengthLimiterDelegate>; |
ON_CALL(*delegate_, GetCurrentTime()) |
- .WillByDefault(Invoke(runner_.get(), |
- &MockTimeSingleThreadTaskRunner::GetCurrentTime)); |
+ .WillByDefault(Invoke( |
+ runner_.get(), &base::TestMockTimeTaskRunner::GetCurrentMockTime)); |
EXPECT_CALL(*delegate_, StopSession()).Times(0); |
session_length_limiter_.reset( |
new SessionLengthLimiter(delegate_, browser_restarted)); |
@@ -387,7 +285,7 @@ TEST_F(SessionLengthLimiterTest, StartWaitForInitialUserActivity) { |
// Pref indicating user activity not set. Session start time in the future. |
ClearSessionUserActivitySeenPref(); |
SetSessionStartTimePref( |
- runner_->GetCurrentTime() + base::TimeDelta::FromHours(2)); |
+ runner_->GetCurrentMockTime() + base::TimeDelta::FromHours(2)); |
CreateSessionLengthLimiter(false); |
EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); |
EXPECT_FALSE(IsSessionStartTimePrefSet()); |
@@ -396,7 +294,7 @@ TEST_F(SessionLengthLimiterTest, StartWaitForInitialUserActivity) { |
// Pref indicating user activity set. Session start time in the future. |
SetSessionUserActivitySeenPref(true); |
SetSessionStartTimePref( |
- runner_->GetCurrentTime() + base::TimeDelta::FromHours(2)); |
+ runner_->GetCurrentMockTime() + base::TimeDelta::FromHours(2)); |
CreateSessionLengthLimiter(false); |
EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); |
EXPECT_FALSE(IsSessionStartTimePrefSet()); |
@@ -405,7 +303,7 @@ TEST_F(SessionLengthLimiterTest, StartWaitForInitialUserActivity) { |
// Pref indicating user activity not set. Session start time valid. |
ClearSessionUserActivitySeenPref(); |
SetSessionStartTimePref( |
- runner_->GetCurrentTime() - base::TimeDelta::FromHours(2)); |
+ runner_->GetCurrentMockTime() - base::TimeDelta::FromHours(2)); |
CreateSessionLengthLimiter(false); |
EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); |
EXPECT_FALSE(IsSessionStartTimePrefSet()); |
@@ -414,7 +312,7 @@ TEST_F(SessionLengthLimiterTest, StartWaitForInitialUserActivity) { |
// Pref indicating user activity set. Session start time valid. |
SetSessionUserActivitySeenPref(true); |
SetSessionStartTimePref( |
- runner_->GetCurrentTime() - base::TimeDelta::FromHours(2)); |
+ runner_->GetCurrentMockTime() - base::TimeDelta::FromHours(2)); |
CreateSessionLengthLimiter(false); |
EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); |
EXPECT_FALSE(IsSessionStartTimePrefSet()); |
@@ -447,7 +345,7 @@ TEST_F(SessionLengthLimiterTest, RestartDoNotWaitForInitialUserActivity) { |
// Pref indicating user activity not set. Session start time in the future. |
ClearSessionUserActivitySeenPref(); |
SetSessionStartTimePref( |
- runner_->GetCurrentTime() + base::TimeDelta::FromHours(2)); |
+ runner_->GetCurrentMockTime() + base::TimeDelta::FromHours(2)); |
CreateSessionLengthLimiter(true); |
EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); |
EXPECT_EQ(session_start_time_, GetSessionStartTimePref()); |
@@ -456,14 +354,14 @@ TEST_F(SessionLengthLimiterTest, RestartDoNotWaitForInitialUserActivity) { |
// Pref indicating user activity set. Session start time in the future. |
SetSessionUserActivitySeenPref(true); |
SetSessionStartTimePref( |
- runner_->GetCurrentTime() + base::TimeDelta::FromHours(2)); |
+ runner_->GetCurrentMockTime() + base::TimeDelta::FromHours(2)); |
CreateSessionLengthLimiter(true); |
EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); |
EXPECT_EQ(session_start_time_, GetSessionStartTimePref()); |
DestroySessionLengthLimiter(); |
const base::TimeTicks stored_session_start_time = |
- runner_->GetCurrentTime() - base::TimeDelta::FromHours(2); |
+ runner_->GetCurrentMockTime() - base::TimeDelta::FromHours(2); |
// Pref indicating user activity not set. Session start time valid. |
ClearSessionUserActivitySeenPref(); |
@@ -511,7 +409,7 @@ TEST_F(SessionLengthLimiterTest, RestartWaitForInitialUserActivity) { |
// Pref indicating user activity not set. Session start time in the future. |
ClearSessionUserActivitySeenPref(); |
SetSessionStartTimePref( |
- runner_->GetCurrentTime() + base::TimeDelta::FromHours(2)); |
+ runner_->GetCurrentMockTime() + base::TimeDelta::FromHours(2)); |
CreateSessionLengthLimiter(true); |
EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); |
EXPECT_FALSE(IsSessionStartTimePrefSet()); |
@@ -520,14 +418,14 @@ TEST_F(SessionLengthLimiterTest, RestartWaitForInitialUserActivity) { |
// Pref indicating user activity set. Session start time in the future. |
SetSessionUserActivitySeenPref(true); |
SetSessionStartTimePref( |
- runner_->GetCurrentTime() + base::TimeDelta::FromHours(2)); |
+ runner_->GetCurrentMockTime() + base::TimeDelta::FromHours(2)); |
CreateSessionLengthLimiter(true); |
EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); |
EXPECT_FALSE(IsSessionStartTimePrefSet()); |
DestroySessionLengthLimiter(); |
const base::TimeTicks stored_session_start_time = |
- runner_->GetCurrentTime() - base::TimeDelta::FromHours(2); |
+ runner_->GetCurrentMockTime() - base::TimeDelta::FromHours(2); |
// Pref indicating user activity not set. Session start time valid. |
ClearSessionUserActivitySeenPref(); |