OLD | NEW |
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/common/accelerators/accelerator_controller.h" | 5 #include "ash/common/accelerators/accelerator_controller.h" |
6 | 6 |
7 #include "ash/common/accelerators/accelerator_table.h" | 7 #include "ash/common/accelerators/accelerator_table.h" |
8 #include "ash/common/accessibility_delegate.h" | 8 #include "ash/common/accessibility_delegate.h" |
9 #include "ash/common/accessibility_types.h" | 9 #include "ash/common/accessibility_types.h" |
10 #include "ash/common/ash_switches.h" | 10 #include "ash/common/ash_switches.h" |
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
660 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT); | 660 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT); |
661 window3_state->Unminimize(); | 661 window3_state->Unminimize(); |
662 EXPECT_FALSE(window1_state->IsDocked()); | 662 EXPECT_FALSE(window1_state->IsDocked()); |
663 EXPECT_FALSE(window2_state->IsDocked()); | 663 EXPECT_FALSE(window2_state->IsDocked()); |
664 EXPECT_TRUE(window3_state->IsDocked()); | 664 EXPECT_TRUE(window3_state->IsDocked()); |
665 EXPECT_EQ(window3_docked_bounds.ToString(), window3->bounds().ToString()); | 665 EXPECT_EQ(window3_docked_bounds.ToString(), window3->bounds().ToString()); |
666 } | 666 } |
667 | 667 |
668 TEST_F(EnabledDockedWindowsAcceleratorControllerTest, | 668 TEST_F(EnabledDockedWindowsAcceleratorControllerTest, |
669 WindowPanelDockLeftDockRightRestore) { | 669 WindowPanelDockLeftDockRightRestore) { |
| 670 // TODO: http://crbug.com/632209. |
| 671 if (WmShell::Get()->IsRunningInMash()) |
| 672 return; |
670 std::unique_ptr<aura::Window> window0( | 673 std::unique_ptr<aura::Window> window0( |
671 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20))); | 674 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20))); |
672 | 675 |
673 std::unique_ptr<aura::Window> window(CreatePanel()); | 676 std::unique_ptr<aura::Window> window(CreatePanel()); |
674 wm::WindowState* window_state = wm::GetWindowState(window.get()); | 677 wm::WindowState* window_state = wm::GetWindowState(window.get()); |
675 window_state->Activate(); | 678 window_state->Activate(); |
676 | 679 |
677 gfx::Rect window_restore_bounds2 = window->bounds(); | 680 gfx::Rect window_restore_bounds2 = window->bounds(); |
678 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT); | 681 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT); |
679 gfx::Rect expected_bounds = wm::GetDefaultLeftSnappedWindowBoundsInParent( | 682 gfx::Rect expected_bounds = wm::GetDefaultLeftSnappedWindowBoundsInParent( |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
841 | 844 |
842 key_event.InitKeyEvent(ui::ET_KEY_RELEASED, ui::VKEY_A, 0); | 845 key_event.InitKeyEvent(ui::ET_KEY_RELEASED, ui::VKEY_A, 0); |
843 ui::KeyEvent key_event3(key_event); | 846 ui::KeyEvent key_event3(key_event); |
844 details = dispatcher->OnEventFromSource(&key_event3); | 847 details = dispatcher->OnEventFromSource(&key_event3); |
845 EXPECT_FALSE(key_event3.handled() || details.dispatcher_destroyed); | 848 EXPECT_FALSE(key_event3.handled() || details.dispatcher_destroyed); |
846 EXPECT_EQ(1, target.accelerator_pressed_count()); | 849 EXPECT_EQ(1, target.accelerator_pressed_count()); |
847 } | 850 } |
848 #endif | 851 #endif |
849 | 852 |
850 TEST_F(AcceleratorControllerTest, GlobalAccelerators) { | 853 TEST_F(AcceleratorControllerTest, GlobalAccelerators) { |
| 854 // TODO: TestScreenshotDelegate is null in mash http://crbug.com/632111. |
| 855 if (WmShell::Get()->IsRunningInMash()) |
| 856 return; |
| 857 |
851 // CycleBackward | 858 // CycleBackward |
852 EXPECT_TRUE(ProcessInController( | 859 EXPECT_TRUE(ProcessInController( |
853 ui::Accelerator(ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN))); | 860 ui::Accelerator(ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN))); |
854 // CycleForward | 861 // CycleForward |
855 EXPECT_TRUE( | 862 EXPECT_TRUE( |
856 ProcessInController(ui::Accelerator(ui::VKEY_TAB, ui::EF_ALT_DOWN))); | 863 ProcessInController(ui::Accelerator(ui::VKEY_TAB, ui::EF_ALT_DOWN))); |
857 // CycleLinear | 864 // CycleLinear |
858 EXPECT_TRUE(ProcessInController( | 865 EXPECT_TRUE(ProcessInController( |
859 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_NONE))); | 866 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_NONE))); |
860 | 867 |
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1216 new test::TestSessionStateAnimator); | 1223 new test::TestSessionStateAnimator); |
1217 } | 1224 } |
1218 | 1225 |
1219 private: | 1226 private: |
1220 DISALLOW_COPY_AND_ASSIGN(PreferredReservedAcceleratorsTest); | 1227 DISALLOW_COPY_AND_ASSIGN(PreferredReservedAcceleratorsTest); |
1221 }; | 1228 }; |
1222 | 1229 |
1223 } // namespace | 1230 } // namespace |
1224 | 1231 |
1225 TEST_F(PreferredReservedAcceleratorsTest, AcceleratorsWithFullscreen) { | 1232 TEST_F(PreferredReservedAcceleratorsTest, AcceleratorsWithFullscreen) { |
| 1233 // TODO: needs LockStateController ported: http://crbug.com/632189. |
| 1234 if (WmShell::Get()->IsRunningInMash()) |
| 1235 return; |
| 1236 |
1226 aura::Window* w1 = CreateTestWindowInShellWithId(0); | 1237 aura::Window* w1 = CreateTestWindowInShellWithId(0); |
1227 aura::Window* w2 = CreateTestWindowInShellWithId(1); | 1238 aura::Window* w2 = CreateTestWindowInShellWithId(1); |
1228 wm::ActivateWindow(w1); | 1239 wm::ActivateWindow(w1); |
1229 | 1240 |
1230 wm::WMEvent fullscreen(wm::WM_EVENT_FULLSCREEN); | 1241 wm::WMEvent fullscreen(wm::WM_EVENT_FULLSCREEN); |
1231 wm::WindowState* w1_state = wm::GetWindowState(w1); | 1242 wm::WindowState* w1_state = wm::GetWindowState(w1); |
1232 w1_state->OnWMEvent(&fullscreen); | 1243 w1_state->OnWMEvent(&fullscreen); |
1233 ASSERT_TRUE(w1_state->IsFullscreen()); | 1244 ASSERT_TRUE(w1_state->IsFullscreen()); |
1234 | 1245 |
1235 ui::test::EventGenerator& generator = GetEventGenerator(); | 1246 ui::test::EventGenerator& generator = GetEventGenerator(); |
(...skipping 27 matching lines...) Expand all Loading... |
1263 w1_state->OnWMEvent(&normal); | 1274 w1_state->OnWMEvent(&normal); |
1264 ASSERT_FALSE(w1_state->IsFullscreen()); | 1275 ASSERT_FALSE(w1_state->IsFullscreen()); |
1265 | 1276 |
1266 EXPECT_EQ(w1, wm::GetActiveWindow()); | 1277 EXPECT_EQ(w1, wm::GetActiveWindow()); |
1267 press_and_release_alt_tab(); | 1278 press_and_release_alt_tab(); |
1268 ASSERT_NE(w1, wm::GetActiveWindow()); | 1279 ASSERT_NE(w1, wm::GetActiveWindow()); |
1269 ASSERT_EQ(w2, wm::GetActiveWindow()); | 1280 ASSERT_EQ(w2, wm::GetActiveWindow()); |
1270 } | 1281 } |
1271 | 1282 |
1272 TEST_F(PreferredReservedAcceleratorsTest, AcceleratorsWithPinned) { | 1283 TEST_F(PreferredReservedAcceleratorsTest, AcceleratorsWithPinned) { |
| 1284 // TODO: needs LockStateController ported: http://crbug.com/632189. |
| 1285 if (WmShell::Get()->IsRunningInMash()) |
| 1286 return; |
1273 aura::Window* w1 = CreateTestWindowInShellWithId(0); | 1287 aura::Window* w1 = CreateTestWindowInShellWithId(0); |
1274 aura::Window* w2 = CreateTestWindowInShellWithId(1); | 1288 aura::Window* w2 = CreateTestWindowInShellWithId(1); |
1275 wm::ActivateWindow(w1); | 1289 wm::ActivateWindow(w1); |
1276 | 1290 |
1277 { | 1291 { |
1278 wm::WMEvent pin_event(wm::WM_EVENT_PIN); | 1292 wm::WMEvent pin_event(wm::WM_EVENT_PIN); |
1279 wm::WindowState* w1_state = wm::GetWindowState(w1); | 1293 wm::WindowState* w1_state = wm::GetWindowState(w1); |
1280 w1_state->OnWMEvent(&pin_event); | 1294 w1_state->OnWMEvent(&pin_event); |
1281 ASSERT_TRUE(w1_state->IsPinned()); | 1295 ASSERT_TRUE(w1_state->IsPinned()); |
1282 } | 1296 } |
1283 | 1297 |
1284 ui::test::EventGenerator& generator = GetEventGenerator(); | 1298 ui::test::EventGenerator& generator = GetEventGenerator(); |
1285 | 1299 |
1286 // Power key (reserved) should always be handled. | 1300 // Power key (reserved) should always be handled. |
1287 test::LockStateControllerTestApi test_api( | 1301 test::LockStateControllerTestApi test_api( |
1288 Shell::GetInstance()->lock_state_controller()); | 1302 Shell::GetInstance()->lock_state_controller()); |
1289 EXPECT_FALSE(test_api.is_animating_lock()); | 1303 EXPECT_FALSE(test_api.is_animating_lock()); |
1290 generator.PressKey(ui::VKEY_POWER, ui::EF_NONE); | 1304 generator.PressKey(ui::VKEY_POWER, ui::EF_NONE); |
1291 EXPECT_TRUE(test_api.is_animating_lock()); | 1305 EXPECT_TRUE(test_api.is_animating_lock()); |
1292 | 1306 |
1293 // A pinned window can consume ALT-TAB (preferred), but no side effect. | 1307 // A pinned window can consume ALT-TAB (preferred), but no side effect. |
1294 ASSERT_EQ(w1, wm::GetActiveWindow()); | 1308 ASSERT_EQ(w1, wm::GetActiveWindow()); |
1295 generator.PressKey(ui::VKEY_TAB, ui::EF_ALT_DOWN); | 1309 generator.PressKey(ui::VKEY_TAB, ui::EF_ALT_DOWN); |
1296 generator.ReleaseKey(ui::VKEY_TAB, ui::EF_ALT_DOWN); | 1310 generator.ReleaseKey(ui::VKEY_TAB, ui::EF_ALT_DOWN); |
1297 ASSERT_EQ(w1, wm::GetActiveWindow()); | 1311 ASSERT_EQ(w1, wm::GetActiveWindow()); |
1298 ASSERT_NE(w2, wm::GetActiveWindow()); | 1312 ASSERT_NE(w2, wm::GetActiveWindow()); |
1299 } | 1313 } |
1300 | 1314 |
1301 TEST_F(AcceleratorControllerTest, DisallowedAtModalWindow) { | 1315 TEST_F(AcceleratorControllerTest, DisallowedAtModalWindow) { |
| 1316 // TODO: TestScreenshotDelegate is null in mash http://crbug.com/632111. |
| 1317 if (WmShell::Get()->IsRunningInMash()) |
| 1318 return; |
| 1319 |
1302 std::set<AcceleratorAction> all_actions; | 1320 std::set<AcceleratorAction> all_actions; |
1303 for (size_t i = 0; i < kAcceleratorDataLength; ++i) | 1321 for (size_t i = 0; i < kAcceleratorDataLength; ++i) |
1304 all_actions.insert(kAcceleratorData[i].action); | 1322 all_actions.insert(kAcceleratorData[i].action); |
1305 std::set<AcceleratorAction> all_debug_actions; | 1323 std::set<AcceleratorAction> all_debug_actions; |
1306 for (size_t i = 0; i < kDebugAcceleratorDataLength; ++i) | 1324 for (size_t i = 0; i < kDebugAcceleratorDataLength; ++i) |
1307 all_debug_actions.insert(kDebugAcceleratorData[i].action); | 1325 all_debug_actions.insert(kDebugAcceleratorData[i].action); |
1308 std::set<AcceleratorAction> all_dev_actions; | 1326 std::set<AcceleratorAction> all_dev_actions; |
1309 for (size_t i = 0; i < kDeveloperAcceleratorDataLength; ++i) | 1327 for (size_t i = 0; i < kDeveloperAcceleratorDataLength; ++i) |
1310 all_dev_actions.insert(kDeveloperAcceleratorData[i].action); | 1328 all_dev_actions.insert(kDeveloperAcceleratorData[i].action); |
1311 | 1329 |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1477 return message_center::MessageCenter::Get(); | 1495 return message_center::MessageCenter::Get(); |
1478 } | 1496 } |
1479 | 1497 |
1480 private: | 1498 private: |
1481 DISALLOW_COPY_AND_ASSIGN(DeprecatedAcceleratorTester); | 1499 DISALLOW_COPY_AND_ASSIGN(DeprecatedAcceleratorTester); |
1482 }; | 1500 }; |
1483 | 1501 |
1484 } // namespace | 1502 } // namespace |
1485 | 1503 |
1486 TEST_F(DeprecatedAcceleratorTester, TestDeprecatedAcceleratorsBehavior) { | 1504 TEST_F(DeprecatedAcceleratorTester, TestDeprecatedAcceleratorsBehavior) { |
| 1505 // TODO: disabled because of UnblockUserSession() not working: |
| 1506 // http://crbug.com/632201. |
| 1507 if (WmShell::Get()->IsRunningInMash()) |
| 1508 return; |
1487 for (size_t i = 0; i < kDeprecatedAcceleratorsLength; ++i) { | 1509 for (size_t i = 0; i < kDeprecatedAcceleratorsLength; ++i) { |
1488 const AcceleratorData& entry = kDeprecatedAccelerators[i]; | 1510 const AcceleratorData& entry = kDeprecatedAccelerators[i]; |
1489 | 1511 |
1490 auto itr = GetController()->actions_with_deprecations_.find(entry.action); | 1512 auto itr = GetController()->actions_with_deprecations_.find(entry.action); |
1491 ASSERT_TRUE(itr != GetController()->actions_with_deprecations_.end()); | 1513 ASSERT_TRUE(itr != GetController()->actions_with_deprecations_.end()); |
1492 const DeprecatedAcceleratorData* data = itr->second; | 1514 const DeprecatedAcceleratorData* data = itr->second; |
1493 | 1515 |
1494 EXPECT_TRUE(IsMessageCenterEmpty()); | 1516 EXPECT_TRUE(IsMessageCenterEmpty()); |
1495 ui::Accelerator deprecated_accelerator = CreateAccelerator(entry); | 1517 ui::Accelerator deprecated_accelerator = CreateAccelerator(entry); |
1496 if (data->deprecated_enabled) | 1518 if (data->deprecated_enabled) |
(...skipping 28 matching lines...) Expand all Loading... |
1525 // Expect no notifications from the new accelerators. | 1547 // Expect no notifications from the new accelerators. |
1526 EXPECT_TRUE(IsMessageCenterEmpty()); | 1548 EXPECT_TRUE(IsMessageCenterEmpty()); |
1527 | 1549 |
1528 // If the action is LOCK_SCREEN, we must reset the state by unlocking the | 1550 // If the action is LOCK_SCREEN, we must reset the state by unlocking the |
1529 // screen before we proceed testing the rest of accelerators. | 1551 // screen before we proceed testing the rest of accelerators. |
1530 ResetStateIfNeeded(); | 1552 ResetStateIfNeeded(); |
1531 } | 1553 } |
1532 } | 1554 } |
1533 | 1555 |
1534 } // namespace ash | 1556 } // namespace ash |
OLD | NEW |