| 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/ime_control_delegate.h" | 10 #include "ash/common/ime_control_delegate.h" |
| 11 #include "ash/common/session/session_state_delegate.h" | 11 #include "ash/common/session/session_state_delegate.h" |
| 12 #include "ash/common/shell_window_ids.h" | 12 #include "ash/common/shell_window_ids.h" |
| 13 #include "ash/common/system/brightness_control_delegate.h" | 13 #include "ash/common/system/brightness_control_delegate.h" |
| 14 #include "ash/common/system/keyboard_brightness_control_delegate.h" | 14 #include "ash/common/system/keyboard_brightness_control_delegate.h" |
| 15 #include "ash/common/system/tray/system_tray_delegate.h" | 15 #include "ash/common/system/tray/system_tray_delegate.h" |
| 16 #include "ash/common/system/volume_control_delegate.h" | |
| 17 #include "ash/common/test/ash_test.h" | 16 #include "ash/common/test/ash_test.h" |
| 18 #include "ash/common/test/test_volume_control_delegate.h" | |
| 19 #include "ash/common/wm/panels/panel_layout_manager.h" | 17 #include "ash/common/wm/panels/panel_layout_manager.h" |
| 20 #include "ash/common/wm/window_positioning_utils.h" | 18 #include "ash/common/wm/window_positioning_utils.h" |
| 21 #include "ash/common/wm/window_state.h" | 19 #include "ash/common/wm/window_state.h" |
| 22 #include "ash/common/wm/wm_event.h" | 20 #include "ash/common/wm/wm_event.h" |
| 23 #include "ash/common/wm_lookup.h" | 21 #include "ash/common/wm_lookup.h" |
| 24 #include "ash/common/wm_root_window_controller.h" | 22 #include "ash/common/wm_root_window_controller.h" |
| 25 #include "ash/common/wm_shell.h" | 23 #include "ash/common/wm_shell.h" |
| 26 #include "ash/mus/accelerators/accelerator_controller_registrar_test_api.h" | 24 #include "ash/mus/accelerators/accelerator_controller_registrar_test_api.h" |
| 27 #include "ash/mus/bridge/wm_shell_mus_test_api.h" | 25 #include "ash/mus/bridge/wm_shell_mus_test_api.h" |
| 28 #include "ash/mus/bridge/wm_window_mus.h" | 26 #include "ash/mus/bridge/wm_window_mus.h" |
| 29 #include "ash/mus/property_util.h" | 27 #include "ash/mus/property_util.h" |
| 30 #include "ash/mus/test/wm_test_base.h" | 28 #include "ash/mus/test/wm_test_base.h" |
| 29 #include "base/test/user_action_tester.cc" |
| 31 #include "ui/events/event.h" | 30 #include "ui/events/event.h" |
| 32 #include "ui/events/event_processor.h" | 31 #include "ui/events/event_processor.h" |
| 33 #include "ui/events/test/event_generator.h" | 32 #include "ui/events/test/event_generator.h" |
| 34 #include "ui/message_center/message_center.h" | 33 #include "ui/message_center/message_center.h" |
| 35 #include "ui/views/widget/widget.h" | 34 #include "ui/views/widget/widget.h" |
| 36 | 35 |
| 37 #if defined(USE_X11) | 36 #if defined(USE_X11) |
| 38 #include <X11/Xlib.h> | 37 #include <X11/Xlib.h> |
| 39 #include "ui/events/test/events_test_utils_x11.h" | 38 #include "ui/events/test/events_test_utils_x11.h" |
| 40 #endif | 39 #endif |
| (...skipping 761 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 802 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); | 801 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); |
| 803 EXPECT_TRUE(ProcessInController(ui::Accelerator( | 802 EXPECT_TRUE(ProcessInController(ui::Accelerator( |
| 804 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 803 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
| 805 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); | 804 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); |
| 806 } | 805 } |
| 807 */ | 806 */ |
| 808 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); | 807 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); |
| 809 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, ui::EF_NONE); | 808 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, ui::EF_NONE); |
| 810 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, ui::EF_NONE); | 809 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, ui::EF_NONE); |
| 811 { | 810 { |
| 812 TestVolumeControlDelegate* delegate = new TestVolumeControlDelegate; | 811 base::UserActionTester user_action_tester; |
| 813 WmShell::Get()->system_tray_delegate()->SetVolumeControlDelegate( | 812 ui::AcceleratorHistory* history = GetController()->accelerator_history(); |
| 814 std::unique_ptr<VolumeControlDelegate>(delegate)); | 813 |
| 815 EXPECT_EQ(0, delegate->handle_volume_mute_count()); | 814 EXPECT_EQ(0, user_action_tester.GetActionCount("Accel_VolumeMute_F8")); |
| 816 EXPECT_TRUE(ProcessInController(volume_mute)); | 815 EXPECT_TRUE(ProcessInController(volume_mute)); |
| 817 EXPECT_EQ(1, delegate->handle_volume_mute_count()); | 816 EXPECT_EQ(1, user_action_tester.GetActionCount("Accel_VolumeMute_F8")); |
| 818 EXPECT_EQ(volume_mute, delegate->last_accelerator()); | 817 EXPECT_EQ(volume_mute, history->current_accelerator()); |
| 819 EXPECT_EQ(0, delegate->handle_volume_down_count()); | 818 |
| 819 EXPECT_EQ(0, user_action_tester.GetActionCount("Accel_VolumeDown_F9")); |
| 820 EXPECT_TRUE(ProcessInController(volume_down)); | 820 EXPECT_TRUE(ProcessInController(volume_down)); |
| 821 EXPECT_EQ(1, delegate->handle_volume_down_count()); | 821 EXPECT_EQ(1, user_action_tester.GetActionCount("Accel_VolumeDown_F9")); |
| 822 EXPECT_EQ(volume_down, delegate->last_accelerator()); | 822 EXPECT_EQ(volume_down, history->current_accelerator()); |
| 823 EXPECT_EQ(0, delegate->handle_volume_up_count()); | 823 |
| 824 EXPECT_EQ(0, user_action_tester.GetActionCount("Accel_VolumeUp_F10")); |
| 824 EXPECT_TRUE(ProcessInController(volume_up)); | 825 EXPECT_TRUE(ProcessInController(volume_up)); |
| 825 EXPECT_EQ(1, delegate->handle_volume_up_count()); | 826 EXPECT_EQ(volume_up, history->current_accelerator()); |
| 826 EXPECT_EQ(volume_up, delegate->last_accelerator()); | 827 EXPECT_EQ(1, user_action_tester.GetActionCount("Accel_VolumeUp_F10")); |
| 827 } | 828 } |
| 828 // Brightness | 829 // Brightness |
| 829 // ui::VKEY_BRIGHTNESS_DOWN/UP are not defined on Windows. | 830 // ui::VKEY_BRIGHTNESS_DOWN/UP are not defined on Windows. |
| 830 const ui::Accelerator brightness_down(ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE); | 831 const ui::Accelerator brightness_down(ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE); |
| 831 const ui::Accelerator brightness_up(ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE); | 832 const ui::Accelerator brightness_up(ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE); |
| 832 { | 833 { |
| 833 DummyBrightnessControlDelegate* delegate = | 834 DummyBrightnessControlDelegate* delegate = |
| 834 new DummyBrightnessControlDelegate; | 835 new DummyBrightnessControlDelegate; |
| 835 SetBrightnessControlDelegate( | 836 SetBrightnessControlDelegate( |
| 836 std::unique_ptr<BrightnessControlDelegate>(delegate)); | 837 std::unique_ptr<BrightnessControlDelegate>(delegate)); |
| (...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1232 EXPECT_EQ(0, delegate->handle_brightness_up_count()); | 1233 EXPECT_EQ(0, delegate->handle_brightness_up_count()); |
| 1233 EXPECT_TRUE(ProcessInController(brightness_up)); | 1234 EXPECT_TRUE(ProcessInController(brightness_up)); |
| 1234 EXPECT_EQ(1, delegate->handle_brightness_up_count()); | 1235 EXPECT_EQ(1, delegate->handle_brightness_up_count()); |
| 1235 EXPECT_EQ(brightness_up, delegate->last_accelerator()); | 1236 EXPECT_EQ(brightness_up, delegate->last_accelerator()); |
| 1236 } | 1237 } |
| 1237 // Volume | 1238 // Volume |
| 1238 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); | 1239 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); |
| 1239 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, ui::EF_NONE); | 1240 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, ui::EF_NONE); |
| 1240 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, ui::EF_NONE); | 1241 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, ui::EF_NONE); |
| 1241 { | 1242 { |
| 1243 base::UserActionTester user_action_tester; |
| 1244 ui::AcceleratorHistory* history = GetController()->accelerator_history(); |
| 1245 |
| 1246 EXPECT_EQ(0, user_action_tester.GetActionCount("Accel_VolumeMute_F8")); |
| 1242 EXPECT_TRUE(ProcessInController(volume_mute)); | 1247 EXPECT_TRUE(ProcessInController(volume_mute)); |
| 1248 EXPECT_EQ(1, user_action_tester.GetActionCount("Accel_VolumeMute_F8")); |
| 1249 EXPECT_EQ(volume_mute, history->current_accelerator()); |
| 1250 |
| 1251 EXPECT_EQ(0, user_action_tester.GetActionCount("Accel_VolumeDown_F9")); |
| 1243 EXPECT_TRUE(ProcessInController(volume_down)); | 1252 EXPECT_TRUE(ProcessInController(volume_down)); |
| 1253 EXPECT_EQ(1, user_action_tester.GetActionCount("Accel_VolumeDown_F9")); |
| 1254 EXPECT_EQ(volume_down, history->current_accelerator()); |
| 1255 |
| 1256 EXPECT_EQ(0, user_action_tester.GetActionCount("Accel_VolumeUp_F10")); |
| 1244 EXPECT_TRUE(ProcessInController(volume_up)); | 1257 EXPECT_TRUE(ProcessInController(volume_up)); |
| 1245 TestVolumeControlDelegate* delegate = new TestVolumeControlDelegate; | 1258 EXPECT_EQ(volume_up, history->current_accelerator()); |
| 1246 WmShell::Get()->system_tray_delegate()->SetVolumeControlDelegate( | 1259 EXPECT_EQ(1, user_action_tester.GetActionCount("Accel_VolumeUp_F10")); |
| 1247 std::unique_ptr<VolumeControlDelegate>(delegate)); | |
| 1248 EXPECT_EQ(0, delegate->handle_volume_mute_count()); | |
| 1249 EXPECT_TRUE(ProcessInController(volume_mute)); | |
| 1250 EXPECT_EQ(1, delegate->handle_volume_mute_count()); | |
| 1251 EXPECT_EQ(volume_mute, delegate->last_accelerator()); | |
| 1252 EXPECT_EQ(0, delegate->handle_volume_down_count()); | |
| 1253 EXPECT_TRUE(ProcessInController(volume_down)); | |
| 1254 EXPECT_EQ(1, delegate->handle_volume_down_count()); | |
| 1255 EXPECT_EQ(volume_down, delegate->last_accelerator()); | |
| 1256 EXPECT_EQ(0, delegate->handle_volume_up_count()); | |
| 1257 EXPECT_TRUE(ProcessInController(volume_up)); | |
| 1258 EXPECT_EQ(1, delegate->handle_volume_up_count()); | |
| 1259 EXPECT_EQ(volume_up, delegate->last_accelerator()); | |
| 1260 } | 1260 } |
| 1261 } | 1261 } |
| 1262 #endif | 1262 #endif |
| 1263 | 1263 |
| 1264 // TODO: reenable. Disabled because shelf asynchronously created: | 1264 // TODO: reenable. Disabled because shelf asynchronously created: |
| 1265 // http://crbug.com/632192. | 1265 // http://crbug.com/632192. |
| 1266 TEST_F(AcceleratorControllerTest, DISABLED_DisallowedWithNoWindow) { | 1266 TEST_F(AcceleratorControllerTest, DISABLED_DisallowedWithNoWindow) { |
| 1267 AccessibilityDelegate* delegate = WmShell::Get()->accessibility_delegate(); | 1267 AccessibilityDelegate* delegate = WmShell::Get()->accessibility_delegate(); |
| 1268 | 1268 |
| 1269 for (size_t i = 0; i < kActionsNeedingWindowLength; ++i) { | 1269 for (size_t i = 0; i < kActionsNeedingWindowLength; ++i) { |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1402 EXPECT_TRUE(IsMessageCenterEmpty()); | 1402 EXPECT_TRUE(IsMessageCenterEmpty()); |
| 1403 | 1403 |
| 1404 // If the action is LOCK_SCREEN, we must reset the state by unlocking the | 1404 // If the action is LOCK_SCREEN, we must reset the state by unlocking the |
| 1405 // screen before we proceed testing the rest of accelerators. | 1405 // screen before we proceed testing the rest of accelerators. |
| 1406 ResetStateIfNeeded(); | 1406 ResetStateIfNeeded(); |
| 1407 } | 1407 } |
| 1408 } | 1408 } |
| 1409 #endif // defined(OS_CHROMEOS) | 1409 #endif // defined(OS_CHROMEOS) |
| 1410 | 1410 |
| 1411 } // namespace ash | 1411 } // namespace ash |
| OLD | NEW |