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

Side by Side Diff: ash/wm/lock_state_controller_impl2_unittest.cc

Issue 15974008: Rename SessionStateController -> LockStateController (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « ash/wm/lock_state_controller_impl2.cc ('k') | ash/wm/lock_state_observer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "ash/wm/session_state_controller_impl2.h"
6
7 #include "ash/ash_switches.h" 5 #include "ash/ash_switches.h"
8 #include "ash/session_state_delegate.h" 6 #include "ash/session_state_delegate.h"
9 #include "ash/shell.h" 7 #include "ash/shell.h"
10 #include "ash/shell_window_ids.h" 8 #include "ash/shell_window_ids.h"
11 #include "ash/test/ash_test_base.h" 9 #include "ash/test/ash_test_base.h"
12 #include "ash/test/test_shell_delegate.h" 10 #include "ash/test/test_shell_delegate.h"
11 #include "ash/wm/lock_state_controller.h"
12 #include "ash/wm/lock_state_controller_impl2.h"
13 #include "ash/wm/power_button_controller.h" 13 #include "ash/wm/power_button_controller.h"
14 #include "ash/wm/session_state_animator.h" 14 #include "ash/wm/session_state_animator.h"
15 #include "ash/wm/session_state_controller.h"
16 #include "base/command_line.h" 15 #include "base/command_line.h"
17 #include "base/memory/scoped_ptr.h" 16 #include "base/memory/scoped_ptr.h"
18 #include "base/time.h" 17 #include "base/time.h"
19 #include "ui/aura/env.h" 18 #include "ui/aura/env.h"
20 #include "ui/aura/root_window.h" 19 #include "ui/aura/root_window.h"
21 #include "ui/aura/test/event_generator.h" 20 #include "ui/aura/test/event_generator.h"
22 #include "ui/compositor/layer_animator.h" 21 #include "ui/compositor/layer_animator.h"
23 #include "ui/compositor/scoped_animation_duration_scale_mode.h" 22 #include "ui/compositor/scoped_animation_duration_scale_mode.h"
24 #include "ui/compositor/scoped_layer_animation_settings.h" 23 #include "ui/compositor/scoped_layer_animation_settings.h"
25 #include "ui/gfx/rect.h" 24 #include "ui/gfx/rect.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 GetContainer(internal::kShellWindowId_DesktopBackgroundContainer)-> 68 GetContainer(internal::kShellWindowId_DesktopBackgroundContainer)->
70 layer()->GetAnimator()); 69 layer()->GetAnimator());
71 settings.SetTransitionDuration(base::TimeDelta()); 70 settings.SetTransitionDuration(base::TimeDelta());
72 GetContainer(internal::kShellWindowId_DesktopBackgroundContainer)->Hide(); 71 GetContainer(internal::kShellWindowId_DesktopBackgroundContainer)->Hide();
73 } 72 }
74 73
75 } // namespace 74 } // namespace
76 75
77 // Fake implementation of PowerButtonControllerDelegate that just logs requests 76 // Fake implementation of PowerButtonControllerDelegate that just logs requests
78 // to lock the screen and shut down the device. 77 // to lock the screen and shut down the device.
79 class TestSessionStateControllerDelegate : 78 class TestLockStateControllerDelegate : public LockStateControllerDelegate {
80 public SessionStateControllerDelegate {
81 public: 79 public:
82 TestSessionStateControllerDelegate() 80 TestLockStateControllerDelegate()
83 : num_lock_requests_(0), 81 : num_lock_requests_(0),
84 num_shutdown_requests_(0) {} 82 num_shutdown_requests_(0) {}
85 83
86 int num_lock_requests() const { return num_lock_requests_; } 84 int num_lock_requests() const { return num_lock_requests_; }
87 int num_shutdown_requests() const { return num_shutdown_requests_; } 85 int num_shutdown_requests() const { return num_shutdown_requests_; }
88 86
89 // SessionStateControllerDelegate implementation. 87 // LockStateControllerDelegate implementation.
90 virtual void RequestLockScreen() OVERRIDE { 88 virtual void RequestLockScreen() OVERRIDE {
91 num_lock_requests_++; 89 num_lock_requests_++;
92 } 90 }
93 virtual void RequestShutdown() OVERRIDE { 91 virtual void RequestShutdown() OVERRIDE {
94 num_shutdown_requests_++; 92 num_shutdown_requests_++;
95 } 93 }
96 94
97 private: 95 private:
98 int num_lock_requests_; 96 int num_lock_requests_;
99 int num_shutdown_requests_; 97 int num_shutdown_requests_;
100 98
101 DISALLOW_COPY_AND_ASSIGN(TestSessionStateControllerDelegate); 99 DISALLOW_COPY_AND_ASSIGN(TestLockStateControllerDelegate);
102 }; 100 };
103 101
104 class SessionStateControllerImpl2Test : public AshTestBase { 102 class LockStateControllerImpl2Test : public AshTestBase {
105 public: 103 public:
106 SessionStateControllerImpl2Test() : controller_(NULL), delegate_(NULL) {} 104 LockStateControllerImpl2Test() : controller_(NULL), delegate_(NULL) {}
107 virtual ~SessionStateControllerImpl2Test() {} 105 virtual ~LockStateControllerImpl2Test() {}
108 106
109 virtual void SetUp() OVERRIDE { 107 virtual void SetUp() OVERRIDE {
110 CHECK(!CommandLine::ForCurrentProcess()->HasSwitch( 108 CHECK(!CommandLine::ForCurrentProcess()->HasSwitch(
111 ash::switches::kAshDisableNewLockAnimations)); 109 ash::switches::kAshDisableNewLockAnimations));
112 110
113 AshTestBase::SetUp(); 111 AshTestBase::SetUp();
114 112
115 // We would control animations in a fine way: 113 // We would control animations in a fine way:
116 animation_duration_mode_.reset(new ui::ScopedAnimationDurationScaleMode( 114 animation_duration_mode_.reset(new ui::ScopedAnimationDurationScaleMode(
117 ui::ScopedAnimationDurationScaleMode::NORMAL_DURATION)); 115 ui::ScopedAnimationDurationScaleMode::NORMAL_DURATION));
118 // TODO(antrim) : restore 116 // TODO(antrim) : restore
119 // animator_helper_ = ui::test::CreateLayerAnimatorHelperForTest(); 117 // animator_helper_ = ui::test::CreateLayerAnimatorHelperForTest();
120 118
121 // Temporary disable animations so that observer is always called, and 119 // Temporary disable animations so that observer is always called, and
122 // no leaks happen during tests. 120 // no leaks happen during tests.
123 animation_duration_mode_.reset(new ui::ScopedAnimationDurationScaleMode( 121 animation_duration_mode_.reset(new ui::ScopedAnimationDurationScaleMode(
124 ui::ScopedAnimationDurationScaleMode::ZERO_DURATION)); 122 ui::ScopedAnimationDurationScaleMode::ZERO_DURATION));
125 // TODO(antrim): once there is a way to mock time and run animations, make 123 // TODO(antrim): once there is a way to mock time and run animations, make
126 // sure that animations are finished even in simple tests. 124 // sure that animations are finished even in simple tests.
127 125
128 delegate_ = new TestSessionStateControllerDelegate; 126 delegate_ = new TestLockStateControllerDelegate;
129 controller_ = Shell::GetInstance()->power_button_controller(); 127 controller_ = Shell::GetInstance()->power_button_controller();
130 state_controller_ = static_cast<SessionStateControllerImpl2*>( 128 lock_state_controller_ = static_cast<LockStateControllerImpl2*>(
131 Shell::GetInstance()->session_state_controller()); 129 Shell::GetInstance()->lock_state_controller());
132 state_controller_->SetDelegate(delegate_); // transfers ownership 130 lock_state_controller_->SetDelegate(delegate_); // transfers ownership
133 test_api_.reset( 131 test_api_.reset(
134 new SessionStateControllerImpl2::TestApi(state_controller_)); 132 new LockStateControllerImpl2::TestApi(lock_state_controller_));
135 animator_api_.reset( 133 animator_api_.reset(
136 new SessionStateAnimator::TestApi(state_controller_-> 134 new SessionStateAnimator::TestApi(lock_state_controller_->
137 animator_.get())); 135 animator_.get()));
138 shell_delegate_ = reinterpret_cast<TestShellDelegate*>( 136 shell_delegate_ = reinterpret_cast<TestShellDelegate*>(
139 ash::Shell::GetInstance()->delegate()); 137 ash::Shell::GetInstance()->delegate());
140 state_delegate_ = Shell::GetInstance()->session_state_delegate(); 138 session_state_delegate_ = Shell::GetInstance()->session_state_delegate();
141 } 139 }
142 140
143 virtual void TearDown() { 141 virtual void TearDown() {
144 // TODO(antrim) : restore 142 // TODO(antrim) : restore
145 // animator_helper_->AdvanceUntilDone(); 143 // animator_helper_->AdvanceUntilDone();
146 AshTestBase::TearDown(); 144 AshTestBase::TearDown();
147 } 145 }
148 146
149 protected: 147 protected:
150 void GenerateMouseMoveEvent() { 148 void GenerateMouseMoveEvent() {
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 void ExpectBackgroundIsHiding() { 302 void ExpectBackgroundIsHiding() {
305 //TODO (antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating()); 303 //TODO (antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating());
306 EXPECT_TRUE( 304 EXPECT_TRUE(
307 animator_api_->ContainersAreAnimated( 305 animator_api_->ContainersAreAnimated(
308 SessionStateAnimator::DESKTOP_BACKGROUND, 306 SessionStateAnimator::DESKTOP_BACKGROUND,
309 SessionStateAnimator::ANIMATION_FADE_OUT)); 307 SessionStateAnimator::ANIMATION_FADE_OUT));
310 } 308 }
311 309
312 void ExpectUnlockedState() { 310 void ExpectUnlockedState() {
313 //TODO (antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating()); 311 //TODO (antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
314 EXPECT_FALSE(state_delegate_->IsScreenLocked()); 312 EXPECT_FALSE(session_state_delegate_->IsScreenLocked());
315 313
316 aura::Window::Windows containers; 314 aura::Window::Windows containers;
317 315
318 SessionStateAnimator::GetContainers( 316 SessionStateAnimator::GetContainers(
319 SessionStateAnimator::LAUNCHER | 317 SessionStateAnimator::LAUNCHER |
320 SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS, 318 SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS,
321 &containers); 319 &containers);
322 for (aura::Window::Windows::const_iterator it = containers.begin(); 320 for (aura::Window::Windows::const_iterator it = containers.begin();
323 it != containers.end(); ++it) { 321 it != containers.end(); ++it) {
324 aura::Window* window = *it; 322 aura::Window* window = *it;
325 ui::Layer* layer = window->layer(); 323 ui::Layer* layer = window->layer();
326 EXPECT_EQ(1.0f, layer->opacity()); 324 EXPECT_EQ(1.0f, layer->opacity());
327 EXPECT_EQ(0.0f, layer->layer_brightness()); 325 EXPECT_EQ(0.0f, layer->layer_brightness());
328 EXPECT_EQ(0.0f, layer->layer_saturation()); 326 EXPECT_EQ(0.0f, layer->layer_saturation());
329 EXPECT_EQ(gfx::Transform(), layer->transform()); 327 EXPECT_EQ(gfx::Transform(), layer->transform());
330 } 328 }
331 } 329 }
332 330
333 void ExpectLockedState() { 331 void ExpectLockedState() {
334 //TODO (antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating()); 332 //TODO (antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
335 EXPECT_TRUE(state_delegate_->IsScreenLocked()); 333 EXPECT_TRUE(session_state_delegate_->IsScreenLocked());
336 334
337 aura::Window::Windows containers; 335 aura::Window::Windows containers;
338 336
339 SessionStateAnimator::GetContainers( 337 SessionStateAnimator::GetContainers(
340 SessionStateAnimator::LOCK_SCREEN_RELATED_CONTAINERS | 338 SessionStateAnimator::LOCK_SCREEN_RELATED_CONTAINERS |
341 SessionStateAnimator::LOCK_SCREEN_CONTAINERS, 339 SessionStateAnimator::LOCK_SCREEN_CONTAINERS,
342 &containers); 340 &containers);
343 for (aura::Window::Windows::const_iterator it = containers.begin(); 341 for (aura::Window::Windows::const_iterator it = containers.begin();
344 it != containers.end(); ++it) { 342 it != containers.end(); ++it) {
345 aura::Window* window = *it; 343 aura::Window* window = *it;
(...skipping 17 matching lines...) Expand all
363 361
364 void PressLockButton() { 362 void PressLockButton() {
365 controller_->OnLockButtonEvent(true, base::TimeTicks::Now()); 363 controller_->OnLockButtonEvent(true, base::TimeTicks::Now());
366 } 364 }
367 365
368 void ReleaseLockButton() { 366 void ReleaseLockButton() {
369 controller_->OnLockButtonEvent(false, base::TimeTicks::Now()); 367 controller_->OnLockButtonEvent(false, base::TimeTicks::Now());
370 } 368 }
371 369
372 void SystemLocks() { 370 void SystemLocks() {
373 state_controller_->OnLockStateChanged(true); 371 lock_state_controller_->OnLockStateChanged(true);
374 state_delegate_->LockScreen(); 372 session_state_delegate_->LockScreen();
375 //TODO (antrim) : restore animator_helper_->Advance(base::TimeDelta()); 373 //TODO (antrim) : restore animator_helper_->Advance(base::TimeDelta());
376 } 374 }
377 375
378 void SuccessfulAuthentication(bool* call_flag) { 376 void SuccessfulAuthentication(bool* call_flag) {
379 base::Closure closure = base::Bind(&CheckCalledCallback, call_flag); 377 base::Closure closure = base::Bind(&CheckCalledCallback, call_flag);
380 state_controller_->OnLockScreenHide(closure); 378 lock_state_controller_->OnLockScreenHide(closure);
381 //TODO (antrim) : restore animator_helper_->Advance(base::TimeDelta()); 379 //TODO (antrim) : restore animator_helper_->Advance(base::TimeDelta());
382 } 380 }
383 381
384 void SystemUnlocks() { 382 void SystemUnlocks() {
385 state_controller_->OnLockStateChanged(false); 383 lock_state_controller_->OnLockStateChanged(false);
386 state_delegate_->UnlockScreen(); 384 session_state_delegate_->UnlockScreen();
387 //TODO (antrim) : restore animator_helper_->Advance(base::TimeDelta()); 385 //TODO (antrim) : restore animator_helper_->Advance(base::TimeDelta());
388 } 386 }
389 387
390 void Initialize(bool legacy_button, user::LoginStatus status) { 388 void Initialize(bool legacy_button, user::LoginStatus status) {
391 controller_->set_has_legacy_power_button_for_test(legacy_button); 389 controller_->set_has_legacy_power_button_for_test(legacy_button);
392 state_controller_->OnLoginStateChanged(status); 390 lock_state_controller_->OnLoginStateChanged(status);
393 SetUserLoggedIn(status != user::LOGGED_IN_NONE); 391 SetUserLoggedIn(status != user::LOGGED_IN_NONE);
394 if (status == user::LOGGED_IN_GUEST) 392 if (status == user::LOGGED_IN_GUEST)
395 SetCanLockScreen(false); 393 SetCanLockScreen(false);
396 state_controller_->OnLockStateChanged(false); 394 lock_state_controller_->OnLockStateChanged(false);
397 } 395 }
398 396
399 PowerButtonController* controller_; // not owned 397 PowerButtonController* controller_; // not owned
400 SessionStateControllerImpl2* state_controller_; // not owned 398 LockStateControllerImpl2* lock_state_controller_; // not owned
401 TestSessionStateControllerDelegate* delegate_; // not owned 399 TestLockStateControllerDelegate* delegate_; // not owned
402 TestShellDelegate* shell_delegate_; // not owned 400 TestShellDelegate* shell_delegate_; // not owned
403 SessionStateDelegate* state_delegate_; // not owned 401 SessionStateDelegate* session_state_delegate_; // not owned
404 402
405 scoped_ptr<ui::ScopedAnimationDurationScaleMode> animation_duration_mode_; 403 scoped_ptr<ui::ScopedAnimationDurationScaleMode> animation_duration_mode_;
406 scoped_ptr<SessionStateControllerImpl2::TestApi> test_api_; 404 scoped_ptr<LockStateControllerImpl2::TestApi> test_api_;
407 scoped_ptr<SessionStateAnimator::TestApi> animator_api_; 405 scoped_ptr<SessionStateAnimator::TestApi> animator_api_;
408 // TODO(antrim) : restore 406 // TODO(antrim) : restore
409 // scoped_ptr<ui::test::AnimationContainerTestHelper> animator_helper_; 407 // scoped_ptr<ui::test::AnimationContainerTestHelper> animator_helper_;
410 408
411 private: 409 private:
412 DISALLOW_COPY_AND_ASSIGN(SessionStateControllerImpl2Test); 410 DISALLOW_COPY_AND_ASSIGN(LockStateControllerImpl2Test);
413 }; 411 };
414 412
415 // Test the lock-to-shutdown flow for non-Chrome-OS hardware that doesn't 413 // Test the lock-to-shutdown flow for non-Chrome-OS hardware that doesn't
416 // correctly report power button releases. We should lock immediately the first 414 // correctly report power button releases. We should lock immediately the first
417 // time the button is pressed and shut down when it's pressed from the locked 415 // time the button is pressed and shut down when it's pressed from the locked
418 // state. 416 // state.
419 // TODO(antrim): Reenable this: http://crbug.com/167048 417 // TODO(antrim): Reenable this: http://crbug.com/167048
420 TEST_F(SessionStateControllerImpl2Test, DISABLED_LegacyLockAndShutDown) { 418 TEST_F(LockStateControllerImpl2Test, DISABLED_LegacyLockAndShutDown) {
421 Initialize(true, user::LOGGED_IN_USER); 419 Initialize(true, user::LOGGED_IN_USER);
422 420
423 ExpectUnlockedState(); 421 ExpectUnlockedState();
424 422
425 // We should request that the screen be locked immediately after seeing the 423 // We should request that the screen be locked immediately after seeing the
426 // power button get pressed. 424 // power button get pressed.
427 PressPowerButton(); 425 PressPowerButton();
428 426
429 ExpectPreLockAnimationStarted(); 427 ExpectPreLockAnimationStarted();
430 428
431 EXPECT_FALSE(test_api_->is_lock_cancellable()); 429 EXPECT_FALSE(test_api_->is_lock_cancellable());
432 430
433 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); 431 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS);
434 432
435 ExpectPreLockAnimationFinished(); 433 ExpectPreLockAnimationFinished();
436 EXPECT_EQ(1, delegate_->num_lock_requests()); 434 EXPECT_EQ(1, delegate_->num_lock_requests());
437 435
438 // Notify that we locked successfully. 436 // Notify that we locked successfully.
439 state_controller_->OnStartingLock(); 437 lock_state_controller_->OnStartingLock();
440 // We had that animation already. 438 // We had that animation already.
441 //TODO (antrim) : restore 439 //TODO (antrim) : restore
442 // EXPECT_FALSE(animator_helper_->IsAnimating()); 440 // EXPECT_FALSE(animator_helper_->IsAnimating());
443 441
444 SystemLocks(); 442 SystemLocks();
445 443
446 ExpectPostLockAnimationStarted(); 444 ExpectPostLockAnimationStarted();
447 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); 445 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS);
448 ExpectPastLockAnimationFinished(); 446 ExpectPastLockAnimationFinished();
449 447
(...skipping 13 matching lines...) Expand all
463 GenerateMouseMoveEvent(); 461 GenerateMouseMoveEvent();
464 EXPECT_FALSE(cursor_visible()); 462 EXPECT_FALSE(cursor_visible());
465 463
466 EXPECT_TRUE(test_api_->real_shutdown_timer_is_running()); 464 EXPECT_TRUE(test_api_->real_shutdown_timer_is_running());
467 test_api_->trigger_real_shutdown_timeout(); 465 test_api_->trigger_real_shutdown_timeout();
468 EXPECT_EQ(1, NumShutdownRequests()); 466 EXPECT_EQ(1, NumShutdownRequests());
469 } 467 }
470 468
471 // Test that we start shutting down immediately if the power button is pressed 469 // Test that we start shutting down immediately if the power button is pressed
472 // while we're not logged in on an unofficial system. 470 // while we're not logged in on an unofficial system.
473 TEST_F(SessionStateControllerImpl2Test, LegacyNotLoggedIn) { 471 TEST_F(LockStateControllerImpl2Test, LegacyNotLoggedIn) {
474 Initialize(true, user::LOGGED_IN_NONE); 472 Initialize(true, user::LOGGED_IN_NONE);
475 473
476 PressPowerButton(); 474 PressPowerButton();
477 ExpectShutdownAnimationStarted(); 475 ExpectShutdownAnimationStarted();
478 476
479 EXPECT_TRUE(test_api_->real_shutdown_timer_is_running()); 477 EXPECT_TRUE(test_api_->real_shutdown_timer_is_running());
480 } 478 }
481 479
482 // Test that we start shutting down immediately if the power button is pressed 480 // Test that we start shutting down immediately if the power button is pressed
483 // while we're logged in as a guest on an unofficial system. 481 // while we're logged in as a guest on an unofficial system.
484 TEST_F(SessionStateControllerImpl2Test, LegacyGuest) { 482 TEST_F(LockStateControllerImpl2Test, LegacyGuest) {
485 Initialize(true, user::LOGGED_IN_GUEST); 483 Initialize(true, user::LOGGED_IN_GUEST);
486 484
487 PressPowerButton(); 485 PressPowerButton();
488 ExpectShutdownAnimationStarted(); 486 ExpectShutdownAnimationStarted();
489 487
490 EXPECT_TRUE(test_api_->real_shutdown_timer_is_running()); 488 EXPECT_TRUE(test_api_->real_shutdown_timer_is_running());
491 } 489 }
492 490
493 // When we hold the power button while the user isn't logged in, we should shut 491 // When we hold the power button while the user isn't logged in, we should shut
494 // down the machine directly. 492 // down the machine directly.
495 TEST_F(SessionStateControllerImpl2Test, ShutdownWhenNotLoggedIn) { 493 TEST_F(LockStateControllerImpl2Test, ShutdownWhenNotLoggedIn) {
496 Initialize(false, user::LOGGED_IN_NONE); 494 Initialize(false, user::LOGGED_IN_NONE);
497 495
498 // Press the power button and check that we start the shutdown timer. 496 // Press the power button and check that we start the shutdown timer.
499 PressPowerButton(); 497 PressPowerButton();
500 EXPECT_FALSE(test_api_->is_animating_lock()); 498 EXPECT_FALSE(test_api_->is_animating_lock());
501 EXPECT_TRUE(test_api_->shutdown_timer_is_running()); 499 EXPECT_TRUE(test_api_->shutdown_timer_is_running());
502 ExpectShutdownAnimationStarted(); 500 ExpectShutdownAnimationStarted();
503 501
504 AdvancePartially(SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN, 0.5f); 502 AdvancePartially(SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN, 0.5f);
505 503
(...skipping 19 matching lines...) Expand all
525 EXPECT_EQ(0, NumShutdownRequests()); 523 EXPECT_EQ(0, NumShutdownRequests());
526 524
527 // When the timout fires, we should request a shutdown. 525 // When the timout fires, we should request a shutdown.
528 test_api_->trigger_real_shutdown_timeout(); 526 test_api_->trigger_real_shutdown_timeout();
529 527
530 EXPECT_EQ(1, NumShutdownRequests()); 528 EXPECT_EQ(1, NumShutdownRequests());
531 } 529 }
532 530
533 // Test that we lock the screen and deal with unlocking correctly. 531 // Test that we lock the screen and deal with unlocking correctly.
534 // TODO(antrim): Reenable this: http://crbug.com/167048 532 // TODO(antrim): Reenable this: http://crbug.com/167048
535 TEST_F(SessionStateControllerImpl2Test, DISABLED_LockAndUnlock) { 533 TEST_F(LockStateControllerImpl2Test, DISABLED_LockAndUnlock) {
536 Initialize(false, user::LOGGED_IN_USER); 534 Initialize(false, user::LOGGED_IN_USER);
537 535
538 ExpectUnlockedState(); 536 ExpectUnlockedState();
539 537
540 // Press the power button and check that the lock timer is started and that we 538 // Press the power button and check that the lock timer is started and that we
541 // start lifting the non-screen-locker containers. 539 // start lifting the non-screen-locker containers.
542 PressPowerButton(); 540 PressPowerButton();
543 541
544 ExpectPreLockAnimationStarted(); 542 ExpectPreLockAnimationStarted();
545 EXPECT_TRUE(test_api_->is_lock_cancellable()); 543 EXPECT_TRUE(test_api_->is_lock_cancellable());
546 EXPECT_EQ(0, delegate_->num_lock_requests()); 544 EXPECT_EQ(0, delegate_->num_lock_requests());
547 545
548 Advance(SessionStateAnimator::ANIMATION_SPEED_UNDOABLE); 546 Advance(SessionStateAnimator::ANIMATION_SPEED_UNDOABLE);
549 ExpectPreLockAnimationFinished(); 547 ExpectPreLockAnimationFinished();
550 548
551 EXPECT_EQ(1, delegate_->num_lock_requests()); 549 EXPECT_EQ(1, delegate_->num_lock_requests());
552 550
553 // Notify that we locked successfully. 551 // Notify that we locked successfully.
554 state_controller_->OnStartingLock(); 552 lock_state_controller_->OnStartingLock();
555 // We had that animation already. 553 // We had that animation already.
556 //TODO (antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating()); 554 //TODO (antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
557 555
558 SystemLocks(); 556 SystemLocks();
559 557
560 ExpectPostLockAnimationStarted(); 558 ExpectPostLockAnimationStarted();
561 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); 559 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS);
562 ExpectPastLockAnimationFinished(); 560 ExpectPastLockAnimationFinished();
563 561
564 // When we release the power button, the lock-to-shutdown timer should be 562 // When we release the power button, the lock-to-shutdown timer should be
(...skipping 20 matching lines...) Expand all
585 583
586 ExpectUnlockAfterUIDestroyedAnimationStarted(); 584 ExpectUnlockAfterUIDestroyedAnimationStarted();
587 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); 585 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS);
588 ExpectUnlockAfterUIDestroyedAnimationFinished(); 586 ExpectUnlockAfterUIDestroyedAnimationFinished();
589 587
590 ExpectUnlockedState(); 588 ExpectUnlockedState();
591 } 589 }
592 590
593 // Test that we deal with cancelling lock correctly. 591 // Test that we deal with cancelling lock correctly.
594 // TODO(antrim): Reenable this: http://crbug.com/167048 592 // TODO(antrim): Reenable this: http://crbug.com/167048
595 TEST_F(SessionStateControllerImpl2Test, DISABLED_LockAndCancel) { 593 TEST_F(LockStateControllerImpl2Test, DISABLED_LockAndCancel) {
596 Initialize(false, user::LOGGED_IN_USER); 594 Initialize(false, user::LOGGED_IN_USER);
597 595
598 ExpectUnlockedState(); 596 ExpectUnlockedState();
599 597
600 // Press the power button and check that the lock timer is started and that we 598 // Press the power button and check that the lock timer is started and that we
601 // start lifting the non-screen-locker containers. 599 // start lifting the non-screen-locker containers.
602 PressPowerButton(); 600 PressPowerButton();
603 601
604 ExpectPreLockAnimationStarted(); 602 ExpectPreLockAnimationStarted();
605 EXPECT_TRUE(test_api_->is_lock_cancellable()); 603 EXPECT_TRUE(test_api_->is_lock_cancellable());
(...skipping 16 matching lines...) Expand all
622 // Expect no flickering, animation should proceed from mid-state. 620 // Expect no flickering, animation should proceed from mid-state.
623 EXPECT_EQ(transform_before_button_released, transform_after_button_released); 621 EXPECT_EQ(transform_before_button_released, transform_after_button_released);
624 622
625 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); 623 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS);
626 ExpectUnlockedState(); 624 ExpectUnlockedState();
627 EXPECT_EQ(0, delegate_->num_lock_requests()); 625 EXPECT_EQ(0, delegate_->num_lock_requests());
628 } 626 }
629 627
630 // Test that we deal with cancelling lock correctly. 628 // Test that we deal with cancelling lock correctly.
631 // TODO(antrim): Reenable this: http://crbug.com/167048 629 // TODO(antrim): Reenable this: http://crbug.com/167048
632 TEST_F(SessionStateControllerImpl2Test, DISABLED_LockAndCancelAndLockAgain) { 630 TEST_F(LockStateControllerImpl2Test,
631 DISABLED_LockAndCancelAndLockAgain) {
633 Initialize(false, user::LOGGED_IN_USER); 632 Initialize(false, user::LOGGED_IN_USER);
634 633
635 ExpectUnlockedState(); 634 ExpectUnlockedState();
636 635
637 // Press the power button and check that the lock timer is started and that we 636 // Press the power button and check that the lock timer is started and that we
638 // start lifting the non-screen-locker containers. 637 // start lifting the non-screen-locker containers.
639 PressPowerButton(); 638 PressPowerButton();
640 639
641 ExpectPreLockAnimationStarted(); 640 ExpectPreLockAnimationStarted();
642 EXPECT_TRUE(test_api_->is_lock_cancellable()); 641 EXPECT_TRUE(test_api_->is_lock_cancellable());
(...skipping 16 matching lines...) Expand all
659 EXPECT_EQ(0, delegate_->num_lock_requests()); 658 EXPECT_EQ(0, delegate_->num_lock_requests());
660 ExpectPreLockAnimationStarted(); 659 ExpectPreLockAnimationStarted();
661 660
662 AdvancePartially(SessionStateAnimator::ANIMATION_SPEED_UNDOABLE, 0.6f); 661 AdvancePartially(SessionStateAnimator::ANIMATION_SPEED_UNDOABLE, 0.6f);
663 ExpectPreLockAnimationFinished(); 662 ExpectPreLockAnimationFinished();
664 EXPECT_EQ(1, delegate_->num_lock_requests()); 663 EXPECT_EQ(1, delegate_->num_lock_requests());
665 } 664 }
666 665
667 // Hold the power button down from the unlocked state to eventual shutdown. 666 // Hold the power button down from the unlocked state to eventual shutdown.
668 // TODO(antrim): Reenable this: http://crbug.com/167048 667 // TODO(antrim): Reenable this: http://crbug.com/167048
669 TEST_F(SessionStateControllerImpl2Test, DISABLED_LockToShutdown) { 668 TEST_F(LockStateControllerImpl2Test, DISABLED_LockToShutdown) {
670 Initialize(false, user::LOGGED_IN_USER); 669 Initialize(false, user::LOGGED_IN_USER);
671 670
672 // Hold the power button and lock the screen. 671 // Hold the power button and lock the screen.
673 PressPowerButton(); 672 PressPowerButton();
674 EXPECT_TRUE(test_api_->is_animating_lock()); 673 EXPECT_TRUE(test_api_->is_animating_lock());
675 674
676 Advance(SessionStateAnimator::ANIMATION_SPEED_UNDOABLE); 675 Advance(SessionStateAnimator::ANIMATION_SPEED_UNDOABLE);
677 SystemLocks(); 676 SystemLocks();
678 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); 677 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS);
679 678
(...skipping 12 matching lines...) Expand all
692 test_api_->trigger_shutdown_timeout(); 691 test_api_->trigger_shutdown_timeout();
693 692
694 EXPECT_TRUE(test_api_->real_shutdown_timer_is_running()); 693 EXPECT_TRUE(test_api_->real_shutdown_timer_is_running());
695 EXPECT_EQ(0, NumShutdownRequests()); 694 EXPECT_EQ(0, NumShutdownRequests());
696 test_api_->trigger_real_shutdown_timeout(); 695 test_api_->trigger_real_shutdown_timeout();
697 EXPECT_EQ(1, NumShutdownRequests()); 696 EXPECT_EQ(1, NumShutdownRequests());
698 } 697 }
699 698
700 // Hold the power button down from the unlocked state to eventual shutdown, 699 // Hold the power button down from the unlocked state to eventual shutdown,
701 // then release the button while system does locking. 700 // then release the button while system does locking.
702 TEST_F(SessionStateControllerImpl2Test, CancelLockToShutdown) { 701 TEST_F(LockStateControllerImpl2Test, CancelLockToShutdown) {
703 Initialize(false, user::LOGGED_IN_USER); 702 Initialize(false, user::LOGGED_IN_USER);
704 703
705 PressPowerButton(); 704 PressPowerButton();
706 705
707 // Hold the power button and lock the screen. 706 // Hold the power button and lock the screen.
708 EXPECT_TRUE(test_api_->is_animating_lock()); 707 EXPECT_TRUE(test_api_->is_animating_lock());
709 708
710 Advance(SessionStateAnimator::ANIMATION_SPEED_UNDOABLE); 709 Advance(SessionStateAnimator::ANIMATION_SPEED_UNDOABLE);
711 SystemLocks(); 710 SystemLocks();
712 AdvancePartially(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, 0.5f); 711 AdvancePartially(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, 0.5f);
713 712
714 // Power button is released while system attempts to lock. 713 // Power button is released while system attempts to lock.
715 ReleasePowerButton(); 714 ReleasePowerButton();
716 715
717 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); 716 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS);
718 717
719 EXPECT_FALSE(state_controller_->ShutdownRequested()); 718 EXPECT_FALSE(lock_state_controller_->ShutdownRequested());
720 EXPECT_FALSE(test_api_->lock_to_shutdown_timer_is_running()); 719 EXPECT_FALSE(test_api_->lock_to_shutdown_timer_is_running());
721 EXPECT_FALSE(test_api_->shutdown_timer_is_running()); 720 EXPECT_FALSE(test_api_->shutdown_timer_is_running());
722 } 721 }
723 722
724 // Test that we handle the case where lock requests are ignored. 723 // Test that we handle the case where lock requests are ignored.
725 // TODO(antrim): Reenable this: http://crbug.com/167048 724 // TODO(antrim): Reenable this: http://crbug.com/167048
726 TEST_F(SessionStateControllerImpl2Test, DISABLED_Lock) { 725 TEST_F(LockStateControllerImpl2Test, DISABLED_Lock) {
727 // We require animations to have a duration for this test. 726 // We require animations to have a duration for this test.
728 ui::ScopedAnimationDurationScaleMode normal_duration_mode( 727 ui::ScopedAnimationDurationScaleMode normal_duration_mode(
729 ui::ScopedAnimationDurationScaleMode::NORMAL_DURATION); 728 ui::ScopedAnimationDurationScaleMode::NORMAL_DURATION);
730 729
731 Initialize(false, user::LOGGED_IN_USER); 730 Initialize(false, user::LOGGED_IN_USER);
732 731
733 // Hold the power button and lock the screen. 732 // Hold the power button and lock the screen.
734 PressPowerButton(); 733 PressPowerButton();
735 ExpectPreLockAnimationStarted(); 734 ExpectPreLockAnimationStarted();
736 735
737 Advance(SessionStateAnimator::ANIMATION_SPEED_UNDOABLE); 736 Advance(SessionStateAnimator::ANIMATION_SPEED_UNDOABLE);
738 737
739 EXPECT_EQ(1, delegate_->num_lock_requests()); 738 EXPECT_EQ(1, delegate_->num_lock_requests());
740 EXPECT_TRUE(test_api_->lock_fail_timer_is_running()); 739 EXPECT_TRUE(test_api_->lock_fail_timer_is_running());
741 // We shouldn't start the lock-to-shutdown timer until the screen has actually 740 // We shouldn't start the lock-to-shutdown timer until the screen has actually
742 // been locked and this was animated. 741 // been locked and this was animated.
743 EXPECT_FALSE(test_api_->lock_to_shutdown_timer_is_running()); 742 EXPECT_FALSE(test_api_->lock_to_shutdown_timer_is_running());
744 743
745 // Act as if the request timed out. We should restore the windows. 744 // Act as if the request timed out. We should restore the windows.
746 test_api_->trigger_lock_fail_timeout(); 745 test_api_->trigger_lock_fail_timeout();
747 746
748 ExpectUnlockAfterUIDestroyedAnimationStarted(); 747 ExpectUnlockAfterUIDestroyedAnimationStarted();
749 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); 748 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS);
750 ExpectUnlockAfterUIDestroyedAnimationFinished(); 749 ExpectUnlockAfterUIDestroyedAnimationFinished();
751 ExpectUnlockedState(); 750 ExpectUnlockedState();
752 } 751 }
753 752
754 // Test the basic operation of the lock button (not logged in). 753 // Test the basic operation of the lock button (not logged in).
755 TEST_F(SessionStateControllerImpl2Test, LockButtonBasicNotLoggedIn) { 754 TEST_F(LockStateControllerImpl2Test, LockButtonBasicNotLoggedIn) {
756 // The lock button shouldn't do anything if we aren't logged in. 755 // The lock button shouldn't do anything if we aren't logged in.
757 Initialize(false, user::LOGGED_IN_NONE); 756 Initialize(false, user::LOGGED_IN_NONE);
758 757
759 PressLockButton(); 758 PressLockButton();
760 EXPECT_FALSE(test_api_->is_animating_lock()); 759 EXPECT_FALSE(test_api_->is_animating_lock());
761 ReleaseLockButton(); 760 ReleaseLockButton();
762 EXPECT_EQ(0, delegate_->num_lock_requests()); 761 EXPECT_EQ(0, delegate_->num_lock_requests());
763 } 762 }
764 763
765 // Test the basic operation of the lock button (guest). 764 // Test the basic operation of the lock button (guest).
766 TEST_F(SessionStateControllerImpl2Test, LockButtonBasicGuest) { 765 TEST_F(LockStateControllerImpl2Test, LockButtonBasicGuest) {
767 // The lock button shouldn't do anything when we're logged in as a guest. 766 // The lock button shouldn't do anything when we're logged in as a guest.
768 Initialize(false, user::LOGGED_IN_GUEST); 767 Initialize(false, user::LOGGED_IN_GUEST);
769 768
770 PressLockButton(); 769 PressLockButton();
771 EXPECT_FALSE(test_api_->is_animating_lock()); 770 EXPECT_FALSE(test_api_->is_animating_lock());
772 ReleaseLockButton(); 771 ReleaseLockButton();
773 EXPECT_EQ(0, delegate_->num_lock_requests()); 772 EXPECT_EQ(0, delegate_->num_lock_requests());
774 } 773 }
775 774
776 // Test the basic operation of the lock button. 775 // Test the basic operation of the lock button.
777 // TODO(antrim): Reenable this: http://crbug.com/167048 776 // TODO(antrim): Reenable this: http://crbug.com/167048
778 TEST_F(SessionStateControllerImpl2Test, DISABLED_LockButtonBasic) { 777 TEST_F(LockStateControllerImpl2Test, DISABLED_LockButtonBasic) {
779 // If we're logged in as a regular user, we should start the lock timer and 778 // If we're logged in as a regular user, we should start the lock timer and
780 // the pre-lock animation. 779 // the pre-lock animation.
781 Initialize(false, user::LOGGED_IN_USER); 780 Initialize(false, user::LOGGED_IN_USER);
782 781
783 PressLockButton(); 782 PressLockButton();
784 ExpectPreLockAnimationStarted(); 783 ExpectPreLockAnimationStarted();
785 AdvancePartially(SessionStateAnimator::ANIMATION_SPEED_UNDOABLE, 0.5f); 784 AdvancePartially(SessionStateAnimator::ANIMATION_SPEED_UNDOABLE, 0.5f);
786 785
787 // If the button is released immediately, we shouldn't lock the screen. 786 // If the button is released immediately, we shouldn't lock the screen.
788 ReleaseLockButton(); 787 ReleaseLockButton();
(...skipping 28 matching lines...) Expand all
817 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); 816 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS);
818 ExpectPastLockAnimationFinished(); 817 ExpectPastLockAnimationFinished();
819 818
820 PressLockButton(); 819 PressLockButton();
821 ReleaseLockButton(); 820 ReleaseLockButton();
822 ExpectPastLockAnimationFinished(); 821 ExpectPastLockAnimationFinished();
823 } 822 }
824 823
825 // Test that the power button takes priority over the lock button. 824 // Test that the power button takes priority over the lock button.
826 // TODO(antrim): Reenable this: http://crbug.com/167048 825 // TODO(antrim): Reenable this: http://crbug.com/167048
827 TEST_F(SessionStateControllerImpl2Test, 826 TEST_F(LockStateControllerImpl2Test,
828 DISABLED_PowerButtonPreemptsLockButton) { 827 DISABLED_PowerButtonPreemptsLockButton) {
829 Initialize(false, user::LOGGED_IN_USER); 828 Initialize(false, user::LOGGED_IN_USER);
830 829
831 // While the lock button is down, hold the power button. 830 // While the lock button is down, hold the power button.
832 PressLockButton(); 831 PressLockButton();
833 ExpectPreLockAnimationStarted(); 832 ExpectPreLockAnimationStarted();
834 PressPowerButton(); 833 PressPowerButton();
835 ExpectPreLockAnimationStarted(); 834 ExpectPreLockAnimationStarted();
836 835
837 AdvancePartially(SessionStateAnimator::ANIMATION_SPEED_UNDOABLE, 0.5f); 836 AdvancePartially(SessionStateAnimator::ANIMATION_SPEED_UNDOABLE, 0.5f);
(...skipping 18 matching lines...) Expand all
856 // Releasing the power button should stop the lock timer. 855 // Releasing the power button should stop the lock timer.
857 ReleasePowerButton(); 856 ReleasePowerButton();
858 ExpectPreLockAnimationCancel(); 857 ExpectPreLockAnimationCancel();
859 ReleaseLockButton(); 858 ReleaseLockButton();
860 ExpectPreLockAnimationCancel(); 859 ExpectPreLockAnimationCancel();
861 } 860 }
862 861
863 // When the screen is locked without going through the usual power-button 862 // When the screen is locked without going through the usual power-button
864 // slow-close path (e.g. via the wrench menu), test that we still show the 863 // slow-close path (e.g. via the wrench menu), test that we still show the
865 // fast-close animation. 864 // fast-close animation.
866 TEST_F(SessionStateControllerImpl2Test, LockWithoutButton) { 865 TEST_F(LockStateControllerImpl2Test, LockWithoutButton) {
867 Initialize(false, user::LOGGED_IN_USER); 866 Initialize(false, user::LOGGED_IN_USER);
868 state_controller_->OnStartingLock(); 867 lock_state_controller_->OnStartingLock();
869 868
870 ExpectPreLockAnimationStarted(); 869 ExpectPreLockAnimationStarted();
871 EXPECT_FALSE(test_api_->is_lock_cancellable()); 870 EXPECT_FALSE(test_api_->is_lock_cancellable());
872 871
873 // TODO(antrim): After time-faking is fixed, let the pre-lock animation 872 // TODO(antrim): After time-faking is fixed, let the pre-lock animation
874 // complete here and check that delegate_->num_lock_requests() is 0 to 873 // complete here and check that delegate_->num_lock_requests() is 0 to
875 // prevent http://crbug.com/172487 from regressing. 874 // prevent http://crbug.com/172487 from regressing.
876 } 875 }
877 876
878 // When we hear that the process is exiting but we haven't had a chance to 877 // When we hear that the process is exiting but we haven't had a chance to
879 // display an animation, we should just blank the screen. 878 // display an animation, we should just blank the screen.
880 TEST_F(SessionStateControllerImpl2Test, ShutdownWithoutButton) { 879 TEST_F(LockStateControllerImpl2Test, ShutdownWithoutButton) {
881 Initialize(false, user::LOGGED_IN_USER); 880 Initialize(false, user::LOGGED_IN_USER);
882 state_controller_->OnAppTerminating(); 881 lock_state_controller_->OnAppTerminating();
883 882
884 EXPECT_TRUE( 883 EXPECT_TRUE(
885 animator_api_->ContainersAreAnimated( 884 animator_api_->ContainersAreAnimated(
886 SessionStateAnimator::kAllContainersMask, 885 SessionStateAnimator::kAllContainersMask,
887 SessionStateAnimator::ANIMATION_HIDE_IMMEDIATELY)); 886 SessionStateAnimator::ANIMATION_HIDE_IMMEDIATELY));
888 GenerateMouseMoveEvent(); 887 GenerateMouseMoveEvent();
889 EXPECT_FALSE(cursor_visible()); 888 EXPECT_FALSE(cursor_visible());
890 } 889 }
891 890
892 // Test that we display the fast-close animation and shut down when we get an 891 // Test that we display the fast-close animation and shut down when we get an
893 // outside request to shut down (e.g. from the login or lock screen). 892 // outside request to shut down (e.g. from the login or lock screen).
894 TEST_F(SessionStateControllerImpl2Test, RequestShutdownFromLoginScreen) { 893 TEST_F(LockStateControllerImpl2Test, RequestShutdownFromLoginScreen) {
895 Initialize(false, user::LOGGED_IN_NONE); 894 Initialize(false, user::LOGGED_IN_NONE);
896 895
897 state_controller_->RequestShutdown(); 896 lock_state_controller_->RequestShutdown();
898 897
899 ExpectShutdownAnimationStarted(); 898 ExpectShutdownAnimationStarted();
900 Advance(SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN); 899 Advance(SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN);
901 900
902 GenerateMouseMoveEvent(); 901 GenerateMouseMoveEvent();
903 EXPECT_FALSE(cursor_visible()); 902 EXPECT_FALSE(cursor_visible());
904 903
905 EXPECT_EQ(0, NumShutdownRequests()); 904 EXPECT_EQ(0, NumShutdownRequests());
906 EXPECT_TRUE(test_api_->real_shutdown_timer_is_running()); 905 EXPECT_TRUE(test_api_->real_shutdown_timer_is_running());
907 test_api_->trigger_real_shutdown_timeout(); 906 test_api_->trigger_real_shutdown_timeout();
908 EXPECT_EQ(1, NumShutdownRequests()); 907 EXPECT_EQ(1, NumShutdownRequests());
909 } 908 }
910 909
911 TEST_F(SessionStateControllerImpl2Test, RequestShutdownFromLockScreen) { 910 TEST_F(LockStateControllerImpl2Test, RequestShutdownFromLockScreen) {
912 Initialize(false, user::LOGGED_IN_USER); 911 Initialize(false, user::LOGGED_IN_USER);
913 912
914 SystemLocks(); 913 SystemLocks();
915 Advance(SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN); 914 Advance(SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN);
916 ExpectPastLockAnimationFinished(); 915 ExpectPastLockAnimationFinished();
917 916
918 state_controller_->RequestShutdown(); 917 lock_state_controller_->RequestShutdown();
919 918
920 ExpectShutdownAnimationStarted(); 919 ExpectShutdownAnimationStarted();
921 Advance(SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN); 920 Advance(SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN);
922 921
923 GenerateMouseMoveEvent(); 922 GenerateMouseMoveEvent();
924 EXPECT_FALSE(cursor_visible()); 923 EXPECT_FALSE(cursor_visible());
925 924
926 EXPECT_EQ(0, NumShutdownRequests()); 925 EXPECT_EQ(0, NumShutdownRequests());
927 EXPECT_TRUE(test_api_->real_shutdown_timer_is_running()); 926 EXPECT_TRUE(test_api_->real_shutdown_timer_is_running());
928 test_api_->trigger_real_shutdown_timeout(); 927 test_api_->trigger_real_shutdown_timeout();
929 EXPECT_EQ(1, NumShutdownRequests()); 928 EXPECT_EQ(1, NumShutdownRequests());
930 } 929 }
931 930
932 // TODO(antrim): Reenable this: http://crbug.com/167048 931 // TODO(antrim): Reenable this: http://crbug.com/167048
933 TEST_F(SessionStateControllerImpl2Test, 932 TEST_F(LockStateControllerImpl2Test,
934 DISABLED_RequestAndCancelShutdownFromLockScreen) { 933 DISABLED_RequestAndCancelShutdownFromLockScreen) {
935 Initialize(false, user::LOGGED_IN_USER); 934 Initialize(false, user::LOGGED_IN_USER);
936 935
937 SystemLocks(); 936 SystemLocks();
938 Advance(SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN); 937 Advance(SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN);
939 ExpectLockedState(); 938 ExpectLockedState();
940 939
941 // Press the power button and check that we start the shutdown timer. 940 // Press the power button and check that we start the shutdown timer.
942 PressPowerButton(); 941 PressPowerButton();
943 EXPECT_FALSE(test_api_->is_animating_lock()); 942 EXPECT_FALSE(test_api_->is_animating_lock());
(...skipping 16 matching lines...) Expand all
960 float grayscale_after_button_release = 959 float grayscale_after_button_release =
961 Shell::GetPrimaryRootWindow()->layer()->layer_grayscale(); 960 Shell::GetPrimaryRootWindow()->layer()->layer_grayscale();
962 // Expect no flickering in undo animation. 961 // Expect no flickering in undo animation.
963 EXPECT_EQ(grayscale_before_button_release, grayscale_after_button_release); 962 EXPECT_EQ(grayscale_before_button_release, grayscale_after_button_release);
964 963
965 Advance(SessionStateAnimator::ANIMATION_SPEED_REVERT); 964 Advance(SessionStateAnimator::ANIMATION_SPEED_REVERT);
966 ExpectLockedState(); 965 ExpectLockedState();
967 } 966 }
968 967
969 // Test that we ignore power button presses when the screen is turned off. 968 // Test that we ignore power button presses when the screen is turned off.
970 TEST_F(SessionStateControllerImpl2Test, IgnorePowerButtonIfScreenIsOff) { 969 TEST_F(LockStateControllerImpl2Test, IgnorePowerButtonIfScreenIsOff) {
971 Initialize(false, user::LOGGED_IN_USER); 970 Initialize(false, user::LOGGED_IN_USER);
972 971
973 // When the screen brightness is at 0%, we shouldn't do anything in response 972 // When the screen brightness is at 0%, we shouldn't do anything in response
974 // to power button presses. 973 // to power button presses.
975 controller_->OnScreenBrightnessChanged(0.0); 974 controller_->OnScreenBrightnessChanged(0.0);
976 975
977 PressPowerButton(); 976 PressPowerButton();
978 EXPECT_FALSE(test_api_->is_animating_lock()); 977 EXPECT_FALSE(test_api_->is_animating_lock());
979 ReleasePowerButton(); 978 ReleasePowerButton();
980 979
981 // After increasing the brightness to 10%, we should start the timer like 980 // After increasing the brightness to 10%, we should start the timer like
982 // usual. 981 // usual.
983 controller_->OnScreenBrightnessChanged(10.0); 982 controller_->OnScreenBrightnessChanged(10.0);
984 983
985 PressPowerButton(); 984 PressPowerButton();
986 EXPECT_TRUE(test_api_->is_animating_lock()); 985 EXPECT_TRUE(test_api_->is_animating_lock());
987 } 986 }
988 987
989 // Test that hidden background appears and revers correctly on lock/cancel. 988 // Test that hidden background appears and revers correctly on lock/cancel.
990 // TODO(antrim): Reenable this: http://crbug.com/167048 989 // TODO(antrim): Reenable this: http://crbug.com/167048
991 TEST_F(SessionStateControllerImpl2Test, 990 TEST_F(LockStateControllerImpl2Test,
992 DISABLED_TestHiddenBackgroundLockCancel) { 991 DISABLED_TestHiddenBackgroundLockCancel) {
993 Initialize(false, user::LOGGED_IN_USER); 992 Initialize(false, user::LOGGED_IN_USER);
994 HideBackground(); 993 HideBackground();
995 994
996 EXPECT_TRUE(IsBackgroundHidden()); 995 EXPECT_TRUE(IsBackgroundHidden());
997 ExpectUnlockedState(); 996 ExpectUnlockedState();
998 PressPowerButton(); 997 PressPowerButton();
999 998
1000 ExpectPreLockAnimationStarted(); 999 ExpectPreLockAnimationStarted();
1001 EXPECT_FALSE(IsBackgroundHidden()); 1000 EXPECT_FALSE(IsBackgroundHidden());
1002 ExpectBackgroundIsShowing(); 1001 ExpectBackgroundIsShowing();
1003 1002
1004 // Forward only half way through. 1003 // Forward only half way through.
1005 AdvancePartially(SessionStateAnimator::ANIMATION_SPEED_UNDOABLE, 0.5f); 1004 AdvancePartially(SessionStateAnimator::ANIMATION_SPEED_UNDOABLE, 0.5f);
1006 1005
1007 // Release the button before the lock timer fires. 1006 // Release the button before the lock timer fires.
1008 ReleasePowerButton(); 1007 ReleasePowerButton();
1009 ExpectPreLockAnimationCancel(); 1008 ExpectPreLockAnimationCancel();
1010 ExpectBackgroundIsHiding(); 1009 ExpectBackgroundIsHiding();
1011 EXPECT_FALSE(IsBackgroundHidden()); 1010 EXPECT_FALSE(IsBackgroundHidden());
1012 1011
1013 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); 1012 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS);
1014 1013
1015 ExpectUnlockedState(); 1014 ExpectUnlockedState();
1016 EXPECT_TRUE(IsBackgroundHidden()); 1015 EXPECT_TRUE(IsBackgroundHidden());
1017 } 1016 }
1018 1017
1019 // Test that hidden background appears and revers correctly on lock/unlock. 1018 // Test that hidden background appears and revers correctly on lock/unlock.
1020 // TODO(antrim): Reenable this: http://crbug.com/167048 1019 // TODO(antrim): Reenable this: http://crbug.com/167048
1021 TEST_F(SessionStateControllerImpl2Test, 1020 TEST_F(LockStateControllerImpl2Test,
1022 DISABLED_TestHiddenBackgroundLockUnlock) { 1021 DISABLED_TestHiddenBackgroundLockUnlock) {
1023 Initialize(false, user::LOGGED_IN_USER); 1022 Initialize(false, user::LOGGED_IN_USER);
1024 HideBackground(); 1023 HideBackground();
1025 1024
1026 EXPECT_TRUE(IsBackgroundHidden()); 1025 EXPECT_TRUE(IsBackgroundHidden());
1027 ExpectUnlockedState(); 1026 ExpectUnlockedState();
1028 1027
1029 // Press the power button and check that the lock timer is started and that we 1028 // Press the power button and check that the lock timer is started and that we
1030 // start lifting the non-screen-locker containers. 1029 // start lifting the non-screen-locker containers.
1031 PressPowerButton(); 1030 PressPowerButton();
(...skipping 30 matching lines...) Expand all
1062 1061
1063 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); 1062 Advance(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS);
1064 ExpectUnlockAfterUIDestroyedAnimationFinished(); 1063 ExpectUnlockAfterUIDestroyedAnimationFinished();
1065 EXPECT_TRUE(IsBackgroundHidden()); 1064 EXPECT_TRUE(IsBackgroundHidden());
1066 1065
1067 ExpectUnlockedState(); 1066 ExpectUnlockedState();
1068 } 1067 }
1069 1068
1070 } // namespace test 1069 } // namespace test
1071 } // namespace ash 1070 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/lock_state_controller_impl2.cc ('k') | ash/wm/lock_state_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698