| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/common/wm/window_cycle_controller.h" | 5 #include "ash/common/wm/window_cycle_controller.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <memory> | 8 #include <memory> |
| 9 | 9 |
| 10 #include "ash/common/focus_cycler.h" | 10 #include "ash/common/focus_cycler.h" |
| 11 #include "ash/common/scoped_root_window_for_new_windows.h" | 11 #include "ash/common/scoped_root_window_for_new_windows.h" |
| 12 #include "ash/common/session/session_state_delegate.h" | 12 #include "ash/common/session/session_controller.h" |
| 13 #include "ash/common/shelf/shelf_widget.h" | 13 #include "ash/common/shelf/shelf_widget.h" |
| 14 #include "ash/common/shelf/wm_shelf.h" | 14 #include "ash/common/shelf/wm_shelf.h" |
| 15 #include "ash/common/test/test_session_controller_client.h" |
| 15 #include "ash/common/test/test_shelf_delegate.h" | 16 #include "ash/common/test/test_shelf_delegate.h" |
| 16 #include "ash/common/wm/window_cycle_list.h" | 17 #include "ash/common/wm/window_cycle_list.h" |
| 17 #include "ash/common/wm/window_state.h" | 18 #include "ash/common/wm/window_state.h" |
| 18 #include "ash/common/wm/wm_event.h" | 19 #include "ash/common/wm/wm_event.h" |
| 19 #include "ash/common/wm_shell.h" | 20 #include "ash/common/wm_shell.h" |
| 20 #include "ash/common/wm_window.h" | 21 #include "ash/common/wm_window.h" |
| 21 #include "ash/public/cpp/shell_window_ids.h" | 22 #include "ash/public/cpp/shell_window_ids.h" |
| 22 #include "ash/shell.h" | 23 #include "ash/shell.h" |
| 23 #include "ash/test/ash_test_base.h" | 24 #include "ash/test/ash_test_base.h" |
| 24 #include "ash/test/shelf_view_test_api.h" | 25 #include "ash/test/shelf_view_test_api.h" |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 219 controller->HandleCycleWindow(WindowCycleController::BACKWARD); | 220 controller->HandleCycleWindow(WindowCycleController::BACKWARD); |
| 220 controller->CompleteCycling(); | 221 controller->CompleteCycling(); |
| 221 EXPECT_TRUE(wm::IsActiveWindow(window1.get())); | 222 EXPECT_TRUE(wm::IsActiveWindow(window1.get())); |
| 222 | 223 |
| 223 // Reset our stacking order. | 224 // Reset our stacking order. |
| 224 wm::ActivateWindow(window2.get()); | 225 wm::ActivateWindow(window2.get()); |
| 225 wm::ActivateWindow(window1.get()); | 226 wm::ActivateWindow(window1.get()); |
| 226 wm::ActivateWindow(window0.get()); | 227 wm::ActivateWindow(window0.get()); |
| 227 | 228 |
| 228 // When the screen is locked, cycling window does not take effect. | 229 // When the screen is locked, cycling window does not take effect. |
| 229 WmShell::Get()->GetSessionStateDelegate()->LockScreen(); | 230 WmShell::Get()->session_controller()->LockScreenAndFlushForTest(); |
| 230 EXPECT_TRUE(wm::IsActiveWindow(window0.get())); | 231 EXPECT_TRUE(wm::IsActiveWindow(window0.get())); |
| 231 controller->HandleCycleWindow(WindowCycleController::FORWARD); | 232 controller->HandleCycleWindow(WindowCycleController::FORWARD); |
| 232 EXPECT_FALSE(controller->IsCycling()); | 233 EXPECT_FALSE(controller->IsCycling()); |
| 233 | 234 |
| 234 // Unlock, it works again. | 235 // Unlock, it works again. |
| 235 WmShell::Get()->GetSessionStateDelegate()->UnlockScreen(); | 236 GetSessionControllerClient()->UnlockScreen(); |
| 236 EXPECT_TRUE(wm::IsActiveWindow(window0.get())); | 237 EXPECT_TRUE(wm::IsActiveWindow(window0.get())); |
| 237 controller->HandleCycleWindow(WindowCycleController::FORWARD); | 238 controller->HandleCycleWindow(WindowCycleController::FORWARD); |
| 238 controller->HandleCycleWindow(WindowCycleController::FORWARD); | 239 controller->HandleCycleWindow(WindowCycleController::FORWARD); |
| 239 controller->CompleteCycling(); | 240 controller->CompleteCycling(); |
| 240 EXPECT_TRUE(wm::IsActiveWindow(window2.get())); | 241 EXPECT_TRUE(wm::IsActiveWindow(window2.get())); |
| 241 | 242 |
| 242 // When a modal window is active, cycling window does not take effect. | 243 // When a modal window is active, cycling window does not take effect. |
| 243 aura::Window* modal_container = Shell::GetContainer( | 244 aura::Window* modal_container = Shell::GetContainer( |
| 244 Shell::GetPrimaryRootWindow(), kShellWindowId_SystemModalContainer); | 245 Shell::GetPrimaryRootWindow(), kShellWindowId_SystemModalContainer); |
| 245 std::unique_ptr<Window> modal_window( | 246 std::unique_ptr<Window> modal_window( |
| (...skipping 516 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 762 // Base case sets the expectation for other cases. | 763 // Base case sets the expectation for other cases. |
| 763 if (expected_bounds.IsEmpty()) | 764 if (expected_bounds.IsEmpty()) |
| 764 expected_bounds = display_relative_bounds; | 765 expected_bounds = display_relative_bounds; |
| 765 else | 766 else |
| 766 EXPECT_EQ(expected_bounds, display_relative_bounds); | 767 EXPECT_EQ(expected_bounds, display_relative_bounds); |
| 767 controller->CompleteCycling(); | 768 controller->CompleteCycling(); |
| 768 } | 769 } |
| 769 } | 770 } |
| 770 | 771 |
| 771 } // namespace ash | 772 } // namespace ash |
| OLD | NEW |