Commit 1513b377 authored by Dominick Ng's avatar Dominick Ng Committed by Commit Bot

Remove some usage of base::MessageLoopCurrent::SetTaskRunner() in tests.

This is an expanded and leak-fixed reland of crrev.com/c/1177641 and
crrev.com/c/1176894, though it tackles the root of the problem rather than
working around it.

base::MessageLoopCurrent::SetTaskRunner() is deprecated since only owners of
the MessageLoop instance should replace its TaskRunner. Odd things happen in
tests when the message loop task runner is replaced and a profile is
instantiated. This CL removes some more usage of the method in tests where
there is interaction with a TestingProfile object.

BUG=616447

Change-Id: Ic2ad6eb2a8699f103e432af74ad9c71c1dd43656
Reviewed-on: https://chromium-review.googlesource.com/1179111
Commit-Queue: Dominick Ng <dominickn@chromium.org>
Reviewed-by: default avatarGreg Thompson <grt@chromium.org>
Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584249}
parent dbd5663d
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter.h" #include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter.h"
#include <string> #include <string>
#include <utility>
#include "base/bind.h" #include "base/bind.h"
#include "base/bind_helpers.h" #include "base/bind_helpers.h"
...@@ -78,21 +79,27 @@ void SAMLOfflineSigninLimiter::SignedIn(UserContext::AuthFlow auth_flow) { ...@@ -78,21 +79,27 @@ void SAMLOfflineSigninLimiter::SignedIn(UserContext::AuthFlow auth_flow) {
UpdateLimit(); UpdateLimit();
} }
void SAMLOfflineSigninLimiter::SetTimerForTesting(
std::unique_ptr<base::OneShotTimer> timer) {
offline_signin_limit_timer_ = std::move(timer);
}
void SAMLOfflineSigninLimiter::Shutdown() { void SAMLOfflineSigninLimiter::Shutdown() {
offline_signin_limit_timer_->Stop();
pref_change_registrar_.RemoveAll(); pref_change_registrar_.RemoveAll();
offline_signin_limit_timer_.reset();
} }
SAMLOfflineSigninLimiter::SAMLOfflineSigninLimiter(Profile* profile, SAMLOfflineSigninLimiter::SAMLOfflineSigninLimiter(Profile* profile,
base::Clock* clock) base::Clock* clock)
: profile_(profile), : profile_(profile),
clock_(clock ? clock : base::DefaultClock::GetInstance()) {} clock_(clock ? clock : base::DefaultClock::GetInstance()),
offline_signin_limit_timer_(std::make_unique<base::OneShotTimer>()) {}
SAMLOfflineSigninLimiter::~SAMLOfflineSigninLimiter() {} SAMLOfflineSigninLimiter::~SAMLOfflineSigninLimiter() {}
void SAMLOfflineSigninLimiter::UpdateLimit() { void SAMLOfflineSigninLimiter::UpdateLimit() {
// Stop the |offline_signin_limit_timer_|. // Stop the |offline_signin_limit_timer_|.
offline_signin_limit_timer_.reset(); offline_signin_limit_timer_->Stop();
PrefService* prefs = pref_change_registrar_.prefs(); PrefService* prefs = pref_change_registrar_.prefs();
const base::TimeDelta offline_signin_time_limit = const base::TimeDelta offline_signin_time_limit =
...@@ -126,7 +133,6 @@ void SAMLOfflineSigninLimiter::UpdateLimit() { ...@@ -126,7 +133,6 @@ void SAMLOfflineSigninLimiter::UpdateLimit() {
// Arm |offline_signin_limit_timer_| so that it sets the flag enforcing online // Arm |offline_signin_limit_timer_| so that it sets the flag enforcing online
// login when the limit expires. // login when the limit expires.
offline_signin_limit_timer_.reset(new base::OneShotTimer);
offline_signin_limit_timer_->Start( offline_signin_limit_timer_->Start(
FROM_HERE, offline_signin_time_limit - time_since_last_gaia_signin, this, FROM_HERE, offline_signin_time_limit - time_since_last_gaia_signin, this,
&SAMLOfflineSigninLimiter::ForceOnlineLogin); &SAMLOfflineSigninLimiter::ForceOnlineLogin);
...@@ -143,7 +149,7 @@ void SAMLOfflineSigninLimiter::ForceOnlineLogin() { ...@@ -143,7 +149,7 @@ void SAMLOfflineSigninLimiter::ForceOnlineLogin() {
user_manager::UserManager::Get()->SaveForceOnlineSignin(user->GetAccountId(), user_manager::UserManager::Get()->SaveForceOnlineSignin(user->GetAccountId(),
true); true);
RecordReauthReason(user->GetAccountId(), ReauthReason::SAML_REAUTH_POLICY); RecordReauthReason(user->GetAccountId(), ReauthReason::SAML_REAUTH_POLICY);
offline_signin_limit_timer_.reset(); offline_signin_limit_timer_->Stop();
} }
} // namespace chromeos } // namespace chromeos
...@@ -38,6 +38,9 @@ class SAMLOfflineSigninLimiter : public KeyedService { ...@@ -38,6 +38,9 @@ class SAMLOfflineSigninLimiter : public KeyedService {
// the type of authentication flow that the user went through. // the type of authentication flow that the user went through.
void SignedIn(UserContext::AuthFlow auth_flow); void SignedIn(UserContext::AuthFlow auth_flow);
// Allows a mock timer to be substituted for testing purposes.
void SetTimerForTesting(std::unique_ptr<base::OneShotTimer> timer);
// KeyedService: // KeyedService:
void Shutdown() override; void Shutdown() override;
......
...@@ -4,13 +4,14 @@ ...@@ -4,13 +4,14 @@
#include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter.h" #include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter.h"
#include <memory>
#include <utility>
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/ptr_util.h" #include "base/memory/ptr_util.h"
#include "base/memory/ref_counted.h"
#include "base/message_loop/message_loop_current.h"
#include "base/test/simple_test_clock.h" #include "base/test/simple_test_clock.h"
#include "base/test/test_simple_task_runner.h"
#include "base/time/clock.h" #include "base/time/clock.h"
#include "base/timer/mock_timer.h"
#include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_factory.h" #include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_factory.h"
#include "chrome/browser/chromeos/login/users/mock_user_manager.h" #include "chrome/browser/chromeos/login/users/mock_user_manager.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
...@@ -26,10 +27,10 @@ ...@@ -26,10 +27,10 @@
#include "testing/gmock/include/gmock/gmock.h" #include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
using testing::_;
using testing::Mock; using testing::Mock;
using testing::Return; using testing::Return;
using testing::Sequence; using testing::Sequence;
using testing::_;
namespace chromeos { namespace chromeos {
...@@ -59,13 +60,12 @@ class SAMLOfflineSigninLimiterTest : public testing::Test { ...@@ -59,13 +60,12 @@ class SAMLOfflineSigninLimiterTest : public testing::Test {
extensions::QuotaService::ScopedDisablePurgeForTesting extensions::QuotaService::ScopedDisablePurgeForTesting
disable_purge_for_testing_; disable_purge_for_testing_;
scoped_refptr<base::TestSimpleTaskRunner> runner_;
MockUserManager* user_manager_; // Not owned. MockUserManager* user_manager_; // Not owned.
user_manager::ScopedUserManager user_manager_enabler_; user_manager::ScopedUserManager user_manager_enabler_;
std::unique_ptr<TestingProfile> profile_; std::unique_ptr<TestingProfile> profile_;
base::SimpleTestClock clock_; base::SimpleTestClock clock_;
base::MockOneShotTimer* timer_; // Not owned.
SAMLOfflineSigninLimiter* limiter_; // Owned. SAMLOfflineSigninLimiter* limiter_; // Owned.
...@@ -75,10 +75,10 @@ class SAMLOfflineSigninLimiterTest : public testing::Test { ...@@ -75,10 +75,10 @@ class SAMLOfflineSigninLimiterTest : public testing::Test {
}; };
SAMLOfflineSigninLimiterTest::SAMLOfflineSigninLimiterTest() SAMLOfflineSigninLimiterTest::SAMLOfflineSigninLimiterTest()
: runner_(new base::TestSimpleTaskRunner), : user_manager_(new MockUserManager),
user_manager_(new MockUserManager),
user_manager_enabler_(base::WrapUnique(user_manager_)), user_manager_enabler_(base::WrapUnique(user_manager_)),
limiter_(NULL) {} timer_(nullptr),
limiter_(nullptr) {}
SAMLOfflineSigninLimiterTest::~SAMLOfflineSigninLimiterTest() { SAMLOfflineSigninLimiterTest::~SAMLOfflineSigninLimiterTest() {
DestroyLimiter(); DestroyLimiter();
...@@ -93,13 +93,17 @@ void SAMLOfflineSigninLimiterTest::DestroyLimiter() { ...@@ -93,13 +93,17 @@ void SAMLOfflineSigninLimiterTest::DestroyLimiter() {
if (limiter_) { if (limiter_) {
limiter_->Shutdown(); limiter_->Shutdown();
delete limiter_; delete limiter_;
limiter_ = NULL; limiter_ = nullptr;
timer_ = nullptr;
} }
} }
void SAMLOfflineSigninLimiterTest::CreateLimiter() { void SAMLOfflineSigninLimiterTest::CreateLimiter() {
DestroyLimiter(); DestroyLimiter();
limiter_ = new SAMLOfflineSigninLimiter(profile_.get(), &clock_); limiter_ = new SAMLOfflineSigninLimiter(profile_.get(), &clock_);
auto timer = std::make_unique<base::MockOneShotTimer>();
timer_ = timer.get();
limiter_->SetTimerForTesting(std::move(timer));
} }
void SAMLOfflineSigninLimiterTest::SetUpUserManager() { void SAMLOfflineSigninLimiterTest::SetUpUserManager() {
...@@ -108,7 +112,6 @@ void SAMLOfflineSigninLimiterTest::SetUpUserManager() { ...@@ -108,7 +112,6 @@ void SAMLOfflineSigninLimiterTest::SetUpUserManager() {
} }
void SAMLOfflineSigninLimiterTest::SetUp() { void SAMLOfflineSigninLimiterTest::SetUp() {
base::MessageLoopCurrent::Get()->SetTaskRunner(runner_);
profile_.reset(new TestingProfile); profile_.reset(new TestingProfile);
SAMLOfflineSigninLimiterFactory::SetClockForTesting(&clock_); SAMLOfflineSigninLimiterFactory::SetClockForTesting(&clock_);
...@@ -125,7 +128,7 @@ TestingPrefServiceSimple* SAMLOfflineSigninLimiterTest::GetTestingLocalState() { ...@@ -125,7 +128,7 @@ TestingPrefServiceSimple* SAMLOfflineSigninLimiterTest::GetTestingLocalState() {
} }
void SAMLOfflineSigninLimiterTest::TearDown() { void SAMLOfflineSigninLimiterTest::TearDown() {
SAMLOfflineSigninLimiterFactory::SetClockForTesting(NULL); SAMLOfflineSigninLimiterFactory::SetClockForTesting(nullptr);
} }
TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLDefaultLimit) { TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLDefaultLimit) {
...@@ -150,8 +153,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLDefaultLimit) { ...@@ -150,8 +153,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLDefaultLimit) {
EXPECT_FALSE(pref->HasUserSetting()); EXPECT_FALSE(pref->HasUserSetting());
// Verify that no timer is running. // Verify that no timer is running.
EXPECT_FALSE(runner_->HasPendingTask()); EXPECT_FALSE(timer_->IsRunning());
// Log out. Verify that the flag enforcing online login is not set. // Log out. Verify that the flag enforcing online login is not set.
DestroyLimiter(); DestroyLimiter();
...@@ -171,7 +173,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLDefaultLimit) { ...@@ -171,7 +173,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLDefaultLimit) {
EXPECT_FALSE(pref->HasUserSetting()); EXPECT_FALSE(pref->HasUserSetting());
// Verify that no timer is running. // Verify that no timer is running.
EXPECT_FALSE(runner_->HasPendingTask()); EXPECT_FALSE(timer_->IsRunning());
} }
TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLNoLimit) { TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLNoLimit) {
...@@ -199,7 +201,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLNoLimit) { ...@@ -199,7 +201,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLNoLimit) {
EXPECT_FALSE(pref->HasUserSetting()); EXPECT_FALSE(pref->HasUserSetting());
// Verify that no timer is running. // Verify that no timer is running.
EXPECT_FALSE(runner_->HasPendingTask()); EXPECT_FALSE(timer_->IsRunning());
// Log out. Verify that the flag enforcing online login is not set. // Log out. Verify that the flag enforcing online login is not set.
DestroyLimiter(); DestroyLimiter();
...@@ -220,7 +222,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLNoLimit) { ...@@ -220,7 +222,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLNoLimit) {
EXPECT_FALSE(pref->HasUserSetting()); EXPECT_FALSE(pref->HasUserSetting());
// Verify that no timer is running. // Verify that no timer is running.
EXPECT_FALSE(runner_->HasPendingTask()); EXPECT_FALSE(timer_->IsRunning());
} }
TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLZeroLimit) { TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLZeroLimit) {
...@@ -248,7 +250,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLZeroLimit) { ...@@ -248,7 +250,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLZeroLimit) {
EXPECT_FALSE(pref->HasUserSetting()); EXPECT_FALSE(pref->HasUserSetting());
// Verify that no timer is running. // Verify that no timer is running.
EXPECT_FALSE(runner_->HasPendingTask()); EXPECT_FALSE(timer_->IsRunning());
// Log out. Verify that the flag enforcing online login is not set. // Log out. Verify that the flag enforcing online login is not set.
DestroyLimiter(); DestroyLimiter();
...@@ -269,7 +271,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLZeroLimit) { ...@@ -269,7 +271,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLZeroLimit) {
EXPECT_FALSE(pref->HasUserSetting()); EXPECT_FALSE(pref->HasUserSetting());
// Verify that no timer is running. // Verify that no timer is running.
EXPECT_FALSE(runner_->HasPendingTask()); EXPECT_FALSE(timer_->IsRunning());
} }
TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLSetLimitWhileLoggedIn) { TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLSetLimitWhileLoggedIn) {
...@@ -297,13 +299,13 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLSetLimitWhileLoggedIn) { ...@@ -297,13 +299,13 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLSetLimitWhileLoggedIn) {
EXPECT_FALSE(pref->HasUserSetting()); EXPECT_FALSE(pref->HasUserSetting());
// Verify that no timer is running. // Verify that no timer is running.
EXPECT_FALSE(runner_->HasPendingTask()); EXPECT_FALSE(timer_->IsRunning());
// Set a zero time limit. // Set a zero time limit.
prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, 0); prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, 0);
// Verify that no timer is running. // Verify that no timer is running.
EXPECT_FALSE(runner_->HasPendingTask()); EXPECT_FALSE(timer_->IsRunning());
} }
TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLRemoveLimitWhileLoggedIn) { TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLRemoveLimitWhileLoggedIn) {
...@@ -328,13 +330,13 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLRemoveLimitWhileLoggedIn) { ...@@ -328,13 +330,13 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLRemoveLimitWhileLoggedIn) {
EXPECT_FALSE(pref->HasUserSetting()); EXPECT_FALSE(pref->HasUserSetting());
// Verify that no timer is running. // Verify that no timer is running.
EXPECT_FALSE(runner_->HasPendingTask()); EXPECT_FALSE(timer_->IsRunning());
// Remove the time limit. // Remove the time limit.
prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, -1); prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, -1);
// Verify that no timer is running. // Verify that no timer is running.
EXPECT_FALSE(runner_->HasPendingTask()); EXPECT_FALSE(timer_->IsRunning());
} }
TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLLogInWithExpiredLimit) { TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLLogInWithExpiredLimit) {
...@@ -362,7 +364,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLLogInWithExpiredLimit) { ...@@ -362,7 +364,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLLogInWithExpiredLimit) {
EXPECT_FALSE(pref->HasUserSetting()); EXPECT_FALSE(pref->HasUserSetting());
// Verify that no timer is running. // Verify that no timer is running.
EXPECT_FALSE(runner_->HasPendingTask()); EXPECT_FALSE(timer_->IsRunning());
} }
TEST_F(SAMLOfflineSigninLimiterTest, SAMLDefaultLimit) { TEST_F(SAMLOfflineSigninLimiterTest, SAMLDefaultLimit) {
...@@ -382,7 +384,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLDefaultLimit) { ...@@ -382,7 +384,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLDefaultLimit) {
EXPECT_EQ(clock_.Now(), last_gaia_signin_time); EXPECT_EQ(clock_.Now(), last_gaia_signin_time);
// Verify that the timer is running. // Verify that the timer is running.
EXPECT_TRUE(runner_->HasPendingTask()); EXPECT_TRUE(timer_->IsRunning());
// Log out. Verify that the flag enforcing online login is not set. // Log out. Verify that the flag enforcing online login is not set.
DestroyLimiter(); DestroyLimiter();
...@@ -406,7 +408,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLDefaultLimit) { ...@@ -406,7 +408,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLDefaultLimit) {
EXPECT_EQ(clock_.Now(), last_gaia_signin_time); EXPECT_EQ(clock_.Now(), last_gaia_signin_time);
// Verify that the timer is running. // Verify that the timer is running.
EXPECT_TRUE(runner_->HasPendingTask()); EXPECT_TRUE(timer_->IsRunning());
// Log out. Verify that the flag enforcing online login is not set. // Log out. Verify that the flag enforcing online login is not set.
DestroyLimiter(); DestroyLimiter();
...@@ -431,7 +433,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLDefaultLimit) { ...@@ -431,7 +433,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLDefaultLimit) {
EXPECT_EQ(gaia_signin_time, last_gaia_signin_time); EXPECT_EQ(gaia_signin_time, last_gaia_signin_time);
// Verify that the timer is running. // Verify that the timer is running.
EXPECT_TRUE(runner_->HasPendingTask()); EXPECT_TRUE(timer_->IsRunning());
// Advance time by four weeks. // Advance time by four weeks.
clock_.Advance(base::TimeDelta::FromDays(28)); // 4 weeks. clock_.Advance(base::TimeDelta::FromDays(28)); // 4 weeks.
...@@ -444,7 +446,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLDefaultLimit) { ...@@ -444,7 +446,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLDefaultLimit) {
.Times(0); .Times(0);
EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true)) EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
.Times(1); .Times(1);
runner_->RunPendingTasks(); timer_->Fire();
} }
TEST_F(SAMLOfflineSigninLimiterTest, SAMLNoLimit) { TEST_F(SAMLOfflineSigninLimiterTest, SAMLNoLimit) {
...@@ -467,7 +469,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLNoLimit) { ...@@ -467,7 +469,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLNoLimit) {
EXPECT_EQ(clock_.Now(), last_gaia_signin_time); EXPECT_EQ(clock_.Now(), last_gaia_signin_time);
// Verify that no timer is running. // Verify that no timer is running.
EXPECT_FALSE(runner_->HasPendingTask()); EXPECT_FALSE(timer_->IsRunning());
// Log out. Verify that the flag enforcing online login is not set. // Log out. Verify that the flag enforcing online login is not set.
DestroyLimiter(); DestroyLimiter();
...@@ -491,7 +493,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLNoLimit) { ...@@ -491,7 +493,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLNoLimit) {
EXPECT_EQ(clock_.Now(), last_gaia_signin_time); EXPECT_EQ(clock_.Now(), last_gaia_signin_time);
// Verify that no timer is running. // Verify that no timer is running.
EXPECT_FALSE(runner_->HasPendingTask()); EXPECT_FALSE(timer_->IsRunning());
// Log out. Verify that the flag enforcing online login is not set. // Log out. Verify that the flag enforcing online login is not set.
DestroyLimiter(); DestroyLimiter();
...@@ -516,7 +518,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLNoLimit) { ...@@ -516,7 +518,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLNoLimit) {
EXPECT_EQ(gaia_signin_time, last_gaia_signin_time); EXPECT_EQ(gaia_signin_time, last_gaia_signin_time);
// Verify that no timer is running. // Verify that no timer is running.
EXPECT_FALSE(runner_->HasPendingTask()); EXPECT_FALSE(timer_->IsRunning());
} }
TEST_F(SAMLOfflineSigninLimiterTest, SAMLZeroLimit) { TEST_F(SAMLOfflineSigninLimiterTest, SAMLZeroLimit) {
...@@ -563,7 +565,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLSetLimitWhileLoggedIn) { ...@@ -563,7 +565,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLSetLimitWhileLoggedIn) {
EXPECT_EQ(clock_.Now(), last_gaia_signin_time); EXPECT_EQ(clock_.Now(), last_gaia_signin_time);
// Verify that no timer is running. // Verify that no timer is running.
EXPECT_FALSE(runner_->HasPendingTask()); EXPECT_FALSE(timer_->IsRunning());
// Set a zero time limit. Verify that the flag enforcing online login is set. // Set a zero time limit. Verify that the flag enforcing online login is set.
Mock::VerifyAndClearExpectations(user_manager_); Mock::VerifyAndClearExpectations(user_manager_);
...@@ -592,7 +594,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLRemoveLimit) { ...@@ -592,7 +594,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLRemoveLimit) {
EXPECT_EQ(clock_.Now(), last_gaia_signin_time); EXPECT_EQ(clock_.Now(), last_gaia_signin_time);
// Verify that the timer is running. // Verify that the timer is running.
EXPECT_TRUE(runner_->HasPendingTask()); EXPECT_TRUE(timer_->IsRunning());
// Remove the time limit. // Remove the time limit.
prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, -1); prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, -1);
...@@ -605,7 +607,6 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLRemoveLimit) { ...@@ -605,7 +607,6 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLRemoveLimit) {
.Times(0); .Times(0);
EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true)) EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
.Times(0); .Times(0);
runner_->RunUntilIdle();
} }
TEST_F(SAMLOfflineSigninLimiterTest, SAMLLogInWithExpiredLimit) { TEST_F(SAMLOfflineSigninLimiterTest, SAMLLogInWithExpiredLimit) {
...@@ -632,7 +633,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLLogInWithExpiredLimit) { ...@@ -632,7 +633,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLLogInWithExpiredLimit) {
EXPECT_EQ(clock_.Now(), last_gaia_signin_time); EXPECT_EQ(clock_.Now(), last_gaia_signin_time);
// Verify that the timer is running. // Verify that the timer is running.
EXPECT_TRUE(runner_->HasPendingTask()); EXPECT_TRUE(timer_->IsRunning());
} }
TEST_F(SAMLOfflineSigninLimiterTest, SAMLLogInOfflineWithExpiredLimit) { TEST_F(SAMLOfflineSigninLimiterTest, SAMLLogInOfflineWithExpiredLimit) {
......
...@@ -7,10 +7,8 @@ ...@@ -7,10 +7,8 @@
#include <utility> #include <utility>
#include "base/macros.h" #include "base/macros.h"
#include "base/message_loop/message_loop_current.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "base/test/test_reg_util_win.h" #include "base/test/test_reg_util_win.h"
#include "base/test/test_simple_task_runner.h"
#include "base/win/registry.h" #include "base/win/registry.h"
#include "chrome/browser/prefs/browser_prefs.h" #include "chrome/browser/prefs/browser_prefs.h"
#include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_browser_process.h"
...@@ -37,12 +35,10 @@ class PlatformStateStoreWinTest : public ::testing::Test { ...@@ -37,12 +35,10 @@ class PlatformStateStoreWinTest : public ::testing::Test {
protected: protected:
PlatformStateStoreWinTest() PlatformStateStoreWinTest()
: profile_(nullptr), : profile_(nullptr),
task_runner_(new base::TestSimpleTaskRunner()),
profile_manager_(TestingBrowserProcess::GetGlobal()) {} profile_manager_(TestingBrowserProcess::GetGlobal()) {}
void SetUp() override { void SetUp() override {
::testing::Test::SetUp(); ::testing::Test::SetUp();
base::MessageLoopCurrent::Get()->SetTaskRunner(task_runner_);
ASSERT_NO_FATAL_FAILURE( ASSERT_NO_FATAL_FAILURE(
registry_override_manager_.OverrideRegistry(HKEY_CURRENT_USER)); registry_override_manager_.OverrideRegistry(HKEY_CURRENT_USER));
ASSERT_TRUE(profile_manager_.SetUp()); ASSERT_TRUE(profile_manager_.SetUp());
...@@ -118,7 +114,6 @@ class PlatformStateStoreWinTest : public ::testing::Test { ...@@ -118,7 +114,6 @@ class PlatformStateStoreWinTest : public ::testing::Test {
private: private:
content::TestBrowserThreadBundle thread_bundle_; content::TestBrowserThreadBundle thread_bundle_;
registry_util::RegistryOverrideManager registry_override_manager_; registry_util::RegistryOverrideManager registry_override_manager_;
scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
TestingProfileManager profile_manager_; TestingProfileManager profile_manager_;
DISALLOW_COPY_AND_ASSIGN(PlatformStateStoreWinTest); DISALLOW_COPY_AND_ASSIGN(PlatformStateStoreWinTest);
......
...@@ -10,10 +10,8 @@ ...@@ -10,10 +10,8 @@
#include "base/json/json_file_value_serializer.h" #include "base/json/json_file_value_serializer.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "base/message_loop/message_loop_current.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "base/test/test_simple_task_runner.h" #include "base/test/test_simple_task_runner.h"
#include "base/threading/thread_task_runner_handle.h"
#include "base/values.h" #include "base/values.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "chrome/browser/prefs/browser_prefs.h" #include "chrome/browser/prefs/browser_prefs.h"
...@@ -80,7 +78,6 @@ class StateStoreTest : public PlatformStateStoreTestBase { ...@@ -80,7 +78,6 @@ class StateStoreTest : public PlatformStateStoreTestBase {
void SetUp() override { void SetUp() override {
PlatformStateStoreTestBase::SetUp(); PlatformStateStoreTestBase::SetUp();
base::MessageLoopCurrent::Get()->SetTaskRunner(task_runner_);
ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
ASSERT_TRUE(profile_manager_.SetUp()); ASSERT_TRUE(profile_manager_.SetUp());
CreateProfile(); CreateProfile();
...@@ -93,6 +90,14 @@ class StateStoreTest : public PlatformStateStoreTestBase { ...@@ -93,6 +90,14 @@ class StateStoreTest : public PlatformStateStoreTestBase {
} }
} }
// Commits a pending write (which posts a task to task_runner_) and waits for
// it to finish.
void CommitWrite() {
ASSERT_NE(nullptr, profile_);
profile_->GetPrefs()->CommitPendingWrite();
task_runner_->RunUntilIdle();
}
// Removes the safebrowsing.incidents_sent preference from the profile's pref // Removes the safebrowsing.incidents_sent preference from the profile's pref
// store. // store.
void TrimPref() { void TrimPref() {
...@@ -208,8 +213,8 @@ TEST_F(StateStoreTest, ClearAll) { ...@@ -208,8 +213,8 @@ TEST_F(StateStoreTest, ClearAll) {
ASSERT_FALSE(state_store.HasBeenReported(data.type, data.key, data.digest)); ASSERT_FALSE(state_store.HasBeenReported(data.type, data.key, data.digest));
} }
// Run tasks to write prefs out to the JsonPrefStore. // Write prefs out to the JsonPrefStore.
task_runner_->RunUntilIdle(); CommitWrite();
// Delete the profile. // Delete the profile.
DeleteProfile(); DeleteProfile();
...@@ -234,7 +239,7 @@ TEST_F(StateStoreTest, Persistence) { ...@@ -234,7 +239,7 @@ TEST_F(StateStoreTest, Persistence) {
} }
// Run tasks to write prefs out to the JsonPrefStore. // Run tasks to write prefs out to the JsonPrefStore.
task_runner_->RunUntilIdle(); CommitWrite();
// Delete the profile. // Delete the profile.
DeleteProfile(); DeleteProfile();
...@@ -257,8 +262,8 @@ TEST_F(StateStoreTest, PersistenceWithStoreDelete) { ...@@ -257,8 +262,8 @@ TEST_F(StateStoreTest, PersistenceWithStoreDelete) {
transaction.MarkAsReported(data.type, data.key, data.digest); transaction.MarkAsReported(data.type, data.key, data.digest);
} }
// Run tasks to write prefs out to the JsonPrefStore. // Write prefs out to the JsonPrefStore.
task_runner_->RunUntilIdle(); CommitWrite();
// Delete the profile. // Delete the profile.
DeleteProfile(); DeleteProfile();
......
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