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

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

Powered by Google App Engine
This is Rietveld 408576698