| 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 |