| Index: chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_unittest.cc
|
| diff --git a/chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_unittest.cc b/chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_unittest.cc
|
| index beaf843eb41a1b80c6f4e193eb45764e82f4ccdb..c82a398527e186847fceb99997862475f7a39127 100644
|
| --- a/chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_unittest.cc
|
| +++ b/chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_unittest.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "base/memory/ref_counted.h"
|
| #include "base/prefs/pref_service.h"
|
| +#include "base/prefs/testing_pref_service.h"
|
| #include "base/test/simple_test_clock.h"
|
| #include "base/test/test_simple_task_runner.h"
|
| #include "base/thread_task_runner_handle.h"
|
| @@ -22,7 +23,7 @@
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| using testing::Mock;
|
| -using testing::ReturnRef;
|
| +using testing::Return;
|
| using testing::Sequence;
|
| using testing::_;
|
|
|
| @@ -44,6 +45,9 @@ class SAMLOfflineSigninLimiterTest : public testing::Test {
|
| void DestroyLimiter();
|
| void CreateLimiter();
|
|
|
| + void SetUpUserManager();
|
| + TestingPrefServiceSimple* GetTestingLocalState();
|
| +
|
| scoped_refptr<base::TestSimpleTaskRunner> runner_;
|
| base::ThreadTaskRunnerHandle runner_handle_;
|
|
|
| @@ -55,6 +59,8 @@ class SAMLOfflineSigninLimiterTest : public testing::Test {
|
|
|
| SAMLOfflineSigninLimiter* limiter_; // Owned.
|
|
|
| + TestingPrefServiceSimple testing_local_state_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(SAMLOfflineSigninLimiterTest);
|
| };
|
|
|
| @@ -88,6 +94,11 @@ void SAMLOfflineSigninLimiterTest::CreateLimiter() {
|
| limiter_ = new SAMLOfflineSigninLimiter(profile_.get(), &clock_);
|
| }
|
|
|
| +void SAMLOfflineSigninLimiterTest::SetUpUserManager() {
|
| + EXPECT_CALL(*user_manager_, GetLocalState())
|
| + .WillRepeatedly(Return(GetTestingLocalState()));
|
| +}
|
| +
|
| void SAMLOfflineSigninLimiterTest::SetUp() {
|
| profile_.reset(new TestingProfile);
|
|
|
| @@ -95,6 +106,13 @@ void SAMLOfflineSigninLimiterTest::SetUp() {
|
| user_manager_->AddUser(kTestUser);
|
| profile_->set_profile_name(kTestUser);
|
| clock_.Advance(base::TimeDelta::FromHours(1));
|
| +
|
| + user_manager_->RegisterPrefs(GetTestingLocalState()->registry());
|
| + SetUpUserManager();
|
| +}
|
| +
|
| +TestingPrefServiceSimple* SAMLOfflineSigninLimiterTest::GetTestingLocalState() {
|
| + return &testing_local_state_;
|
| }
|
|
|
| void SAMLOfflineSigninLimiterTest::TearDown() {
|
| @@ -130,6 +148,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLDefaultLimit) {
|
| // changed and the time of last login with SAML is not set.
|
| CreateLimiter();
|
| Mock::VerifyAndClearExpectations(user_manager_);
|
| + SetUpUserManager();
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(0);
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
|
| limiter_->SignedIn(UserContext::AUTH_FLOW_OFFLINE);
|
| @@ -174,6 +193,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLNoLimit) {
|
| // changed and the time of last login with SAML is not set.
|
| CreateLimiter();
|
| Mock::VerifyAndClearExpectations(user_manager_);
|
| + SetUpUserManager();
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(0);
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
|
| limiter_->SignedIn(UserContext::AUTH_FLOW_OFFLINE);
|
| @@ -218,6 +238,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLZeroLimit) {
|
| // changed and the time of last login with SAML is not set.
|
| CreateLimiter();
|
| Mock::VerifyAndClearExpectations(user_manager_);
|
| + SetUpUserManager();
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(0);
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
|
| limiter_->SignedIn(UserContext::AUTH_FLOW_OFFLINE);
|
| @@ -344,6 +365,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLDefaultLimit) {
|
| // login is cleared and the time of last login with SAML is updated.
|
| CreateLimiter();
|
| Mock::VerifyAndClearExpectations(user_manager_);
|
| + SetUpUserManager();
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(1);
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
|
| limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML);
|
| @@ -366,6 +388,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLDefaultLimit) {
|
| // time of last login with SAML are not changed.
|
| CreateLimiter();
|
| Mock::VerifyAndClearExpectations(user_manager_);
|
| + SetUpUserManager();
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(0);
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
|
| limiter_->SignedIn(UserContext::AUTH_FLOW_OFFLINE);
|
| @@ -383,6 +406,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLDefaultLimit) {
|
| // Allow the timer to fire. Verify that the flag enforcing online login is
|
| // set.
|
| Mock::VerifyAndClearExpectations(user_manager_);
|
| + SetUpUserManager();
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(0);
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(1);
|
| runner_->RunPendingTasks();
|
| @@ -418,6 +442,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLNoLimit) {
|
| // login is cleared and the time of last login with SAML is updated.
|
| CreateLimiter();
|
| Mock::VerifyAndClearExpectations(user_manager_);
|
| + SetUpUserManager();
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(1);
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
|
| limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML);
|
| @@ -440,6 +465,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLNoLimit) {
|
| // time of last login with SAML are not changed.
|
| CreateLimiter();
|
| Mock::VerifyAndClearExpectations(user_manager_);
|
| + SetUpUserManager();
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(0);
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
|
| limiter_->SignedIn(UserContext::AUTH_FLOW_OFFLINE);
|
| @@ -498,6 +524,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLSetLimitWhileLoggedIn) {
|
|
|
| // Set a zero time limit. Verify that the flag enforcing online login is set.
|
| Mock::VerifyAndClearExpectations(user_manager_);
|
| + SetUpUserManager();
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(0);
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(1);
|
| prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, 0);
|
| @@ -526,6 +553,7 @@ TEST_F(SAMLOfflineSigninLimiterTest, SAMLRemoveLimit) {
|
| // Allow the timer to fire. Verify that the flag enforcing online login is not
|
| // changed.
|
| Mock::VerifyAndClearExpectations(user_manager_);
|
| + SetUpUserManager();
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(0);
|
| EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
|
| runner_->RunUntilIdle();
|
|
|