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

Side by Side Diff: chrome/browser/chromeos/session_length_limiter_unittest.cc

Issue 899863002: Add support in TestMockTimeTaskRunner for vending out mock Time and mock Clocks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Start ticks from 0, some tests depend on this. Created 5 years, 10 months 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/session_length_limiter.h" 5 #include "chrome/browser/chromeos/session_length_limiter.h"
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/prefs/testing_pref_service.h" 10 #include "base/prefs/testing_pref_service.h"
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 if (session_length_limiter_) 165 if (session_length_limiter_)
166 session_length_limiter_->OnUserActivity(NULL); 166 session_length_limiter_->OnUserActivity(NULL);
167 UpdateSessionStartTimeIfWaitingForUserActivity(); 167 UpdateSessionStartTimeIfWaitingForUserActivity();
168 user_activity_seen_ = true; 168 user_activity_seen_ = true;
169 } 169 }
170 170
171 void SessionLengthLimiterTest:: 171 void SessionLengthLimiterTest::
172 UpdateSessionStartTimeIfWaitingForUserActivity() { 172 UpdateSessionStartTimeIfWaitingForUserActivity() {
173 if (!user_activity_seen_ && 173 if (!user_activity_seen_ &&
174 local_state_.GetBoolean(prefs::kSessionWaitForInitialUserActivity)) { 174 local_state_.GetBoolean(prefs::kSessionWaitForInitialUserActivity)) {
175 session_start_time_ = runner_->GetCurrentMockTime(); 175 session_start_time_ = runner_->NowTicks();
176 } 176 }
177 } 177 }
178 178
179 void SessionLengthLimiterTest::ExpectStopSession() { 179 void SessionLengthLimiterTest::ExpectStopSession() {
180 Mock::VerifyAndClearExpectations(delegate_); 180 Mock::VerifyAndClearExpectations(delegate_);
181 EXPECT_CALL(*delegate_, StopSession()) 181 EXPECT_CALL(*delegate_, StopSession())
182 .Times(1) 182 .Times(1)
183 .WillOnce(Invoke(this, &SessionLengthLimiterTest::SaveSessionStopTime)); 183 .WillOnce(Invoke(this, &SessionLengthLimiterTest::SaveSessionStopTime));
184 } 184 }
185 185
186 void SessionLengthLimiterTest::SaveSessionStopTime() { 186 void SessionLengthLimiterTest::SaveSessionStopTime() {
187 session_stop_time_ = runner_->GetCurrentMockTime(); 187 session_stop_time_ = runner_->NowTicks();
188 } 188 }
189 189
190 void SessionLengthLimiterTest::CreateSessionLengthLimiter( 190 void SessionLengthLimiterTest::CreateSessionLengthLimiter(
191 bool browser_restarted) { 191 bool browser_restarted) {
192 user_activity_seen_ = false; 192 user_activity_seen_ = false;
193 session_start_time_ = runner_->GetCurrentMockTime(); 193 session_start_time_ = runner_->NowTicks();
194 194
195 EXPECT_FALSE(delegate_); 195 EXPECT_FALSE(delegate_);
196 delegate_ = new NiceMock<MockSessionLengthLimiterDelegate>; 196 delegate_ = new NiceMock<MockSessionLengthLimiterDelegate>;
197 ON_CALL(*delegate_, GetCurrentTime()) 197 ON_CALL(*delegate_, GetCurrentTime())
198 .WillByDefault(Invoke( 198 .WillByDefault(
199 runner_.get(), &base::TestMockTimeTaskRunner::GetCurrentMockTime)); 199 Invoke(runner_.get(), &base::TestMockTimeTaskRunner::NowTicks));
200 EXPECT_CALL(*delegate_, StopSession()).Times(0); 200 EXPECT_CALL(*delegate_, StopSession()).Times(0);
201 session_length_limiter_.reset( 201 session_length_limiter_.reset(
202 new SessionLengthLimiter(delegate_, browser_restarted)); 202 new SessionLengthLimiter(delegate_, browser_restarted));
203 } 203 }
204 204
205 void SessionLengthLimiterTest::DestroySessionLengthLimiter() { 205 void SessionLengthLimiterTest::DestroySessionLengthLimiter() {
206 session_length_limiter_.reset(); 206 session_length_limiter_.reset();
207 delegate_ = NULL; 207 delegate_ = NULL;
208 } 208 }
209 209
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 // Pref indicating user activity set. Session start time not set. 277 // Pref indicating user activity set. Session start time not set.
278 SetSessionUserActivitySeenPref(true); 278 SetSessionUserActivitySeenPref(true);
279 ClearSessionStartTimePref(); 279 ClearSessionStartTimePref();
280 CreateSessionLengthLimiter(false); 280 CreateSessionLengthLimiter(false);
281 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); 281 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
282 EXPECT_FALSE(IsSessionStartTimePrefSet()); 282 EXPECT_FALSE(IsSessionStartTimePrefSet());
283 DestroySessionLengthLimiter(); 283 DestroySessionLengthLimiter();
284 284
285 // Pref indicating user activity not set. Session start time in the future. 285 // Pref indicating user activity not set. Session start time in the future.
286 ClearSessionUserActivitySeenPref(); 286 ClearSessionUserActivitySeenPref();
287 SetSessionStartTimePref( 287 SetSessionStartTimePref(runner_->NowTicks() + base::TimeDelta::FromHours(2));
288 runner_->GetCurrentMockTime() + base::TimeDelta::FromHours(2));
289 CreateSessionLengthLimiter(false); 288 CreateSessionLengthLimiter(false);
290 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); 289 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
291 EXPECT_FALSE(IsSessionStartTimePrefSet()); 290 EXPECT_FALSE(IsSessionStartTimePrefSet());
292 DestroySessionLengthLimiter(); 291 DestroySessionLengthLimiter();
293 292
294 // Pref indicating user activity set. Session start time in the future. 293 // Pref indicating user activity set. Session start time in the future.
295 SetSessionUserActivitySeenPref(true); 294 SetSessionUserActivitySeenPref(true);
296 SetSessionStartTimePref( 295 SetSessionStartTimePref(runner_->NowTicks() + base::TimeDelta::FromHours(2));
297 runner_->GetCurrentMockTime() + base::TimeDelta::FromHours(2));
298 CreateSessionLengthLimiter(false); 296 CreateSessionLengthLimiter(false);
299 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); 297 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
300 EXPECT_FALSE(IsSessionStartTimePrefSet()); 298 EXPECT_FALSE(IsSessionStartTimePrefSet());
301 DestroySessionLengthLimiter(); 299 DestroySessionLengthLimiter();
302 300
303 // Pref indicating user activity not set. Session start time valid. 301 // Pref indicating user activity not set. Session start time valid.
304 ClearSessionUserActivitySeenPref(); 302 ClearSessionUserActivitySeenPref();
305 SetSessionStartTimePref( 303 SetSessionStartTimePref(runner_->NowTicks() - base::TimeDelta::FromHours(2));
306 runner_->GetCurrentMockTime() - base::TimeDelta::FromHours(2));
307 CreateSessionLengthLimiter(false); 304 CreateSessionLengthLimiter(false);
308 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); 305 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
309 EXPECT_FALSE(IsSessionStartTimePrefSet()); 306 EXPECT_FALSE(IsSessionStartTimePrefSet());
310 DestroySessionLengthLimiter(); 307 DestroySessionLengthLimiter();
311 308
312 // Pref indicating user activity set. Session start time valid. 309 // Pref indicating user activity set. Session start time valid.
313 SetSessionUserActivitySeenPref(true); 310 SetSessionUserActivitySeenPref(true);
314 SetSessionStartTimePref( 311 SetSessionStartTimePref(runner_->NowTicks() - base::TimeDelta::FromHours(2));
315 runner_->GetCurrentMockTime() - base::TimeDelta::FromHours(2));
316 CreateSessionLengthLimiter(false); 312 CreateSessionLengthLimiter(false);
317 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); 313 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
318 EXPECT_FALSE(IsSessionStartTimePrefSet()); 314 EXPECT_FALSE(IsSessionStartTimePrefSet());
319 DestroySessionLengthLimiter(); 315 DestroySessionLengthLimiter();
320 } 316 }
321 317
322 // Verifies that when not instructed to wait for initial user activity, local 318 // Verifies that when not instructed to wait for initial user activity, local
323 // state is correctly updated during restart after a crash: 319 // state is correctly updated during restart after a crash:
324 // * If no valid session start time is found in local state, the session start 320 // * If no valid session start time is found in local state, the session start
325 // time is set and the pref indicating user activity is cleared. 321 // time is set and the pref indicating user activity is cleared.
(...skipping 11 matching lines...) Expand all
337 // Pref indicating user activity set. Session start time not set. 333 // Pref indicating user activity set. Session start time not set.
338 SetSessionUserActivitySeenPref(true); 334 SetSessionUserActivitySeenPref(true);
339 ClearSessionStartTimePref(); 335 ClearSessionStartTimePref();
340 CreateSessionLengthLimiter(true); 336 CreateSessionLengthLimiter(true);
341 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); 337 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
342 EXPECT_EQ(session_start_time_, GetSessionStartTimePref()); 338 EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
343 DestroySessionLengthLimiter(); 339 DestroySessionLengthLimiter();
344 340
345 // Pref indicating user activity not set. Session start time in the future. 341 // Pref indicating user activity not set. Session start time in the future.
346 ClearSessionUserActivitySeenPref(); 342 ClearSessionUserActivitySeenPref();
347 SetSessionStartTimePref( 343 SetSessionStartTimePref(runner_->NowTicks() + base::TimeDelta::FromHours(2));
348 runner_->GetCurrentMockTime() + base::TimeDelta::FromHours(2));
349 CreateSessionLengthLimiter(true); 344 CreateSessionLengthLimiter(true);
350 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); 345 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
351 EXPECT_EQ(session_start_time_, GetSessionStartTimePref()); 346 EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
352 DestroySessionLengthLimiter(); 347 DestroySessionLengthLimiter();
353 348
354 // Pref indicating user activity set. Session start time in the future. 349 // Pref indicating user activity set. Session start time in the future.
355 SetSessionUserActivitySeenPref(true); 350 SetSessionUserActivitySeenPref(true);
356 SetSessionStartTimePref( 351 SetSessionStartTimePref(runner_->NowTicks() + base::TimeDelta::FromHours(2));
357 runner_->GetCurrentMockTime() + base::TimeDelta::FromHours(2));
358 CreateSessionLengthLimiter(true); 352 CreateSessionLengthLimiter(true);
359 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); 353 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
360 EXPECT_EQ(session_start_time_, GetSessionStartTimePref()); 354 EXPECT_EQ(session_start_time_, GetSessionStartTimePref());
361 DestroySessionLengthLimiter(); 355 DestroySessionLengthLimiter();
362 356
363 const base::TimeTicks stored_session_start_time = 357 const base::TimeTicks stored_session_start_time =
364 runner_->GetCurrentMockTime() - base::TimeDelta::FromHours(2); 358 runner_->NowTicks() - base::TimeDelta::FromHours(2);
365 359
366 // Pref indicating user activity not set. Session start time valid. 360 // Pref indicating user activity not set. Session start time valid.
367 ClearSessionUserActivitySeenPref(); 361 ClearSessionUserActivitySeenPref();
368 SetSessionStartTimePref(stored_session_start_time); 362 SetSessionStartTimePref(stored_session_start_time);
369 CreateSessionLengthLimiter(true); 363 CreateSessionLengthLimiter(true);
370 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); 364 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
371 EXPECT_EQ(stored_session_start_time, GetSessionStartTimePref()); 365 EXPECT_EQ(stored_session_start_time, GetSessionStartTimePref());
372 DestroySessionLengthLimiter(); 366 DestroySessionLengthLimiter();
373 367
374 // Pref indicating user activity set. Session start time valid. 368 // Pref indicating user activity set. Session start time valid.
(...skipping 26 matching lines...) Expand all
401 // Pref indicating user activity set. Session start time not set. 395 // Pref indicating user activity set. Session start time not set.
402 SetSessionUserActivitySeenPref(true); 396 SetSessionUserActivitySeenPref(true);
403 ClearSessionStartTimePref(); 397 ClearSessionStartTimePref();
404 CreateSessionLengthLimiter(true); 398 CreateSessionLengthLimiter(true);
405 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); 399 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
406 EXPECT_FALSE(IsSessionStartTimePrefSet()); 400 EXPECT_FALSE(IsSessionStartTimePrefSet());
407 DestroySessionLengthLimiter(); 401 DestroySessionLengthLimiter();
408 402
409 // Pref indicating user activity not set. Session start time in the future. 403 // Pref indicating user activity not set. Session start time in the future.
410 ClearSessionUserActivitySeenPref(); 404 ClearSessionUserActivitySeenPref();
411 SetSessionStartTimePref( 405 SetSessionStartTimePref(runner_->NowTicks() + base::TimeDelta::FromHours(2));
412 runner_->GetCurrentMockTime() + base::TimeDelta::FromHours(2));
413 CreateSessionLengthLimiter(true); 406 CreateSessionLengthLimiter(true);
414 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); 407 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
415 EXPECT_FALSE(IsSessionStartTimePrefSet()); 408 EXPECT_FALSE(IsSessionStartTimePrefSet());
416 DestroySessionLengthLimiter(); 409 DestroySessionLengthLimiter();
417 410
418 // Pref indicating user activity set. Session start time in the future. 411 // Pref indicating user activity set. Session start time in the future.
419 SetSessionUserActivitySeenPref(true); 412 SetSessionUserActivitySeenPref(true);
420 SetSessionStartTimePref( 413 SetSessionStartTimePref(runner_->NowTicks() + base::TimeDelta::FromHours(2));
421 runner_->GetCurrentMockTime() + base::TimeDelta::FromHours(2));
422 CreateSessionLengthLimiter(true); 414 CreateSessionLengthLimiter(true);
423 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); 415 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
424 EXPECT_FALSE(IsSessionStartTimePrefSet()); 416 EXPECT_FALSE(IsSessionStartTimePrefSet());
425 DestroySessionLengthLimiter(); 417 DestroySessionLengthLimiter();
426 418
427 const base::TimeTicks stored_session_start_time = 419 const base::TimeTicks stored_session_start_time =
428 runner_->GetCurrentMockTime() - base::TimeDelta::FromHours(2); 420 runner_->NowTicks() - base::TimeDelta::FromHours(2);
429 421
430 // Pref indicating user activity not set. Session start time valid. 422 // Pref indicating user activity not set. Session start time valid.
431 ClearSessionUserActivitySeenPref(); 423 ClearSessionUserActivitySeenPref();
432 SetSessionStartTimePref(stored_session_start_time); 424 SetSessionStartTimePref(stored_session_start_time);
433 CreateSessionLengthLimiter(true); 425 CreateSessionLengthLimiter(true);
434 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet()); 426 EXPECT_FALSE(IsSessionUserActivitySeenPrefSet());
435 EXPECT_EQ(stored_session_start_time, GetSessionStartTimePref()); 427 EXPECT_EQ(stored_session_start_time, GetSessionStartTimePref());
436 DestroySessionLengthLimiter(); 428 DestroySessionLengthLimiter();
437 429
438 // Pref indicating user activity set. Session start time valid. 430 // Pref indicating user activity set. Session start time valid.
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
739 runner_->FastForwardBy(base::TimeDelta::FromSeconds(50)); 731 runner_->FastForwardBy(base::TimeDelta::FromSeconds(50));
740 732
741 // Remove the session length limit. 733 // Remove the session length limit.
742 ClearSessionLengthLimitPref(); 734 ClearSessionLengthLimitPref();
743 735
744 // Verify that no timer fires to terminate the session. 736 // Verify that no timer fires to terminate the session.
745 runner_->FastForwardUntilNoTasksRemain(); 737 runner_->FastForwardUntilNoTasksRemain();
746 } 738 }
747 739
748 } // namespace chromeos 740 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698