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

Side by Side Diff: chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_unittest.cc

Issue 1425093004: Revert of This CL replaces user_manager::UserID with AccountId. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@468875--Chrome-OS-handles-deletion-of-Gmail-account-poorly--Create-AccountID-structure-part2--user_names
Patch Set: Created 5 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter.h" 5 #include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter.h"
6 6
7 #include "base/memory/ref_counted.h" 7 #include "base/memory/ref_counted.h"
8 #include "base/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
9 #include "base/prefs/testing_pref_service.h" 9 #include "base/prefs/testing_pref_service.h"
10 #include "base/test/simple_test_clock.h" 10 #include "base/test/simple_test_clock.h"
(...skipping 28 matching lines...) Expand all
39 ~SAMLOfflineSigninLimiterTest() override; 39 ~SAMLOfflineSigninLimiterTest() override;
40 40
41 // testing::Test: 41 // testing::Test:
42 void SetUp() override; 42 void SetUp() override;
43 void TearDown() override; 43 void TearDown() override;
44 44
45 void DestroyLimiter(); 45 void DestroyLimiter();
46 void CreateLimiter(); 46 void CreateLimiter();
47 47
48 void SetUpUserManager(); 48 void SetUpUserManager();
49
50 const AccountId test_account_id_ = AccountId::FromUserEmail(kTestUser);
51
52 TestingPrefServiceSimple* GetTestingLocalState(); 49 TestingPrefServiceSimple* GetTestingLocalState();
53 50
54 scoped_refptr<base::TestSimpleTaskRunner> runner_; 51 scoped_refptr<base::TestSimpleTaskRunner> runner_;
55 base::ThreadTaskRunnerHandle runner_handle_; 52 base::ThreadTaskRunnerHandle runner_handle_;
56 53
57 MockUserManager* user_manager_; // Not owned. 54 MockUserManager* user_manager_; // Not owned.
58 ScopedUserManagerEnabler user_manager_enabler_; 55 ScopedUserManagerEnabler user_manager_enabler_;
59 56
60 scoped_ptr<TestingProfile> profile_; 57 scoped_ptr<TestingProfile> profile_;
61 base::SimpleTestClock clock_; 58 base::SimpleTestClock clock_;
62 59
63 SAMLOfflineSigninLimiter* limiter_; // Owned. 60 SAMLOfflineSigninLimiter* limiter_; // Owned.
64 61
65 TestingPrefServiceSimple testing_local_state_; 62 TestingPrefServiceSimple testing_local_state_;
66 63
67 DISALLOW_COPY_AND_ASSIGN(SAMLOfflineSigninLimiterTest); 64 DISALLOW_COPY_AND_ASSIGN(SAMLOfflineSigninLimiterTest);
68 }; 65 };
69 66
70 SAMLOfflineSigninLimiterTest::SAMLOfflineSigninLimiterTest() 67 SAMLOfflineSigninLimiterTest::SAMLOfflineSigninLimiterTest()
71 : runner_(new base::TestSimpleTaskRunner), 68 : runner_(new base::TestSimpleTaskRunner),
72 runner_handle_(runner_), 69 runner_handle_(runner_),
73 user_manager_(new MockUserManager), 70 user_manager_(new MockUserManager),
74 user_manager_enabler_(user_manager_), 71 user_manager_enabler_(user_manager_),
75 limiter_(NULL) {} 72 limiter_(NULL) {
73 }
76 74
77 SAMLOfflineSigninLimiterTest::~SAMLOfflineSigninLimiterTest() { 75 SAMLOfflineSigninLimiterTest::~SAMLOfflineSigninLimiterTest() {
78 DestroyLimiter(); 76 DestroyLimiter();
79 Mock::VerifyAndClearExpectations(user_manager_); 77 Mock::VerifyAndClearExpectations(user_manager_);
80 EXPECT_CALL(*user_manager_, Shutdown()).Times(1); 78 EXPECT_CALL(*user_manager_, Shutdown()).Times(1);
81 EXPECT_CALL(*user_manager_, RemoveSessionStateObserver(_)).Times(1); 79 EXPECT_CALL(*user_manager_, RemoveSessionStateObserver(_)).Times(1);
82 profile_.reset(); 80 profile_.reset();
83 TestingBrowserProcess::DeleteInstance(); 81 TestingBrowserProcess::DeleteInstance();
84 } 82 }
85 83
(...skipping 12 matching lines...) Expand all
98 96
99 void SAMLOfflineSigninLimiterTest::SetUpUserManager() { 97 void SAMLOfflineSigninLimiterTest::SetUpUserManager() {
100 EXPECT_CALL(*user_manager_, GetLocalState()) 98 EXPECT_CALL(*user_manager_, GetLocalState())
101 .WillRepeatedly(Return(GetTestingLocalState())); 99 .WillRepeatedly(Return(GetTestingLocalState()));
102 } 100 }
103 101
104 void SAMLOfflineSigninLimiterTest::SetUp() { 102 void SAMLOfflineSigninLimiterTest::SetUp() {
105 profile_.reset(new TestingProfile); 103 profile_.reset(new TestingProfile);
106 104
107 SAMLOfflineSigninLimiterFactory::SetClockForTesting(&clock_); 105 SAMLOfflineSigninLimiterFactory::SetClockForTesting(&clock_);
108 user_manager_->AddUser(test_account_id_); 106 user_manager_->AddUser(kTestUser);
109 profile_->set_profile_name(kTestUser); 107 profile_->set_profile_name(kTestUser);
110 clock_.Advance(base::TimeDelta::FromHours(1)); 108 clock_.Advance(base::TimeDelta::FromHours(1));
111 109
112 user_manager_->RegisterPrefs(GetTestingLocalState()->registry()); 110 user_manager_->RegisterPrefs(GetTestingLocalState()->registry());
113 SetUpUserManager(); 111 SetUpUserManager();
114 } 112 }
115 113
116 TestingPrefServiceSimple* SAMLOfflineSigninLimiterTest::GetTestingLocalState() { 114 TestingPrefServiceSimple* SAMLOfflineSigninLimiterTest::GetTestingLocalState() {
117 return &testing_local_state_; 115 return &testing_local_state_;
118 } 116 }
119 117
120 void SAMLOfflineSigninLimiterTest::TearDown() { 118 void SAMLOfflineSigninLimiterTest::TearDown() {
121 SAMLOfflineSigninLimiterFactory::SetClockForTesting(NULL); 119 SAMLOfflineSigninLimiterFactory::SetClockForTesting(NULL);
122 } 120 }
123 121
124 TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLDefaultLimit) { 122 TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLDefaultLimit) {
125 PrefService* prefs = profile_->GetPrefs(); 123 PrefService* prefs = profile_->GetPrefs();
126 124
127 // Set the time of last login with SAML. 125 // Set the time of last login with SAML.
128 prefs->SetInt64(prefs::kSAMLLastGAIASignInTime, 126 prefs->SetInt64(prefs::kSAMLLastGAIASignInTime,
129 clock_.Now().ToInternalValue()); 127 clock_.Now().ToInternalValue());
130 128
131 // Authenticate against GAIA without SAML. Verify that the flag enforcing 129 // Authenticate against GAIA without SAML. Verify that the flag enforcing
132 // online login and the time of last login with SAML are cleared. 130 // online login and the time of last login with SAML are cleared.
133 CreateLimiter(); 131 CreateLimiter();
134 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 132 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(1);
135 .Times(1); 133 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
136 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
137 .Times(0);
138 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITHOUT_SAML); 134 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITHOUT_SAML);
139 135
140 const PrefService::Preference* pref = 136 const PrefService::Preference* pref =
141 prefs->FindPreference(prefs::kSAMLLastGAIASignInTime); 137 prefs->FindPreference(prefs::kSAMLLastGAIASignInTime);
142 ASSERT_TRUE(pref); 138 ASSERT_TRUE(pref);
143 EXPECT_FALSE(pref->HasUserSetting()); 139 EXPECT_FALSE(pref->HasUserSetting());
144 140
145 // Verify that no timer is running. 141 // Verify that no timer is running.
146 EXPECT_FALSE(runner_->HasPendingTask()); 142 EXPECT_FALSE(runner_->HasPendingTask());
147 143
148 // Log out. Verify that the flag enforcing online login is not set. 144 // Log out. Verify that the flag enforcing online login is not set.
149 DestroyLimiter(); 145 DestroyLimiter();
150 146
151 // Authenticate offline. Verify that the flag enforcing online login is not 147 // Authenticate offline. Verify that the flag enforcing online login is not
152 // changed and the time of last login with SAML is not set. 148 // changed and the time of last login with SAML is not set.
153 CreateLimiter(); 149 CreateLimiter();
154 Mock::VerifyAndClearExpectations(user_manager_); 150 Mock::VerifyAndClearExpectations(user_manager_);
155 SetUpUserManager(); 151 SetUpUserManager();
156 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 152 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(0);
157 .Times(0); 153 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
158 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
159 .Times(0);
160 limiter_->SignedIn(UserContext::AUTH_FLOW_OFFLINE); 154 limiter_->SignedIn(UserContext::AUTH_FLOW_OFFLINE);
161 155
162 pref = prefs->FindPreference(prefs::kSAMLLastGAIASignInTime); 156 pref = prefs->FindPreference(prefs::kSAMLLastGAIASignInTime);
163 ASSERT_TRUE(pref); 157 ASSERT_TRUE(pref);
164 EXPECT_FALSE(pref->HasUserSetting()); 158 EXPECT_FALSE(pref->HasUserSetting());
165 159
166 // Verify that no timer is running. 160 // Verify that no timer is running.
167 EXPECT_FALSE(runner_->HasPendingTask()); 161 EXPECT_FALSE(runner_->HasPendingTask());
168 } 162 }
169 163
170 TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLNoLimit) { 164 TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLNoLimit) {
171 PrefService* prefs = profile_->GetPrefs(); 165 PrefService* prefs = profile_->GetPrefs();
172 166
173 // Remove the time limit. 167 // Remove the time limit.
174 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, -1); 168 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, -1);
175 169
176 // Set the time of last login with SAML. 170 // Set the time of last login with SAML.
177 prefs->SetInt64(prefs::kSAMLLastGAIASignInTime, 171 prefs->SetInt64(prefs::kSAMLLastGAIASignInTime,
178 clock_.Now().ToInternalValue()); 172 clock_.Now().ToInternalValue());
179 173
180 // Authenticate against GAIA without SAML. Verify that the flag enforcing 174 // Authenticate against GAIA without SAML. Verify that the flag enforcing
181 // online login and the time of last login with SAML are cleared. 175 // online login and the time of last login with SAML are cleared.
182 CreateLimiter(); 176 CreateLimiter();
183 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 177 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(1);
184 .Times(1); 178 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
185 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
186 .Times(0);
187 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITHOUT_SAML); 179 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITHOUT_SAML);
188 180
189 const PrefService::Preference* pref = 181 const PrefService::Preference* pref =
190 prefs->FindPreference(prefs::kSAMLLastGAIASignInTime); 182 prefs->FindPreference(prefs::kSAMLLastGAIASignInTime);
191 ASSERT_TRUE(pref); 183 ASSERT_TRUE(pref);
192 EXPECT_FALSE(pref->HasUserSetting()); 184 EXPECT_FALSE(pref->HasUserSetting());
193 185
194 // Verify that no timer is running. 186 // Verify that no timer is running.
195 EXPECT_FALSE(runner_->HasPendingTask()); 187 EXPECT_FALSE(runner_->HasPendingTask());
196 188
197 // Log out. Verify that the flag enforcing online login is not set. 189 // Log out. Verify that the flag enforcing online login is not set.
198 DestroyLimiter(); 190 DestroyLimiter();
199 191
200 // Authenticate offline. Verify that the flag enforcing online login is not 192 // Authenticate offline. Verify that the flag enforcing online login is not
201 // changed and the time of last login with SAML is not set. 193 // changed and the time of last login with SAML is not set.
202 CreateLimiter(); 194 CreateLimiter();
203 Mock::VerifyAndClearExpectations(user_manager_); 195 Mock::VerifyAndClearExpectations(user_manager_);
204 SetUpUserManager(); 196 SetUpUserManager();
205 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 197 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(0);
206 .Times(0); 198 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
207 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
208 .Times(0);
209 limiter_->SignedIn(UserContext::AUTH_FLOW_OFFLINE); 199 limiter_->SignedIn(UserContext::AUTH_FLOW_OFFLINE);
210 200
211 pref = prefs->FindPreference(prefs::kSAMLLastGAIASignInTime); 201 pref = prefs->FindPreference(prefs::kSAMLLastGAIASignInTime);
212 ASSERT_TRUE(pref); 202 ASSERT_TRUE(pref);
213 EXPECT_FALSE(pref->HasUserSetting()); 203 EXPECT_FALSE(pref->HasUserSetting());
214 204
215 // Verify that no timer is running. 205 // Verify that no timer is running.
216 EXPECT_FALSE(runner_->HasPendingTask()); 206 EXPECT_FALSE(runner_->HasPendingTask());
217 } 207 }
218 208
219 TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLZeroLimit) { 209 TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLZeroLimit) {
220 PrefService* prefs = profile_->GetPrefs(); 210 PrefService* prefs = profile_->GetPrefs();
221 211
222 // Set a zero time limit. 212 // Set a zero time limit.
223 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, 0); 213 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, 0);
224 214
225 // Set the time of last login with SAML. 215 // Set the time of last login with SAML.
226 prefs->SetInt64(prefs::kSAMLLastGAIASignInTime, 216 prefs->SetInt64(prefs::kSAMLLastGAIASignInTime,
227 clock_.Now().ToInternalValue()); 217 clock_.Now().ToInternalValue());
228 218
229 // Authenticate against GAIA without SAML. Verify that the flag enforcing 219 // Authenticate against GAIA without SAML. Verify that the flag enforcing
230 // online login and the time of last login with SAML are cleared. 220 // online login and the time of last login with SAML are cleared.
231 CreateLimiter(); 221 CreateLimiter();
232 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 222 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(1);
233 .Times(1); 223 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
234 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
235 .Times(0);
236 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITHOUT_SAML); 224 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITHOUT_SAML);
237 225
238 const PrefService::Preference* pref = 226 const PrefService::Preference* pref =
239 prefs->FindPreference(prefs::kSAMLLastGAIASignInTime); 227 prefs->FindPreference(prefs::kSAMLLastGAIASignInTime);
240 ASSERT_TRUE(pref); 228 ASSERT_TRUE(pref);
241 EXPECT_FALSE(pref->HasUserSetting()); 229 EXPECT_FALSE(pref->HasUserSetting());
242 230
243 // Verify that no timer is running. 231 // Verify that no timer is running.
244 EXPECT_FALSE(runner_->HasPendingTask()); 232 EXPECT_FALSE(runner_->HasPendingTask());
245 233
246 // Log out. Verify that the flag enforcing online login is not set. 234 // Log out. Verify that the flag enforcing online login is not set.
247 DestroyLimiter(); 235 DestroyLimiter();
248 236
249 // Authenticate offline. Verify that the flag enforcing online login is not 237 // Authenticate offline. Verify that the flag enforcing online login is not
250 // changed and the time of last login with SAML is not set. 238 // changed and the time of last login with SAML is not set.
251 CreateLimiter(); 239 CreateLimiter();
252 Mock::VerifyAndClearExpectations(user_manager_); 240 Mock::VerifyAndClearExpectations(user_manager_);
253 SetUpUserManager(); 241 SetUpUserManager();
254 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 242 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(0);
255 .Times(0); 243 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
256 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
257 .Times(0);
258 limiter_->SignedIn(UserContext::AUTH_FLOW_OFFLINE); 244 limiter_->SignedIn(UserContext::AUTH_FLOW_OFFLINE);
259 245
260 pref = prefs->FindPreference(prefs::kSAMLLastGAIASignInTime); 246 pref = prefs->FindPreference(prefs::kSAMLLastGAIASignInTime);
261 ASSERT_TRUE(pref); 247 ASSERT_TRUE(pref);
262 EXPECT_FALSE(pref->HasUserSetting()); 248 EXPECT_FALSE(pref->HasUserSetting());
263 249
264 // Verify that no timer is running. 250 // Verify that no timer is running.
265 EXPECT_FALSE(runner_->HasPendingTask()); 251 EXPECT_FALSE(runner_->HasPendingTask());
266 } 252 }
267 253
268 TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLSetLimitWhileLoggedIn) { 254 TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLSetLimitWhileLoggedIn) {
269 PrefService* prefs = profile_->GetPrefs(); 255 PrefService* prefs = profile_->GetPrefs();
270 256
271 // Remove the time limit. 257 // Remove the time limit.
272 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, -1); 258 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, -1);
273 259
274 // Set the time of last login with SAML. 260 // Set the time of last login with SAML.
275 prefs->SetInt64(prefs::kSAMLLastGAIASignInTime, 261 prefs->SetInt64(prefs::kSAMLLastGAIASignInTime,
276 clock_.Now().ToInternalValue()); 262 clock_.Now().ToInternalValue());
277 263
278 // Authenticate against GAIA without SAML. Verify that the flag enforcing 264 // Authenticate against GAIA without SAML. Verify that the flag enforcing
279 // online login and the time of last login with SAML are cleared. 265 // online login and the time of last login with SAML are cleared.
280 CreateLimiter(); 266 CreateLimiter();
281 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 267 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(1);
282 .Times(1); 268 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
283 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
284 .Times(0);
285 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITHOUT_SAML); 269 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITHOUT_SAML);
286 270
287 const PrefService::Preference* pref = 271 const PrefService::Preference* pref =
288 prefs->FindPreference(prefs::kSAMLLastGAIASignInTime); 272 prefs->FindPreference(prefs::kSAMLLastGAIASignInTime);
289 ASSERT_TRUE(pref); 273 ASSERT_TRUE(pref);
290 EXPECT_FALSE(pref->HasUserSetting()); 274 EXPECT_FALSE(pref->HasUserSetting());
291 275
292 // Verify that no timer is running. 276 // Verify that no timer is running.
293 EXPECT_FALSE(runner_->HasPendingTask()); 277 EXPECT_FALSE(runner_->HasPendingTask());
294 278
295 // Set a zero time limit. 279 // Set a zero time limit.
296 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, 0); 280 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, 0);
297 281
298 // Verify that no timer is running. 282 // Verify that no timer is running.
299 EXPECT_FALSE(runner_->HasPendingTask()); 283 EXPECT_FALSE(runner_->HasPendingTask());
300 } 284 }
301 285
302 TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLRemoveLimitWhileLoggedIn) { 286 TEST_F(SAMLOfflineSigninLimiterTest, NoSAMLRemoveLimitWhileLoggedIn) {
303 PrefService* prefs = profile_->GetPrefs(); 287 PrefService* prefs = profile_->GetPrefs();
304 288
305 // Set the time of last login with SAML. 289 // Set the time of last login with SAML.
306 prefs->SetInt64(prefs::kSAMLLastGAIASignInTime, 290 prefs->SetInt64(prefs::kSAMLLastGAIASignInTime,
307 clock_.Now().ToInternalValue()); 291 clock_.Now().ToInternalValue());
308 292
309 // Authenticate against GAIA without SAML. Verify that the flag enforcing 293 // Authenticate against GAIA without SAML. Verify that the flag enforcing
310 // online login and the time of last login with SAML are cleared. 294 // online login and the time of last login with SAML are cleared.
311 CreateLimiter(); 295 CreateLimiter();
312 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 296 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(1);
313 .Times(1); 297 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
314 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
315 .Times(0);
316 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITHOUT_SAML); 298 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITHOUT_SAML);
317 299
318 const PrefService::Preference* pref = 300 const PrefService::Preference* pref =
319 prefs->FindPreference(prefs::kSAMLLastGAIASignInTime); 301 prefs->FindPreference(prefs::kSAMLLastGAIASignInTime);
320 ASSERT_TRUE(pref); 302 ASSERT_TRUE(pref);
321 EXPECT_FALSE(pref->HasUserSetting()); 303 EXPECT_FALSE(pref->HasUserSetting());
322 304
323 // Verify that no timer is running. 305 // Verify that no timer is running.
324 EXPECT_FALSE(runner_->HasPendingTask()); 306 EXPECT_FALSE(runner_->HasPendingTask());
325 307
(...skipping 10 matching lines...) Expand all
336 // Set the time of last login with SAML. 318 // Set the time of last login with SAML.
337 prefs->SetInt64(prefs::kSAMLLastGAIASignInTime, 319 prefs->SetInt64(prefs::kSAMLLastGAIASignInTime,
338 clock_.Now().ToInternalValue()); 320 clock_.Now().ToInternalValue());
339 321
340 // Advance time by four weeks. 322 // Advance time by four weeks.
341 clock_.Advance(base::TimeDelta::FromDays(28)); // 4 weeks. 323 clock_.Advance(base::TimeDelta::FromDays(28)); // 4 weeks.
342 324
343 // Authenticate against GAIA without SAML. Verify that the flag enforcing 325 // Authenticate against GAIA without SAML. Verify that the flag enforcing
344 // online login and the time of last login with SAML are cleared. 326 // online login and the time of last login with SAML are cleared.
345 CreateLimiter(); 327 CreateLimiter();
346 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 328 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(1);
347 .Times(1); 329 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
348 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
349 .Times(0);
350 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITHOUT_SAML); 330 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITHOUT_SAML);
351 331
352 const PrefService::Preference* pref = 332 const PrefService::Preference* pref =
353 prefs->FindPreference(prefs::kSAMLLastGAIASignInTime); 333 prefs->FindPreference(prefs::kSAMLLastGAIASignInTime);
354 ASSERT_TRUE(pref); 334 ASSERT_TRUE(pref);
355 EXPECT_FALSE(pref->HasUserSetting()); 335 EXPECT_FALSE(pref->HasUserSetting());
356 336
357 // Verify that no timer is running. 337 // Verify that no timer is running.
358 EXPECT_FALSE(runner_->HasPendingTask()); 338 EXPECT_FALSE(runner_->HasPendingTask());
359 } 339 }
360 340
361 TEST_F(SAMLOfflineSigninLimiterTest, SAMLDefaultLimit) { 341 TEST_F(SAMLOfflineSigninLimiterTest, SAMLDefaultLimit) {
362 PrefService* prefs = profile_->GetPrefs(); 342 PrefService* prefs = profile_->GetPrefs();
363 343
364 // Authenticate against GAIA with SAML. Verify that the flag enforcing online 344 // Authenticate against GAIA with SAML. Verify that the flag enforcing online
365 // login is cleared and the time of last login with SAML is set. 345 // login is cleared and the time of last login with SAML is set.
366 CreateLimiter(); 346 CreateLimiter();
367 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 347 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(1);
368 .Times(1); 348 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
369 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
370 .Times(0);
371 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML); 349 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML);
372 350
373 base::Time last_gaia_signin_time = base::Time::FromInternalValue( 351 base::Time last_gaia_signin_time = base::Time::FromInternalValue(
374 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime)); 352 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime));
375 EXPECT_EQ(clock_.Now(), last_gaia_signin_time); 353 EXPECT_EQ(clock_.Now(), last_gaia_signin_time);
376 354
377 // Verify that the timer is running. 355 // Verify that the timer is running.
378 EXPECT_TRUE(runner_->HasPendingTask()); 356 EXPECT_TRUE(runner_->HasPendingTask());
379 357
380 // Log out. Verify that the flag enforcing online login is not set. 358 // Log out. Verify that the flag enforcing online login is not set.
381 DestroyLimiter(); 359 DestroyLimiter();
382 360
383 // Advance time by an hour. 361 // Advance time by an hour.
384 clock_.Advance(base::TimeDelta::FromHours(1)); 362 clock_.Advance(base::TimeDelta::FromHours(1));
385 363
386 // Authenticate against GAIA with SAML. Verify that the flag enforcing online 364 // Authenticate against GAIA with SAML. Verify that the flag enforcing online
387 // login is cleared and the time of last login with SAML is updated. 365 // login is cleared and the time of last login with SAML is updated.
388 CreateLimiter(); 366 CreateLimiter();
389 Mock::VerifyAndClearExpectations(user_manager_); 367 Mock::VerifyAndClearExpectations(user_manager_);
390 SetUpUserManager(); 368 SetUpUserManager();
391 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 369 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(1);
392 .Times(1); 370 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
393 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
394 .Times(0);
395 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML); 371 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML);
396 372
397 last_gaia_signin_time = base::Time::FromInternalValue( 373 last_gaia_signin_time = base::Time::FromInternalValue(
398 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime)); 374 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime));
399 EXPECT_EQ(clock_.Now(), last_gaia_signin_time); 375 EXPECT_EQ(clock_.Now(), last_gaia_signin_time);
400 376
401 // Verify that the timer is running. 377 // Verify that the timer is running.
402 EXPECT_TRUE(runner_->HasPendingTask()); 378 EXPECT_TRUE(runner_->HasPendingTask());
403 379
404 // Log out. Verify that the flag enforcing online login is not set. 380 // Log out. Verify that the flag enforcing online login is not set.
405 DestroyLimiter(); 381 DestroyLimiter();
406 382
407 // Advance time by an hour. 383 // Advance time by an hour.
408 const base::Time gaia_signin_time = clock_.Now(); 384 const base::Time gaia_signin_time = clock_.Now();
409 clock_.Advance(base::TimeDelta::FromHours(1)); 385 clock_.Advance(base::TimeDelta::FromHours(1));
410 386
411 // Authenticate offline. Verify that the flag enforcing online login and the 387 // Authenticate offline. Verify that the flag enforcing online login and the
412 // time of last login with SAML are not changed. 388 // time of last login with SAML are not changed.
413 CreateLimiter(); 389 CreateLimiter();
414 Mock::VerifyAndClearExpectations(user_manager_); 390 Mock::VerifyAndClearExpectations(user_manager_);
415 SetUpUserManager(); 391 SetUpUserManager();
416 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 392 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(0);
417 .Times(0); 393 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
418 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
419 .Times(0);
420 limiter_->SignedIn(UserContext::AUTH_FLOW_OFFLINE); 394 limiter_->SignedIn(UserContext::AUTH_FLOW_OFFLINE);
421 395
422 last_gaia_signin_time = base::Time::FromInternalValue( 396 last_gaia_signin_time = base::Time::FromInternalValue(
423 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime)); 397 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime));
424 EXPECT_EQ(gaia_signin_time, last_gaia_signin_time); 398 EXPECT_EQ(gaia_signin_time, last_gaia_signin_time);
425 399
426 // Verify that the timer is running. 400 // Verify that the timer is running.
427 EXPECT_TRUE(runner_->HasPendingTask()); 401 EXPECT_TRUE(runner_->HasPendingTask());
428 402
429 // Advance time by four weeks. 403 // Advance time by four weeks.
430 clock_.Advance(base::TimeDelta::FromDays(28)); // 4 weeks. 404 clock_.Advance(base::TimeDelta::FromDays(28)); // 4 weeks.
431 405
432 // Allow the timer to fire. Verify that the flag enforcing online login is 406 // Allow the timer to fire. Verify that the flag enforcing online login is
433 // set. 407 // set.
434 Mock::VerifyAndClearExpectations(user_manager_); 408 Mock::VerifyAndClearExpectations(user_manager_);
435 SetUpUserManager(); 409 SetUpUserManager();
436 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 410 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(0);
437 .Times(0); 411 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(1);
438 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
439 .Times(1);
440 runner_->RunPendingTasks(); 412 runner_->RunPendingTasks();
441 } 413 }
442 414
443 TEST_F(SAMLOfflineSigninLimiterTest, SAMLNoLimit) { 415 TEST_F(SAMLOfflineSigninLimiterTest, SAMLNoLimit) {
444 PrefService* prefs = profile_->GetPrefs(); 416 PrefService* prefs = profile_->GetPrefs();
445 417
446 // Remove the time limit. 418 // Remove the time limit.
447 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, -1); 419 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, -1);
448 420
449 // Authenticate against GAIA with SAML. Verify that the flag enforcing online 421 // Authenticate against GAIA with SAML. Verify that the flag enforcing online
450 // login is cleared and the time of last login with SAML is set. 422 // login is cleared and the time of last login with SAML is set.
451 CreateLimiter(); 423 CreateLimiter();
452 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 424 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(1);
453 .Times(1); 425 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
454 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
455 .Times(0);
456 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML); 426 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML);
457 427
458 base::Time last_gaia_signin_time = base::Time::FromInternalValue( 428 base::Time last_gaia_signin_time = base::Time::FromInternalValue(
459 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime)); 429 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime));
460 EXPECT_EQ(clock_.Now(), last_gaia_signin_time); 430 EXPECT_EQ(clock_.Now(), last_gaia_signin_time);
461 431
462 // Verify that no timer is running. 432 // Verify that no timer is running.
463 EXPECT_FALSE(runner_->HasPendingTask()); 433 EXPECT_FALSE(runner_->HasPendingTask());
464 434
465 // Log out. Verify that the flag enforcing online login is not set. 435 // Log out. Verify that the flag enforcing online login is not set.
466 DestroyLimiter(); 436 DestroyLimiter();
467 437
468 // Advance time by an hour. 438 // Advance time by an hour.
469 clock_.Advance(base::TimeDelta::FromHours(1)); 439 clock_.Advance(base::TimeDelta::FromHours(1));
470 440
471 // Authenticate against GAIA with SAML. Verify that the flag enforcing online 441 // Authenticate against GAIA with SAML. Verify that the flag enforcing online
472 // login is cleared and the time of last login with SAML is updated. 442 // login is cleared and the time of last login with SAML is updated.
473 CreateLimiter(); 443 CreateLimiter();
474 Mock::VerifyAndClearExpectations(user_manager_); 444 Mock::VerifyAndClearExpectations(user_manager_);
475 SetUpUserManager(); 445 SetUpUserManager();
476 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 446 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(1);
477 .Times(1); 447 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
478 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
479 .Times(0);
480 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML); 448 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML);
481 449
482 last_gaia_signin_time = base::Time::FromInternalValue( 450 last_gaia_signin_time = base::Time::FromInternalValue(
483 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime)); 451 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime));
484 EXPECT_EQ(clock_.Now(), last_gaia_signin_time); 452 EXPECT_EQ(clock_.Now(), last_gaia_signin_time);
485 453
486 // Verify that no timer is running. 454 // Verify that no timer is running.
487 EXPECT_FALSE(runner_->HasPendingTask()); 455 EXPECT_FALSE(runner_->HasPendingTask());
488 456
489 // Log out. Verify that the flag enforcing online login is not set. 457 // Log out. Verify that the flag enforcing online login is not set.
490 DestroyLimiter(); 458 DestroyLimiter();
491 459
492 // Advance time by an hour. 460 // Advance time by an hour.
493 const base::Time gaia_signin_time = clock_.Now(); 461 const base::Time gaia_signin_time = clock_.Now();
494 clock_.Advance(base::TimeDelta::FromHours(1)); 462 clock_.Advance(base::TimeDelta::FromHours(1));
495 463
496 // Authenticate offline. Verify that the flag enforcing online login and the 464 // Authenticate offline. Verify that the flag enforcing online login and the
497 // time of last login with SAML are not changed. 465 // time of last login with SAML are not changed.
498 CreateLimiter(); 466 CreateLimiter();
499 Mock::VerifyAndClearExpectations(user_manager_); 467 Mock::VerifyAndClearExpectations(user_manager_);
500 SetUpUserManager(); 468 SetUpUserManager();
501 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 469 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(0);
502 .Times(0); 470 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
503 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
504 .Times(0);
505 limiter_->SignedIn(UserContext::AUTH_FLOW_OFFLINE); 471 limiter_->SignedIn(UserContext::AUTH_FLOW_OFFLINE);
506 472
507 last_gaia_signin_time = base::Time::FromInternalValue( 473 last_gaia_signin_time = base::Time::FromInternalValue(
508 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime)); 474 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime));
509 EXPECT_EQ(gaia_signin_time, last_gaia_signin_time); 475 EXPECT_EQ(gaia_signin_time, last_gaia_signin_time);
510 476
511 // Verify that no timer is running. 477 // Verify that no timer is running.
512 EXPECT_FALSE(runner_->HasPendingTask()); 478 EXPECT_FALSE(runner_->HasPendingTask());
513 } 479 }
514 480
515 TEST_F(SAMLOfflineSigninLimiterTest, SAMLZeroLimit) { 481 TEST_F(SAMLOfflineSigninLimiterTest, SAMLZeroLimit) {
516 PrefService* prefs = profile_->GetPrefs(); 482 PrefService* prefs = profile_->GetPrefs();
517 483
518 // Set a zero time limit. 484 // Set a zero time limit.
519 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, 0); 485 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, 0);
520 486
521 // Authenticate against GAIA with SAML. Verify that the flag enforcing online 487 // Authenticate against GAIA with SAML. Verify that the flag enforcing online
522 // login is cleared and then set immediately. Also verify that the time of 488 // login is cleared and then set immediately. Also verify that the time of
523 // last login with SAML is set. 489 // last login with SAML is set.
524 CreateLimiter(); 490 CreateLimiter();
525 Sequence sequence; 491 Sequence sequence;
526 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 492 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false))
527 .Times(1) 493 .Times(1)
528 .InSequence(sequence); 494 .InSequence(sequence);
529 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true)) 495 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true))
530 .Times(1) 496 .Times(1)
531 .InSequence(sequence); 497 .InSequence(sequence);
532 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML); 498 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML);
533 499
534 const base::Time last_gaia_signin_time = base::Time::FromInternalValue( 500 const base::Time last_gaia_signin_time = base::Time::FromInternalValue(
535 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime)); 501 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime));
536 EXPECT_EQ(clock_.Now(), last_gaia_signin_time); 502 EXPECT_EQ(clock_.Now(), last_gaia_signin_time);
537 } 503 }
538 504
539 TEST_F(SAMLOfflineSigninLimiterTest, SAMLSetLimitWhileLoggedIn) { 505 TEST_F(SAMLOfflineSigninLimiterTest, SAMLSetLimitWhileLoggedIn) {
540 PrefService* prefs = profile_->GetPrefs(); 506 PrefService* prefs = profile_->GetPrefs();
541 507
542 // Remove the time limit. 508 // Remove the time limit.
543 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, -1); 509 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, -1);
544 510
545 // Authenticate against GAIA with SAML. Verify that the flag enforcing online 511 // Authenticate against GAIA with SAML. Verify that the flag enforcing online
546 // login is cleared and the time of last login with SAML is set. 512 // login is cleared and the time of last login with SAML is set.
547 CreateLimiter(); 513 CreateLimiter();
548 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 514 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(1);
549 .Times(1); 515 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
550 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
551 .Times(0);
552 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML); 516 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML);
553 517
554 const base::Time last_gaia_signin_time = base::Time::FromInternalValue( 518 const base::Time last_gaia_signin_time = base::Time::FromInternalValue(
555 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime)); 519 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime));
556 EXPECT_EQ(clock_.Now(), last_gaia_signin_time); 520 EXPECT_EQ(clock_.Now(), last_gaia_signin_time);
557 521
558 // Verify that no timer is running. 522 // Verify that no timer is running.
559 EXPECT_FALSE(runner_->HasPendingTask()); 523 EXPECT_FALSE(runner_->HasPendingTask());
560 524
561 // Set a zero time limit. Verify that the flag enforcing online login is set. 525 // Set a zero time limit. Verify that the flag enforcing online login is set.
562 Mock::VerifyAndClearExpectations(user_manager_); 526 Mock::VerifyAndClearExpectations(user_manager_);
563 SetUpUserManager(); 527 SetUpUserManager();
564 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 528 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(0);
565 .Times(0); 529 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(1);
566 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
567 .Times(1);
568 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, 0); 530 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, 0);
569 } 531 }
570 532
571 TEST_F(SAMLOfflineSigninLimiterTest, SAMLRemoveLimit) { 533 TEST_F(SAMLOfflineSigninLimiterTest, SAMLRemoveLimit) {
572 PrefService* prefs = profile_->GetPrefs(); 534 PrefService* prefs = profile_->GetPrefs();
573 535
574 // Authenticate against GAIA with SAML. Verify that the flag enforcing online 536 // Authenticate against GAIA with SAML. Verify that the flag enforcing online
575 // login is cleared and the time of last login with SAML is set. 537 // login is cleared and the time of last login with SAML is set.
576 CreateLimiter(); 538 CreateLimiter();
577 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 539 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(1);
578 .Times(1); 540 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
579 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
580 .Times(0);
581 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML); 541 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML);
582 542
583 const base::Time last_gaia_signin_time = base::Time::FromInternalValue( 543 const base::Time last_gaia_signin_time = base::Time::FromInternalValue(
584 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime)); 544 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime));
585 EXPECT_EQ(clock_.Now(), last_gaia_signin_time); 545 EXPECT_EQ(clock_.Now(), last_gaia_signin_time);
586 546
587 // Verify that the timer is running. 547 // Verify that the timer is running.
588 EXPECT_TRUE(runner_->HasPendingTask()); 548 EXPECT_TRUE(runner_->HasPendingTask());
589 549
590 // Remove the time limit. 550 // Remove the time limit.
591 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, -1); 551 prefs->SetInteger(prefs::kSAMLOfflineSigninTimeLimit, -1);
592 552
593 // Allow the timer to fire. Verify that the flag enforcing online login is not 553 // Allow the timer to fire. Verify that the flag enforcing online login is not
594 // changed. 554 // changed.
595 Mock::VerifyAndClearExpectations(user_manager_); 555 Mock::VerifyAndClearExpectations(user_manager_);
596 SetUpUserManager(); 556 SetUpUserManager();
597 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 557 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(0);
598 .Times(0); 558 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
599 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
600 .Times(0);
601 runner_->RunUntilIdle(); 559 runner_->RunUntilIdle();
602 } 560 }
603 561
604 TEST_F(SAMLOfflineSigninLimiterTest, SAMLLogInWithExpiredLimit) { 562 TEST_F(SAMLOfflineSigninLimiterTest, SAMLLogInWithExpiredLimit) {
605 PrefService* prefs = profile_->GetPrefs(); 563 PrefService* prefs = profile_->GetPrefs();
606 564
607 // Set the time of last login with SAML. 565 // Set the time of last login with SAML.
608 prefs->SetInt64(prefs::kSAMLLastGAIASignInTime, 566 prefs->SetInt64(prefs::kSAMLLastGAIASignInTime,
609 clock_.Now().ToInternalValue()); 567 clock_.Now().ToInternalValue());
610 568
611 // Advance time by four weeks. 569 // Advance time by four weeks.
612 clock_.Advance(base::TimeDelta::FromDays(28)); // 4 weeks. 570 clock_.Advance(base::TimeDelta::FromDays(28)); // 4 weeks.
613 571
614 // Authenticate against GAIA with SAML. Verify that the flag enforcing online 572 // Authenticate against GAIA with SAML. Verify that the flag enforcing online
615 // login is cleared and the time of last login with SAML is updated. 573 // login is cleared and the time of last login with SAML is updated.
616 CreateLimiter(); 574 CreateLimiter();
617 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 575 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(1);
618 .Times(1); 576 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(0);
619 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
620 .Times(0);
621 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML); 577 limiter_->SignedIn(UserContext::AUTH_FLOW_GAIA_WITH_SAML);
622 578
623 const base::Time last_gaia_signin_time = base::Time::FromInternalValue( 579 const base::Time last_gaia_signin_time = base::Time::FromInternalValue(
624 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime)); 580 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime));
625 EXPECT_EQ(clock_.Now(), last_gaia_signin_time); 581 EXPECT_EQ(clock_.Now(), last_gaia_signin_time);
626 582
627 // Verify that the timer is running. 583 // Verify that the timer is running.
628 EXPECT_TRUE(runner_->HasPendingTask()); 584 EXPECT_TRUE(runner_->HasPendingTask());
629 } 585 }
630 586
631 TEST_F(SAMLOfflineSigninLimiterTest, SAMLLogInOfflineWithExpiredLimit) { 587 TEST_F(SAMLOfflineSigninLimiterTest, SAMLLogInOfflineWithExpiredLimit) {
632 PrefService* prefs = profile_->GetPrefs(); 588 PrefService* prefs = profile_->GetPrefs();
633 589
634 // Set the time of last login with SAML. 590 // Set the time of last login with SAML.
635 prefs->SetInt64(prefs::kSAMLLastGAIASignInTime, 591 prefs->SetInt64(prefs::kSAMLLastGAIASignInTime,
636 clock_.Now().ToInternalValue()); 592 clock_.Now().ToInternalValue());
637 593
638 // Advance time by four weeks. 594 // Advance time by four weeks.
639 const base::Time gaia_signin_time = clock_.Now(); 595 const base::Time gaia_signin_time = clock_.Now();
640 clock_.Advance(base::TimeDelta::FromDays(28)); // 4 weeks. 596 clock_.Advance(base::TimeDelta::FromDays(28)); // 4 weeks.
641 597
642 // Authenticate offline. Verify that the flag enforcing online login is 598 // Authenticate offline. Verify that the flag enforcing online login is
643 // set and the time of last login with SAML is not changed. 599 // set and the time of last login with SAML is not changed.
644 CreateLimiter(); 600 CreateLimiter();
645 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, false)) 601 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, false)).Times(0);
646 .Times(0); 602 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(kTestUser, true)).Times(1);
647 EXPECT_CALL(*user_manager_, SaveForceOnlineSignin(test_account_id_, true))
648 .Times(1);
649 limiter_->SignedIn(UserContext::AUTH_FLOW_OFFLINE); 603 limiter_->SignedIn(UserContext::AUTH_FLOW_OFFLINE);
650 604
651 const base::Time last_gaia_signin_time = base::Time::FromInternalValue( 605 const base::Time last_gaia_signin_time = base::Time::FromInternalValue(
652 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime)); 606 prefs->GetInt64(prefs::kSAMLLastGAIASignInTime));
653 EXPECT_EQ(gaia_signin_time, last_gaia_signin_time); 607 EXPECT_EQ(gaia_signin_time, last_gaia_signin_time);
654 } 608 }
655 609
656 } // namespace chromeos 610 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698