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

Unified Diff: ash/wm/window_cycle_controller_unittest.cc

Issue 2234233002: Enable ash window cycle UI by default. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sky review Created 4 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
« no previous file with comments | « ash/common/wm/window_cycle_list.cc ('k') | ash/wm/window_mirror_view.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/wm/window_cycle_controller_unittest.cc
diff --git a/ash/wm/window_cycle_controller_unittest.cc b/ash/wm/window_cycle_controller_unittest.cc
index ad61331fc9d2040e3e076c45d4054fcd25f5f6c4..48ab3b35d48711a4ec578c517de55cb9ac3a2474 100644
--- a/ash/wm/window_cycle_controller_unittest.cc
+++ b/ash/wm/window_cycle_controller_unittest.cc
@@ -78,6 +78,8 @@ class WindowCycleControllerTest : public test::AshTestBase {
test::AshTestBase::SetUp();
ASSERT_TRUE(test::TestShelfDelegate::instance());
+ WindowCycleList::DisableInitialDelayForTesting();
+
shelf_view_test_.reset(new test::ShelfViewTestAPI(
test::ShelfTestAPI(Shelf::ForPrimaryDisplay()).shelf_view()));
shelf_view_test_->SetAnimationDuration(1);
@@ -173,15 +175,12 @@ TEST_F(WindowCycleControllerTest, HandleCycleWindow) {
// all the windows and wrap around.
controller->HandleCycleWindow(WindowCycleController::FORWARD);
EXPECT_TRUE(controller->IsCycling());
- EXPECT_TRUE(wm::IsActiveWindow(window1.get()));
controller->HandleCycleWindow(WindowCycleController::FORWARD);
EXPECT_TRUE(controller->IsCycling());
- EXPECT_TRUE(wm::IsActiveWindow(window2.get()));
controller->HandleCycleWindow(WindowCycleController::FORWARD);
EXPECT_TRUE(controller->IsCycling());
- EXPECT_TRUE(wm::IsActiveWindow(window0.get()));
controller->StopCycling();
EXPECT_FALSE(controller->IsCycling());
@@ -192,29 +191,29 @@ TEST_F(WindowCycleControllerTest, HandleCycleWindow) {
wm::ActivateWindow(window1.get());
wm::ActivateWindow(window0.get());
- // Likewise we can cycle backwards through all the windows.
+ // Likewise we can cycle backwards through the windows.
controller->HandleCycleWindow(WindowCycleController::BACKWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window2.get()));
- controller->HandleCycleWindow(WindowCycleController::BACKWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window1.get()));
controller->HandleCycleWindow(WindowCycleController::BACKWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window0.get()));
controller->StopCycling();
- EXPECT_TRUE(wm::IsActiveWindow(window0.get()));
+ EXPECT_TRUE(wm::IsActiveWindow(window1.get()));
+
+ // Reset our stacking order.
+ wm::ActivateWindow(window2.get());
+ wm::ActivateWindow(window1.get());
+ wm::ActivateWindow(window0.get());
// When the screen is locked, cycling window does not take effect.
WmShell::Get()->GetSessionStateDelegate()->LockScreen();
EXPECT_TRUE(wm::IsActiveWindow(window0.get()));
controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window0.get()));
- controller->HandleCycleWindow(WindowCycleController::BACKWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window0.get()));
+ EXPECT_FALSE(controller->IsCycling());
+ // Unlock, it works again.
WmShell::Get()->GetSessionStateDelegate()->UnlockScreen();
EXPECT_TRUE(wm::IsActiveWindow(window0.get()));
controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window1.get()));
controller->HandleCycleWindow(WindowCycleController::FORWARD);
+ controller->StopCycling();
EXPECT_TRUE(wm::IsActiveWindow(window2.get()));
// When a modal window is active, cycling window does not take effect.
@@ -227,11 +226,13 @@ TEST_F(WindowCycleControllerTest, HandleCycleWindow) {
EXPECT_TRUE(wm::IsActiveWindow(modal_window.get()));
controller->HandleCycleWindow(WindowCycleController::FORWARD);
EXPECT_TRUE(wm::IsActiveWindow(modal_window.get()));
+ EXPECT_FALSE(controller->IsCycling());
EXPECT_FALSE(wm::IsActiveWindow(window0.get()));
EXPECT_FALSE(wm::IsActiveWindow(window1.get()));
EXPECT_FALSE(wm::IsActiveWindow(window2.get()));
controller->HandleCycleWindow(WindowCycleController::BACKWARD);
EXPECT_TRUE(wm::IsActiveWindow(modal_window.get()));
+ EXPECT_FALSE(controller->IsCycling());
EXPECT_FALSE(wm::IsActiveWindow(window0.get()));
EXPECT_FALSE(wm::IsActiveWindow(window1.get()));
EXPECT_FALSE(wm::IsActiveWindow(window2.get()));
@@ -250,10 +251,13 @@ TEST_F(WindowCycleControllerTest, MaximizedWindow) {
// Rotate focus, this should move focus to window0.
WindowCycleController* controller = WmShell::Get()->window_cycle_controller();
controller->HandleCycleWindow(WindowCycleController::FORWARD);
+ controller->StopCycling();
EXPECT_TRUE(wm::GetWindowState(window0.get())->IsActive());
+ EXPECT_FALSE(window1_state->IsActive());
// One more time.
controller->HandleCycleWindow(WindowCycleController::FORWARD);
+ controller->StopCycling();
EXPECT_TRUE(window1_state->IsActive());
}
@@ -272,11 +276,14 @@ TEST_F(WindowCycleControllerTest, Minimized) {
// Rotate focus, this should move focus to window1 and unminimize it.
WindowCycleController* controller = WmShell::Get()->window_cycle_controller();
controller->HandleCycleWindow(WindowCycleController::FORWARD);
+ controller->StopCycling();
+ EXPECT_FALSE(window0_state->IsActive());
EXPECT_FALSE(window1_state->IsMinimized());
EXPECT_TRUE(window1_state->IsActive());
// One more time back to w0.
controller->HandleCycleWindow(WindowCycleController::FORWARD);
+ controller->StopCycling();
EXPECT_TRUE(window0_state->IsActive());
}
@@ -302,23 +309,6 @@ TEST_F(WindowCycleControllerTest, AlwaysOnTopWindow) {
EXPECT_EQ(window0.get(), GetWindows(controller)[0]);
EXPECT_EQ(window2.get(), GetWindows(controller)[1]);
EXPECT_EQ(window1.get(), GetWindows(controller)[2]);
-
- controller->StopCycling();
- EXPECT_TRUE(wm::IsActiveWindow(window2.get()));
-
- controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window0.get()));
-
- controller->StopCycling();
-
- controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window2.get()));
-
- controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window1.get()));
-
- controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window0.get()));
}
TEST_F(WindowCycleControllerTest, AlwaysOnTopMultiWindow) {
@@ -345,26 +335,6 @@ TEST_F(WindowCycleControllerTest, AlwaysOnTopMultiWindow) {
EXPECT_EQ(window3.get(), GetWindows(controller)[1]);
EXPECT_EQ(window2.get(), GetWindows(controller)[2]);
EXPECT_EQ(window1.get(), GetWindows(controller)[3]);
-
- controller->StopCycling();
- EXPECT_TRUE(wm::IsActiveWindow(window3.get()));
-
- controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window0.get()));
-
- controller->StopCycling();
-
- controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window3.get()));
-
- controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window2.get()));
-
- controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window1.get()));
-
- controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window0.get()));
}
TEST_F(WindowCycleControllerTest, AlwaysOnTopMultipleRootWindows) {
@@ -415,26 +385,6 @@ TEST_F(WindowCycleControllerTest, AlwaysOnTopMultipleRootWindows) {
EXPECT_EQ(window3.get(), GetWindows(controller)[1]);
EXPECT_EQ(window1.get(), GetWindows(controller)[2]);
EXPECT_EQ(window0.get(), GetWindows(controller)[3]);
-
- controller->StopCycling();
- EXPECT_TRUE(wm::IsActiveWindow(window3.get()));
-
- controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window2.get()));
-
- controller->StopCycling();
-
- controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window3.get()));
-
- controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window1.get()));
-
- controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window0.get()));
-
- controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window2.get()));
}
TEST_F(WindowCycleControllerTest, MostRecentlyUsed) {
@@ -458,23 +408,19 @@ TEST_F(WindowCycleControllerTest, MostRecentlyUsed) {
EXPECT_EQ(window2.get(), GetWindows(controller)[1]);
EXPECT_EQ(window1.get(), GetWindows(controller)[2]);
+ // Cycling through then stopping the cycling will activate a window.
controller->HandleCycleWindow(WindowCycleController::FORWARD);
controller->StopCycling();
EXPECT_TRUE(wm::IsActiveWindow(window1.get()));
+ // Cycling alone (without StopCycling()) doesn't activate.
controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window0.get()));
-
- controller->StopCycling();
-
- controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window1.get()));
+ EXPECT_FALSE(wm::IsActiveWindow(window0.get()));
- controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window2.get()));
+ // Showing the Alt+Tab UI does however deactivate the erstwhile active window.
+ EXPECT_FALSE(wm::IsActiveWindow(window1.get()));
- controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_TRUE(wm::IsActiveWindow(window0.get()));
+ controller->StopCycling();
}
// Tests that beginning window selection hides the app list.
@@ -487,10 +433,14 @@ TEST_F(WindowCycleControllerTest, SelectingHidesAppList) {
EXPECT_TRUE(WmShell::Get()->GetAppListTargetVisibility());
controller->HandleCycleWindow(WindowCycleController::FORWARD);
EXPECT_FALSE(WmShell::Get()->GetAppListTargetVisibility());
+
+ // Make sure that dismissing the app list this way doesn't pass activation
+ // to a different window.
+ EXPECT_FALSE(wm::IsActiveWindow(window0.get()));
+ EXPECT_FALSE(wm::IsActiveWindow(window1.get()));
}
-// Tests that cycling through windows shows and minimizes windows as they
-// are passed.
+// Tests that cycling through windows doesn't change their minimized state.
TEST_F(WindowCycleControllerTest, CyclePreservesMinimization) {
WindowCycleController* controller = WmShell::Get()->window_cycle_controller();
@@ -503,7 +453,7 @@ TEST_F(WindowCycleControllerTest, CyclePreservesMinimization) {
// On window 2.
controller->HandleCycleWindow(WindowCycleController::FORWARD);
- EXPECT_FALSE(IsWindowMinimized(window1.get()));
+ EXPECT_TRUE(IsWindowMinimized(window1.get()));
// Back on window 1.
controller->HandleCycleWindow(WindowCycleController::FORWARD);
« no previous file with comments | « ash/common/wm/window_cycle_list.cc ('k') | ash/wm/window_mirror_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698