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

Unified Diff: ash/wm/lock_state_controller_unittest.cc

Issue 326813004: Added quick lock mechanism while in Touchview (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed whitespace nit. Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: ash/wm/lock_state_controller_unittest.cc
diff --git a/ash/wm/lock_state_controller_unittest.cc b/ash/wm/lock_state_controller_unittest.cc
index 80db34923ae149c837685486d42d91d2691f77b8..f5bc676e756c1cc571a1604fd8b1b8386895e739 100644
--- a/ash/wm/lock_state_controller_unittest.cc
+++ b/ash/wm/lock_state_controller_unittest.cc
@@ -10,7 +10,9 @@
#include "ash/shell_window_ids.h"
#include "ash/test/ash_test_base.h"
#include "ash/test/test_lock_state_controller_delegate.h"
+#include "ash/test/test_screenshot_delegate.h"
#include "ash/test/test_shell_delegate.h"
+#include "ash/wm/maximize_mode/maximize_mode_controller.h"
#include "ash/wm/power_button_controller.h"
#include "ash/wm/session_state_animator.h"
#include "base/command_line.h"
@@ -67,7 +69,7 @@ void HideBackground() {
GetContainer(kShellWindowId_DesktopBackgroundContainer)->Hide();
}
-} // namespace
+} // namespace
class LockStateControllerTest : public AshTestBase {
public:
@@ -85,8 +87,8 @@ class LockStateControllerTest : public AshTestBase {
// Temporary disable animations so that observer is always called, and
// no leaks happen during tests.
bruthig 2014/08/29 14:44:33 In order for the new QuickLock tests below to work
Daniel Erat 2014/08/29 14:58:26 i am frustrated by how long all of the tests in th
bruthig 2014/08/29 15:41:47 I actually spent quite a bit of time looking in to
- animation_duration_mode_.reset(new ui::ScopedAnimationDurationScaleMode(
- ui::ScopedAnimationDurationScaleMode::ZERO_DURATION));
+ // animation_duration_mode_.reset(new ui::ScopedAnimationDurationScaleMode(
+ // ui::ScopedAnimationDurationScaleMode::ZERO_DURATION));
// TODO(antrim): once there is a way to mock time and run animations, make
// sure that animations are finished even in simple tests.
@@ -123,13 +125,13 @@ class LockStateControllerTest : public AshTestBase {
}
void Advance(SessionStateAnimator::AnimationSpeed speed) {
- // TODO (antrim) : restore
+ // TODO(antrim) : restore
// animator_helper_->Advance(SessionStateAnimator::GetDuration(speed));
}
void AdvancePartially(SessionStateAnimator::AnimationSpeed speed,
float factor) {
-// TODO (antrim) : restore
+// TODO(antrim) : restore
// base::TimeDelta duration = SessionStateAnimator::GetDuration(speed);
// base::TimeDelta partial_duration =
// base::TimeDelta::FromInternalValue(duration.ToInternalValue() * factor);
@@ -137,7 +139,7 @@ class LockStateControllerTest : public AshTestBase {
}
void ExpectPreLockAnimationStarted() {
- //TODO (antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating());
+ // TODO(antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating());
EXPECT_TRUE(
animator_api_->ContainersAreAnimated(
SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS,
@@ -165,7 +167,7 @@ class LockStateControllerTest : public AshTestBase {
}
void ExpectPreLockAnimationFinished() {
- //TODO (antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
+ // TODO(antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
EXPECT_TRUE(
animator_api_->ContainersAreAnimated(
SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS,
@@ -181,7 +183,7 @@ class LockStateControllerTest : public AshTestBase {
}
void ExpectPostLockAnimationStarted() {
- //TODO (antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating());
+ // TODO(antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating());
EXPECT_TRUE(
animator_api_->ContainersAreAnimated(
SessionStateAnimator::LOCK_SCREEN_CONTAINERS,
@@ -189,7 +191,7 @@ class LockStateControllerTest : public AshTestBase {
}
void ExpectPastLockAnimationFinished() {
- //TODO (antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
+ // TODO(antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
EXPECT_TRUE(
animator_api_->ContainersAreAnimated(
SessionStateAnimator::LOCK_SCREEN_CONTAINERS,
@@ -197,7 +199,7 @@ class LockStateControllerTest : public AshTestBase {
}
void ExpectUnlockBeforeUIDestroyedAnimationStarted() {
- //TODO (antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating());
+ // TODO(antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating());
EXPECT_TRUE(
animator_api_->ContainersAreAnimated(
SessionStateAnimator::LOCK_SCREEN_CONTAINERS,
@@ -205,7 +207,7 @@ class LockStateControllerTest : public AshTestBase {
}
void ExpectUnlockBeforeUIDestroyedAnimationFinished() {
- //TODO (antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
+ // TODO(antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
EXPECT_TRUE(
animator_api_->ContainersAreAnimated(
SessionStateAnimator::LOCK_SCREEN_CONTAINERS,
@@ -213,7 +215,7 @@ class LockStateControllerTest : public AshTestBase {
}
void ExpectUnlockAfterUIDestroyedAnimationStarted() {
- //TODO (antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating());
+ // TODO(antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating());
EXPECT_TRUE(
animator_api_->ContainersAreAnimated(
SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS,
@@ -225,7 +227,7 @@ class LockStateControllerTest : public AshTestBase {
}
void ExpectUnlockAfterUIDestroyedAnimationFinished() {
- //TODO (antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
+ // TODO(antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
EXPECT_TRUE(
animator_api_->ContainersAreAnimated(
SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS,
@@ -237,28 +239,28 @@ class LockStateControllerTest : public AshTestBase {
}
void ExpectShutdownAnimationStarted() {
- //TODO (antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating());
+ // TODO(antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating());
EXPECT_TRUE(
animator_api_->RootWindowIsAnimated(
SessionStateAnimator::ANIMATION_GRAYSCALE_BRIGHTNESS));
}
void ExpectShutdownAnimationFinished() {
- //TODO (antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
+ // TODO(antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
EXPECT_TRUE(
animator_api_->RootWindowIsAnimated(
SessionStateAnimator::ANIMATION_GRAYSCALE_BRIGHTNESS));
}
void ExpectShutdownAnimationCancel() {
- //TODO (antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating());
+ // TODO(antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating());
EXPECT_TRUE(
animator_api_->RootWindowIsAnimated(
SessionStateAnimator::ANIMATION_UNDO_GRAYSCALE_BRIGHTNESS));
}
void ExpectBackgroundIsShowing() {
- //TODO (antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating());
+ // TODO(antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating());
EXPECT_TRUE(
animator_api_->ContainersAreAnimated(
SessionStateAnimator::DESKTOP_BACKGROUND,
@@ -266,7 +268,7 @@ class LockStateControllerTest : public AshTestBase {
}
void ExpectBackgroundIsHiding() {
- //TODO (antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating());
+ // TODO(antrim) : restore EXPECT_TRUE(animator_helper_->IsAnimating());
EXPECT_TRUE(
animator_api_->ContainersAreAnimated(
SessionStateAnimator::DESKTOP_BACKGROUND,
@@ -274,7 +276,7 @@ class LockStateControllerTest : public AshTestBase {
}
void ExpectUnlockedState() {
- //TODO (antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
+ // TODO(antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
EXPECT_FALSE(session_state_delegate_->IsScreenLocked());
aura::Window::Windows containers;
@@ -295,7 +297,7 @@ class LockStateControllerTest : public AshTestBase {
}
void ExpectLockedState() {
- //TODO (antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
+ // TODO(antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
EXPECT_TRUE(session_state_delegate_->IsScreenLocked());
aura::Window::Windows containers;
@@ -317,12 +319,12 @@ class LockStateControllerTest : public AshTestBase {
void PressPowerButton() {
controller_->OnPowerButtonEvent(true, base::TimeTicks::Now());
- //TODO (antrim) : restore animator_helper_->Advance(base::TimeDelta());
+ // TODO(antrim) : restore animator_helper_->Advance(base::TimeDelta());
}
void ReleasePowerButton() {
controller_->OnPowerButtonEvent(false, base::TimeTicks::Now());
- //TODO (antrim) : restore animator_helper_->Advance(base::TimeDelta());
+ // TODO(antrim) : restore animator_helper_->Advance(base::TimeDelta());
}
void PressLockButton() {
@@ -333,22 +335,35 @@ class LockStateControllerTest : public AshTestBase {
controller_->OnLockButtonEvent(false, base::TimeTicks::Now());
}
+ void PressVolumeDown() {
+ GetEventGenerator().PressKey(ui::VKEY_VOLUME_DOWN, ui::EF_NONE);
+ }
+
+ void ReleaseVolumeDown() {
+ GetEventGenerator().ReleaseKey(ui::VKEY_VOLUME_DOWN, ui::EF_NONE);
+ }
+
void SystemLocks() {
lock_state_controller_->OnLockStateChanged(true);
session_state_delegate_->LockScreen();
- //TODO (antrim) : restore animator_helper_->Advance(base::TimeDelta());
+ // TODO(antrim) : restore animator_helper_->Advance(base::TimeDelta());
}
void SuccessfulAuthentication(bool* call_flag) {
base::Closure closure = base::Bind(&CheckCalledCallback, call_flag);
lock_state_controller_->OnLockScreenHide(closure);
- //TODO (antrim) : restore animator_helper_->Advance(base::TimeDelta());
+ // TODO(antrim) : restore animator_helper_->Advance(base::TimeDelta());
}
void SystemUnlocks() {
lock_state_controller_->OnLockStateChanged(false);
session_state_delegate_->UnlockScreen();
- //TODO (antrim) : restore animator_helper_->Advance(base::TimeDelta());
+ // TODO(antrim) : restore animator_helper_->Advance(base::TimeDelta());
+ }
+
+ void EnableMaximizeMode(bool enable) {
+ Shell::GetInstance()->maximize_mode_controller()->
+ EnableMaximizeModeWindowManager(enable);
}
void Initialize(bool legacy_button, user::LoginStatus status) {
@@ -417,7 +432,7 @@ TEST_F(LockStateControllerTest, DISABLED_LegacyLockAndShutDown) {
// Notify that we locked successfully.
lock_state_controller_->OnStartingLock();
// We had that animation already.
- //TODO (antrim) : restore
+ // TODO(antrim) : restore
// EXPECT_FALSE(animator_helper_->IsAnimating());
SystemLocks();
@@ -532,7 +547,7 @@ TEST_F(LockStateControllerTest, DISABLED_LockAndUnlock) {
// Notify that we locked successfully.
lock_state_controller_->OnStartingLock();
// We had that animation already.
- //TODO (antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
+ // TODO(antrim) : restore EXPECT_FALSE(animator_helper_->IsAnimating());
SystemLocks();
@@ -1089,5 +1104,72 @@ TEST_F(LockStateControllerTest, DISABLED_TestHiddenBackgroundLockUnlock) {
ExpectUnlockedState();
}
+// Tests that a screenshot can be taken by holding volume down and
+// pressing power.
+TEST_F(LockStateControllerTest, Screenshot) {
+ Shell::GetInstance()->lock_state_controller()->SetDelegate(
+ new test::TestLockStateControllerDelegate);
+ test::TestScreenshotDelegate* delegate = GetScreenshotDelegate();
+ delegate->set_can_take_screenshot(true);
+
+ // Pressing power alone does not take a screenshot.
+ PressPowerButton();
+ ReleasePowerButton();
+ EXPECT_EQ(0, delegate->handle_take_screenshot_count());
+
+ // Press & release volume then pressing power does not take a screenshot.
+ ASSERT_EQ(0, delegate->handle_take_screenshot_count());
+ PressVolumeDown();
+ ReleaseVolumeDown();
+ PressPowerButton();
+ ReleasePowerButton();
+ EXPECT_EQ(0, delegate->handle_take_screenshot_count());
+
+ // Pressing power and then volume does not take a screenshot.
+ ASSERT_EQ(0, delegate->handle_take_screenshot_count());
+ PressPowerButton();
+ ReleasePowerButton();
+ PressVolumeDown();
+ ReleaseVolumeDown();
+ EXPECT_EQ(0, delegate->handle_take_screenshot_count());
+
+ // Holding volume down and pressing power takes a screenshot.
+ ASSERT_EQ(0, delegate->handle_take_screenshot_count());
+ PressVolumeDown();
+ PressPowerButton();
+ ReleasePowerButton();
+ ReleaseVolumeDown();
+ EXPECT_EQ(1, delegate->handle_take_screenshot_count());
+}
+
+// Tests that a lock action is cancellable when quick lock is turned on and
+// maximize mode is not active.
+TEST_F(LockStateControllerTest, QuickLockWhileNotInMaximizeMode) {
+ Initialize(false, user::LOGGED_IN_USER);
+ controller_->set_enable_quick_lock_for_test(true);
+
+ PressPowerButton();
+
+ EXPECT_TRUE(test_api_->is_animating_lock());
+ EXPECT_TRUE(lock_state_controller_->CanCancelLockAnimation());
+
+ ReleasePowerButton();
+}
+
+// Tests that a lock action is not cancellable when quick lock is turned on and
+// maximize mode is active.
+TEST_F(LockStateControllerTest, QuickLockWhileInMaximizeMode) {
+ Initialize(false, user::LOGGED_IN_USER);
+ controller_->set_enable_quick_lock_for_test(true);
+ EnableMaximizeMode(true);
+
+ PressPowerButton();
+
+ EXPECT_TRUE(test_api_->is_animating_lock());
+ EXPECT_FALSE(lock_state_controller_->CanCancelLockAnimation());
+
+ ReleasePowerButton();
+}
+
} // namespace test
} // namespace ash

Powered by Google App Engine
This is Rietveld 408576698