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

Side by Side Diff: ash/accelerators/accelerator_controller_unittest.cc

Issue 2808723004: Renames WmShell to ShellPort (Closed)
Patch Set: feedback Created 3 years, 8 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
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/accelerators/accelerator_controller.h" 5 #include "ash/accelerators/accelerator_controller.h"
6 6
7 #include "ash/accelerators/accelerator_table.h" 7 #include "ash/accelerators/accelerator_table.h"
8 #include "ash/accessibility_delegate.h" 8 #include "ash/accessibility_delegate.h"
9 #include "ash/accessibility_types.h" 9 #include "ash/accessibility_types.h"
10 #include "ash/ash_switches.h" 10 #include "ash/ash_switches.h"
11 #include "ash/ime_control_delegate.h" 11 #include "ash/ime_control_delegate.h"
12 #include "ash/public/cpp/shell_window_ids.h" 12 #include "ash/public/cpp/shell_window_ids.h"
13 #include "ash/session/session_controller.h" 13 #include "ash/session/session_controller.h"
14 #include "ash/shell.h" 14 #include "ash/shell.h"
15 #include "ash/shell_port.h"
15 #include "ash/system/brightness_control_delegate.h" 16 #include "ash/system/brightness_control_delegate.h"
16 #include "ash/system/keyboard_brightness_control_delegate.h" 17 #include "ash/system/keyboard_brightness_control_delegate.h"
17 #include "ash/system/tray/system_tray_delegate.h" 18 #include "ash/system/tray/system_tray_delegate.h"
18 #include "ash/test/ash_test_base.h" 19 #include "ash/test/ash_test_base.h"
19 #include "ash/test/lock_state_controller_test_api.h" 20 #include "ash/test/lock_state_controller_test_api.h"
20 #include "ash/test/test_screenshot_delegate.h" 21 #include "ash/test/test_screenshot_delegate.h"
21 #include "ash/test/test_session_state_animator.h" 22 #include "ash/test/test_session_state_animator.h"
22 #include "ash/test/test_shelf_delegate.h" 23 #include "ash/test/test_shelf_delegate.h"
23 #include "ash/wm/lock_state_controller.h" 24 #include "ash/wm/lock_state_controller.h"
24 #include "ash/wm/panels/panel_layout_manager.h" 25 #include "ash/wm/panels/panel_layout_manager.h"
25 #include "ash/wm/window_positioning_utils.h" 26 #include "ash/wm/window_positioning_utils.h"
26 #include "ash/wm/window_state.h" 27 #include "ash/wm/window_state.h"
27 #include "ash/wm/window_state_aura.h" 28 #include "ash/wm/window_state_aura.h"
28 #include "ash/wm/window_util.h" 29 #include "ash/wm/window_util.h"
29 #include "ash/wm/wm_event.h" 30 #include "ash/wm/wm_event.h"
30 #include "ash/wm_shell.h"
31 #include "ash/wm_window.h" 31 #include "ash/wm_window.h"
32 #include "base/command_line.h" 32 #include "base/command_line.h"
33 #include "base/test/user_action_tester.cc" 33 #include "base/test/user_action_tester.cc"
34 #include "services/ui/public/interfaces/window_manager_constants.mojom.h" 34 #include "services/ui/public/interfaces/window_manager_constants.mojom.h"
35 #include "ui/app_list/presenter/app_list.h" 35 #include "ui/app_list/presenter/app_list.h"
36 #include "ui/app_list/presenter/test/test_app_list_presenter.h" 36 #include "ui/app_list/presenter/test/test_app_list_presenter.h"
37 #include "ui/aura/client/aura_constants.h" 37 #include "ui/aura/client/aura_constants.h"
38 #include "ui/aura/test/test_window_delegate.h" 38 #include "ui/aura/test/test_window_delegate.h"
39 #include "ui/aura/test/test_windows.h" 39 #include "ui/aura/test/test_windows.h"
40 #include "ui/aura/window.h" 40 #include "ui/aura/window.h"
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 WmWindow::Get(window.get())); 516 WmWindow::Get(window.get()));
517 EXPECT_EQ(expected_bounds.ToString(), window->bounds().ToString()); 517 EXPECT_EQ(expected_bounds.ToString(), window->bounds().ToString());
518 // Snap left again ->> becomes normal. 518 // Snap left again ->> becomes normal.
519 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_LEFT); 519 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_LEFT);
520 EXPECT_TRUE(window_state->IsNormalStateType()); 520 EXPECT_TRUE(window_state->IsNormalStateType());
521 EXPECT_EQ(normal_bounds.ToString(), window->bounds().ToString()); 521 EXPECT_EQ(normal_bounds.ToString(), window->bounds().ToString());
522 } 522 }
523 523
524 TEST_F(AcceleratorControllerTest, RotateScreen) { 524 TEST_F(AcceleratorControllerTest, RotateScreen) {
525 // TODO: needs GetDisplayInfo http://crbug.com/622480. 525 // TODO: needs GetDisplayInfo http://crbug.com/622480.
526 if (WmShell::Get()->IsRunningInMash()) 526 if (ShellPort::Get()->IsRunningInMash())
527 return; 527 return;
528 528
529 display::Display display = display::Screen::GetScreen()->GetPrimaryDisplay(); 529 display::Display display = display::Screen::GetScreen()->GetPrimaryDisplay();
530 display::Display::Rotation initial_rotation = 530 display::Display::Rotation initial_rotation =
531 GetActiveDisplayRotation(display.id()); 531 GetActiveDisplayRotation(display.id());
532 ui::test::EventGenerator& generator = GetEventGenerator(); 532 ui::test::EventGenerator& generator = GetEventGenerator();
533 generator.PressKey(ui::VKEY_BROWSER_REFRESH, 533 generator.PressKey(ui::VKEY_BROWSER_REFRESH,
534 ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN); 534 ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN);
535 generator.ReleaseKey(ui::VKEY_BROWSER_REFRESH, 535 generator.ReleaseKey(ui::VKEY_BROWSER_REFRESH,
536 ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN); 536 ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN);
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
656 key_event.InitKeyEvent(ui::ET_KEY_RELEASED, ui::VKEY_A, 0); 656 key_event.InitKeyEvent(ui::ET_KEY_RELEASED, ui::VKEY_A, 0);
657 ui::KeyEvent key_event3(key_event); 657 ui::KeyEvent key_event3(key_event);
658 details = sink->OnEventFromSource(&key_event3); 658 details = sink->OnEventFromSource(&key_event3);
659 EXPECT_FALSE(key_event3.handled() || details.dispatcher_destroyed); 659 EXPECT_FALSE(key_event3.handled() || details.dispatcher_destroyed);
660 EXPECT_EQ(1, target.accelerator_pressed_count()); 660 EXPECT_EQ(1, target.accelerator_pressed_count());
661 } 661 }
662 #endif 662 #endif
663 663
664 TEST_F(AcceleratorControllerTest, GlobalAccelerators) { 664 TEST_F(AcceleratorControllerTest, GlobalAccelerators) {
665 // TODO: TestScreenshotDelegate is null in mash http://crbug.com/632111. 665 // TODO: TestScreenshotDelegate is null in mash http://crbug.com/632111.
666 if (WmShell::Get()->IsRunningInMash()) 666 if (ShellPort::Get()->IsRunningInMash())
667 return; 667 return;
668 668
669 // CycleBackward 669 // CycleBackward
670 EXPECT_TRUE(ProcessInController( 670 EXPECT_TRUE(ProcessInController(
671 ui::Accelerator(ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN))); 671 ui::Accelerator(ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN)));
672 // CycleForward 672 // CycleForward
673 EXPECT_TRUE( 673 EXPECT_TRUE(
674 ProcessInController(ui::Accelerator(ui::VKEY_TAB, ui::EF_ALT_DOWN))); 674 ProcessInController(ui::Accelerator(ui::VKEY_TAB, ui::EF_ALT_DOWN)));
675 // CycleLinear 675 // CycleLinear
676 EXPECT_TRUE(ProcessInController( 676 EXPECT_TRUE(ProcessInController(
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
1034 } 1034 }
1035 1035
1036 private: 1036 private:
1037 DISALLOW_COPY_AND_ASSIGN(PreferredReservedAcceleratorsTest); 1037 DISALLOW_COPY_AND_ASSIGN(PreferredReservedAcceleratorsTest);
1038 }; 1038 };
1039 1039
1040 } // namespace 1040 } // namespace
1041 1041
1042 TEST_F(PreferredReservedAcceleratorsTest, AcceleratorsWithFullscreen) { 1042 TEST_F(PreferredReservedAcceleratorsTest, AcceleratorsWithFullscreen) {
1043 // TODO: needs LockStateController ported: http://crbug.com/632189. 1043 // TODO: needs LockStateController ported: http://crbug.com/632189.
1044 if (WmShell::Get()->IsRunningInMash()) 1044 if (ShellPort::Get()->IsRunningInMash())
1045 return; 1045 return;
1046 1046
1047 aura::Window* w1 = CreateTestWindowInShellWithId(0); 1047 aura::Window* w1 = CreateTestWindowInShellWithId(0);
1048 aura::Window* w2 = CreateTestWindowInShellWithId(1); 1048 aura::Window* w2 = CreateTestWindowInShellWithId(1);
1049 wm::ActivateWindow(w1); 1049 wm::ActivateWindow(w1);
1050 1050
1051 wm::WMEvent fullscreen(wm::WM_EVENT_FULLSCREEN); 1051 wm::WMEvent fullscreen(wm::WM_EVENT_FULLSCREEN);
1052 wm::WindowState* w1_state = wm::GetWindowState(w1); 1052 wm::WindowState* w1_state = wm::GetWindowState(w1);
1053 w1_state->OnWMEvent(&fullscreen); 1053 w1_state->OnWMEvent(&fullscreen);
1054 ASSERT_TRUE(w1_state->IsFullscreen()); 1054 ASSERT_TRUE(w1_state->IsFullscreen());
(...skipping 30 matching lines...) Expand all
1085 ASSERT_FALSE(w1_state->IsFullscreen()); 1085 ASSERT_FALSE(w1_state->IsFullscreen());
1086 1086
1087 EXPECT_EQ(w1, wm::GetActiveWindow()); 1087 EXPECT_EQ(w1, wm::GetActiveWindow());
1088 press_and_release_alt_tab(); 1088 press_and_release_alt_tab();
1089 ASSERT_NE(w1, wm::GetActiveWindow()); 1089 ASSERT_NE(w1, wm::GetActiveWindow());
1090 ASSERT_EQ(w2, wm::GetActiveWindow()); 1090 ASSERT_EQ(w2, wm::GetActiveWindow());
1091 } 1091 }
1092 1092
1093 TEST_F(PreferredReservedAcceleratorsTest, AcceleratorsWithPinned) { 1093 TEST_F(PreferredReservedAcceleratorsTest, AcceleratorsWithPinned) {
1094 // TODO: needs LockStateController ported: http://crbug.com/632189. 1094 // TODO: needs LockStateController ported: http://crbug.com/632189.
1095 if (WmShell::Get()->IsRunningInMash()) 1095 if (ShellPort::Get()->IsRunningInMash())
1096 return; 1096 return;
1097 aura::Window* w1 = CreateTestWindowInShellWithId(0); 1097 aura::Window* w1 = CreateTestWindowInShellWithId(0);
1098 aura::Window* w2 = CreateTestWindowInShellWithId(1); 1098 aura::Window* w2 = CreateTestWindowInShellWithId(1);
1099 wm::ActivateWindow(w1); 1099 wm::ActivateWindow(w1);
1100 1100
1101 { 1101 {
1102 wm::WMEvent pin_event(wm::WM_EVENT_PIN); 1102 wm::WMEvent pin_event(wm::WM_EVENT_PIN);
1103 wm::WindowState* w1_state = wm::GetWindowState(w1); 1103 wm::WindowState* w1_state = wm::GetWindowState(w1);
1104 w1_state->OnWMEvent(&pin_event); 1104 w1_state->OnWMEvent(&pin_event);
1105 ASSERT_TRUE(w1_state->IsPinned()); 1105 ASSERT_TRUE(w1_state->IsPinned());
(...skipping 11 matching lines...) Expand all
1117 // A pinned window can consume ALT-TAB (preferred), but no side effect. 1117 // A pinned window can consume ALT-TAB (preferred), but no side effect.
1118 ASSERT_EQ(w1, wm::GetActiveWindow()); 1118 ASSERT_EQ(w1, wm::GetActiveWindow());
1119 generator.PressKey(ui::VKEY_TAB, ui::EF_ALT_DOWN); 1119 generator.PressKey(ui::VKEY_TAB, ui::EF_ALT_DOWN);
1120 generator.ReleaseKey(ui::VKEY_TAB, ui::EF_ALT_DOWN); 1120 generator.ReleaseKey(ui::VKEY_TAB, ui::EF_ALT_DOWN);
1121 ASSERT_EQ(w1, wm::GetActiveWindow()); 1121 ASSERT_EQ(w1, wm::GetActiveWindow());
1122 ASSERT_NE(w2, wm::GetActiveWindow()); 1122 ASSERT_NE(w2, wm::GetActiveWindow());
1123 } 1123 }
1124 1124
1125 TEST_F(AcceleratorControllerTest, DisallowedAtModalWindow) { 1125 TEST_F(AcceleratorControllerTest, DisallowedAtModalWindow) {
1126 // TODO: TestScreenshotDelegate is null in mash http://crbug.com/632111. 1126 // TODO: TestScreenshotDelegate is null in mash http://crbug.com/632111.
1127 if (WmShell::Get()->IsRunningInMash()) 1127 if (ShellPort::Get()->IsRunningInMash())
1128 return; 1128 return;
1129 1129
1130 std::set<AcceleratorAction> all_actions; 1130 std::set<AcceleratorAction> all_actions;
1131 for (size_t i = 0; i < kAcceleratorDataLength; ++i) 1131 for (size_t i = 0; i < kAcceleratorDataLength; ++i)
1132 all_actions.insert(kAcceleratorData[i].action); 1132 all_actions.insert(kAcceleratorData[i].action);
1133 std::set<AcceleratorAction> all_debug_actions; 1133 std::set<AcceleratorAction> all_debug_actions;
1134 for (size_t i = 0; i < kDebugAcceleratorDataLength; ++i) 1134 for (size_t i = 0; i < kDebugAcceleratorDataLength; ++i)
1135 all_debug_actions.insert(kDebugAcceleratorData[i].action); 1135 all_debug_actions.insert(kDebugAcceleratorData[i].action);
1136 std::set<AcceleratorAction> all_dev_actions; 1136 std::set<AcceleratorAction> all_dev_actions;
1137 for (size_t i = 0; i < kDeveloperAcceleratorDataLength; ++i) 1137 for (size_t i = 0; i < kDeveloperAcceleratorDataLength; ++i)
1138 all_dev_actions.insert(kDeveloperAcceleratorData[i].action); 1138 all_dev_actions.insert(kDeveloperAcceleratorData[i].action);
1139 1139
1140 std::set<AcceleratorAction> actionsAllowedAtModalWindow; 1140 std::set<AcceleratorAction> actionsAllowedAtModalWindow;
1141 for (size_t k = 0; k < kActionsAllowedAtModalWindowLength; ++k) 1141 for (size_t k = 0; k < kActionsAllowedAtModalWindowLength; ++k)
1142 actionsAllowedAtModalWindow.insert(kActionsAllowedAtModalWindow[k]); 1142 actionsAllowedAtModalWindow.insert(kActionsAllowedAtModalWindow[k]);
1143 for (const auto& action : actionsAllowedAtModalWindow) { 1143 for (const auto& action : actionsAllowedAtModalWindow) {
1144 EXPECT_TRUE(all_actions.find(action) != all_actions.end() || 1144 EXPECT_TRUE(all_actions.find(action) != all_actions.end() ||
1145 all_debug_actions.find(action) != all_debug_actions.end() || 1145 all_debug_actions.find(action) != all_debug_actions.end() ||
1146 all_dev_actions.find(action) != all_dev_actions.end()) 1146 all_dev_actions.find(action) != all_dev_actions.end())
1147 << " action from kActionsAllowedAtModalWindow" 1147 << " action from kActionsAllowedAtModalWindow"
1148 << " not found in kAcceleratorData, kDebugAcceleratorData or" 1148 << " not found in kAcceleratorData, kDebugAcceleratorData or"
1149 << " kDeveloperAcceleratorData action: " << action; 1149 << " kDeveloperAcceleratorData action: " << action;
1150 } 1150 }
1151 std::unique_ptr<aura::Window> window( 1151 std::unique_ptr<aura::Window> window(
1152 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20))); 1152 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20)));
1153 wm::ActivateWindow(window.get()); 1153 wm::ActivateWindow(window.get());
1154 WmShell::Get()->SimulateModalWindowOpenForTesting(true); 1154 ShellPort::Get()->SimulateModalWindowOpenForTesting(true);
1155 for (const auto& action : all_actions) { 1155 for (const auto& action : all_actions) {
1156 if (actionsAllowedAtModalWindow.find(action) == 1156 if (actionsAllowedAtModalWindow.find(action) ==
1157 actionsAllowedAtModalWindow.end()) { 1157 actionsAllowedAtModalWindow.end()) {
1158 EXPECT_TRUE(GetController()->PerformActionIfEnabled(action)) 1158 EXPECT_TRUE(GetController()->PerformActionIfEnabled(action))
1159 << " for action (disallowed at modal window): " << action; 1159 << " for action (disallowed at modal window): " << action;
1160 } 1160 }
1161 } 1161 }
1162 // Testing of top row (F5-F10) accelerators that should still work 1162 // Testing of top row (F5-F10) accelerators that should still work
1163 // when a modal window is open 1163 // when a modal window is open
1164 // 1164 //
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
1308 1308
1309 private: 1309 private:
1310 DISALLOW_COPY_AND_ASSIGN(DeprecatedAcceleratorTester); 1310 DISALLOW_COPY_AND_ASSIGN(DeprecatedAcceleratorTester);
1311 }; 1311 };
1312 1312
1313 } // namespace 1313 } // namespace
1314 1314
1315 TEST_F(DeprecatedAcceleratorTester, TestDeprecatedAcceleratorsBehavior) { 1315 TEST_F(DeprecatedAcceleratorTester, TestDeprecatedAcceleratorsBehavior) {
1316 // TODO: disabled because of UnblockUserSession() not working: 1316 // TODO: disabled because of UnblockUserSession() not working:
1317 // http://crbug.com/632201. 1317 // http://crbug.com/632201.
1318 if (WmShell::Get()->IsRunningInMash()) 1318 if (ShellPort::Get()->IsRunningInMash())
1319 return; 1319 return;
1320 for (size_t i = 0; i < kDeprecatedAcceleratorsLength; ++i) { 1320 for (size_t i = 0; i < kDeprecatedAcceleratorsLength; ++i) {
1321 const AcceleratorData& entry = kDeprecatedAccelerators[i]; 1321 const AcceleratorData& entry = kDeprecatedAccelerators[i];
1322 1322
1323 auto itr = GetController()->actions_with_deprecations_.find(entry.action); 1323 auto itr = GetController()->actions_with_deprecations_.find(entry.action);
1324 ASSERT_TRUE(itr != GetController()->actions_with_deprecations_.end()); 1324 ASSERT_TRUE(itr != GetController()->actions_with_deprecations_.end());
1325 const DeprecatedAcceleratorData* data = itr->second; 1325 const DeprecatedAcceleratorData* data = itr->second;
1326 1326
1327 EXPECT_TRUE(IsMessageCenterEmpty()); 1327 EXPECT_TRUE(IsMessageCenterEmpty());
1328 ui::Accelerator deprecated_accelerator = CreateAccelerator(entry); 1328 ui::Accelerator deprecated_accelerator = CreateAccelerator(entry);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1360 // Expect no notifications from the new accelerators. 1360 // Expect no notifications from the new accelerators.
1361 EXPECT_TRUE(IsMessageCenterEmpty()); 1361 EXPECT_TRUE(IsMessageCenterEmpty());
1362 1362
1363 // If the action is LOCK_SCREEN, we must reset the state by unlocking the 1363 // If the action is LOCK_SCREEN, we must reset the state by unlocking the
1364 // screen before we proceed testing the rest of accelerators. 1364 // screen before we proceed testing the rest of accelerators.
1365 ResetStateIfNeeded(); 1365 ResetStateIfNeeded();
1366 } 1366 }
1367 } 1367 }
1368 1368
1369 } // namespace ash 1369 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698