| 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/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/aura/wm_window_aura.h" | 8 #include "ash/aura/wm_window_aura.h" |
| 9 #include "ash/common/accessibility_delegate.h" | 9 #include "ash/common/accessibility_delegate.h" |
| 10 #include "ash/common/accessibility_types.h" | 10 #include "ash/common/accessibility_types.h" |
| (...skipping 819 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 830 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); | 830 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); |
| 831 EXPECT_TRUE(ProcessInController(ui::Accelerator( | 831 EXPECT_TRUE(ProcessInController(ui::Accelerator( |
| 832 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 832 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
| 833 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); | 833 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); |
| 834 } | 834 } |
| 835 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); | 835 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); |
| 836 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, ui::EF_NONE); | 836 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, ui::EF_NONE); |
| 837 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, ui::EF_NONE); | 837 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, ui::EF_NONE); |
| 838 { | 838 { |
| 839 TestVolumeControlDelegate* delegate = new TestVolumeControlDelegate; | 839 TestVolumeControlDelegate* delegate = new TestVolumeControlDelegate; |
| 840 ash::WmShell::Get()->system_tray_delegate()->SetVolumeControlDelegate( | 840 WmShell::Get()->system_tray_delegate()->SetVolumeControlDelegate( |
| 841 std::unique_ptr<VolumeControlDelegate>(delegate)); | 841 std::unique_ptr<VolumeControlDelegate>(delegate)); |
| 842 EXPECT_EQ(0, delegate->handle_volume_mute_count()); | 842 EXPECT_EQ(0, delegate->handle_volume_mute_count()); |
| 843 EXPECT_TRUE(ProcessInController(volume_mute)); | 843 EXPECT_TRUE(ProcessInController(volume_mute)); |
| 844 EXPECT_EQ(1, delegate->handle_volume_mute_count()); | 844 EXPECT_EQ(1, delegate->handle_volume_mute_count()); |
| 845 EXPECT_EQ(volume_mute, delegate->last_accelerator()); | 845 EXPECT_EQ(volume_mute, delegate->last_accelerator()); |
| 846 EXPECT_EQ(0, delegate->handle_volume_down_count()); | 846 EXPECT_EQ(0, delegate->handle_volume_down_count()); |
| 847 EXPECT_TRUE(ProcessInController(volume_down)); | 847 EXPECT_TRUE(ProcessInController(volume_down)); |
| 848 EXPECT_EQ(1, delegate->handle_volume_down_count()); | 848 EXPECT_EQ(1, delegate->handle_volume_down_count()); |
| 849 EXPECT_EQ(volume_down, delegate->last_accelerator()); | 849 EXPECT_EQ(volume_down, delegate->last_accelerator()); |
| 850 EXPECT_EQ(0, delegate->handle_volume_up_count()); | 850 EXPECT_EQ(0, delegate->handle_volume_up_count()); |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 939 // Lock screen | 939 // Lock screen |
| 940 // NOTE: Accelerators that do not work on the lock screen need to be | 940 // NOTE: Accelerators that do not work on the lock screen need to be |
| 941 // tested before the sequence below is invoked because it causes a side | 941 // tested before the sequence below is invoked because it causes a side |
| 942 // effect of locking the screen. | 942 // effect of locking the screen. |
| 943 EXPECT_TRUE(ProcessInController( | 943 EXPECT_TRUE(ProcessInController( |
| 944 ui::Accelerator(ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 944 ui::Accelerator(ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
| 945 #endif | 945 #endif |
| 946 } | 946 } |
| 947 | 947 |
| 948 TEST_F(AcceleratorControllerTest, GlobalAcceleratorsToggleAppList) { | 948 TEST_F(AcceleratorControllerTest, GlobalAcceleratorsToggleAppList) { |
| 949 AccessibilityDelegate* delegate = | 949 AccessibilityDelegate* delegate = WmShell::Get()->GetAccessibilityDelegate(); |
| 950 ash::Shell::GetInstance()->accessibility_delegate(); | 950 EXPECT_FALSE(Shell::GetInstance()->GetAppListTargetVisibility()); |
| 951 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | |
| 952 | 951 |
| 953 // The press event should not open the AppList, the release should instead. | 952 // The press event should not open the AppList, the release should instead. |
| 954 EXPECT_FALSE( | 953 EXPECT_FALSE( |
| 955 ProcessInController(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 954 ProcessInController(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
| 956 EXPECT_EQ(ui::VKEY_LWIN, GetCurrentAccelerator().key_code()); | 955 EXPECT_EQ(ui::VKEY_LWIN, GetCurrentAccelerator().key_code()); |
| 957 | 956 |
| 958 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 957 EXPECT_FALSE(Shell::GetInstance()->GetAppListTargetVisibility()); |
| 959 | 958 |
| 960 EXPECT_TRUE( | 959 EXPECT_TRUE( |
| 961 ProcessInController(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 960 ProcessInController(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
| 962 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 961 EXPECT_TRUE(Shell::GetInstance()->GetAppListTargetVisibility()); |
| 963 | 962 |
| 964 EXPECT_EQ(ui::VKEY_LWIN, GetPreviousAccelerator().key_code()); | 963 EXPECT_EQ(ui::VKEY_LWIN, GetPreviousAccelerator().key_code()); |
| 965 | 964 |
| 966 // When spoken feedback is on, the AppList should not toggle. | 965 // When spoken feedback is on, the AppList should not toggle. |
| 967 delegate->ToggleSpokenFeedback(A11Y_NOTIFICATION_NONE); | 966 delegate->ToggleSpokenFeedback(A11Y_NOTIFICATION_NONE); |
| 968 EXPECT_FALSE( | 967 EXPECT_FALSE( |
| 969 ProcessInController(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 968 ProcessInController(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
| 970 EXPECT_FALSE( | 969 EXPECT_FALSE( |
| 971 ProcessInController(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 970 ProcessInController(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
| 972 delegate->ToggleSpokenFeedback(A11Y_NOTIFICATION_NONE); | 971 delegate->ToggleSpokenFeedback(A11Y_NOTIFICATION_NONE); |
| 973 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 972 EXPECT_TRUE(Shell::GetInstance()->GetAppListTargetVisibility()); |
| 974 | 973 |
| 975 EXPECT_FALSE( | 974 EXPECT_FALSE( |
| 976 ProcessInController(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 975 ProcessInController(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
| 977 EXPECT_TRUE( | 976 EXPECT_TRUE( |
| 978 ProcessInController(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 977 ProcessInController(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
| 979 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 978 EXPECT_FALSE(Shell::GetInstance()->GetAppListTargetVisibility()); |
| 980 | 979 |
| 981 // When spoken feedback is on, the AppList should not toggle. | 980 // When spoken feedback is on, the AppList should not toggle. |
| 982 delegate->ToggleSpokenFeedback(A11Y_NOTIFICATION_NONE); | 981 delegate->ToggleSpokenFeedback(A11Y_NOTIFICATION_NONE); |
| 983 EXPECT_FALSE( | 982 EXPECT_FALSE( |
| 984 ProcessInController(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 983 ProcessInController(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
| 985 EXPECT_FALSE( | 984 EXPECT_FALSE( |
| 986 ProcessInController(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 985 ProcessInController(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
| 987 delegate->ToggleSpokenFeedback(A11Y_NOTIFICATION_NONE); | 986 delegate->ToggleSpokenFeedback(A11Y_NOTIFICATION_NONE); |
| 988 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 987 EXPECT_FALSE(Shell::GetInstance()->GetAppListTargetVisibility()); |
| 989 | 988 |
| 990 #if defined(OS_CHROMEOS) | 989 #if defined(OS_CHROMEOS) |
| 991 // The press of VKEY_BROWSER_SEARCH should toggle the AppList | 990 // The press of VKEY_BROWSER_SEARCH should toggle the AppList |
| 992 EXPECT_TRUE(ProcessInController( | 991 EXPECT_TRUE(ProcessInController( |
| 993 ui::Accelerator(ui::VKEY_BROWSER_SEARCH, ui::EF_NONE))); | 992 ui::Accelerator(ui::VKEY_BROWSER_SEARCH, ui::EF_NONE))); |
| 994 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 993 EXPECT_TRUE(Shell::GetInstance()->GetAppListTargetVisibility()); |
| 995 EXPECT_FALSE(ProcessInController( | 994 EXPECT_FALSE(ProcessInController( |
| 996 ReleaseAccelerator(ui::VKEY_BROWSER_SEARCH, ui::EF_NONE))); | 995 ReleaseAccelerator(ui::VKEY_BROWSER_SEARCH, ui::EF_NONE))); |
| 997 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 996 EXPECT_TRUE(Shell::GetInstance()->GetAppListTargetVisibility()); |
| 998 #endif | 997 #endif |
| 999 } | 998 } |
| 1000 | 999 |
| 1001 TEST_F(AcceleratorControllerTest, ImeGlobalAccelerators) { | 1000 TEST_F(AcceleratorControllerTest, ImeGlobalAccelerators) { |
| 1002 // Test IME shortcuts. | 1001 // Test IME shortcuts. |
| 1003 ui::Accelerator control_space_down(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); | 1002 ui::Accelerator control_space_down(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); |
| 1004 control_space_down.set_type(ui::ET_KEY_PRESSED); | 1003 control_space_down.set_type(ui::ET_KEY_PRESSED); |
| 1005 ui::Accelerator control_space_up(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); | 1004 ui::Accelerator control_space_up(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); |
| 1006 control_space_up.set_type(ui::ET_KEY_RELEASED); | 1005 control_space_up.set_type(ui::ET_KEY_RELEASED); |
| 1007 const ui::Accelerator convert(ui::VKEY_CONVERT, ui::EF_NONE); | 1006 const ui::Accelerator convert(ui::VKEY_CONVERT, ui::EF_NONE); |
| (...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1251 } | 1250 } |
| 1252 // Volume | 1251 // Volume |
| 1253 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); | 1252 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); |
| 1254 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, ui::EF_NONE); | 1253 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, ui::EF_NONE); |
| 1255 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, ui::EF_NONE); | 1254 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, ui::EF_NONE); |
| 1256 { | 1255 { |
| 1257 EXPECT_TRUE(ProcessInController(volume_mute)); | 1256 EXPECT_TRUE(ProcessInController(volume_mute)); |
| 1258 EXPECT_TRUE(ProcessInController(volume_down)); | 1257 EXPECT_TRUE(ProcessInController(volume_down)); |
| 1259 EXPECT_TRUE(ProcessInController(volume_up)); | 1258 EXPECT_TRUE(ProcessInController(volume_up)); |
| 1260 TestVolumeControlDelegate* delegate = new TestVolumeControlDelegate; | 1259 TestVolumeControlDelegate* delegate = new TestVolumeControlDelegate; |
| 1261 ash::WmShell::Get()->system_tray_delegate()->SetVolumeControlDelegate( | 1260 WmShell::Get()->system_tray_delegate()->SetVolumeControlDelegate( |
| 1262 std::unique_ptr<VolumeControlDelegate>(delegate)); | 1261 std::unique_ptr<VolumeControlDelegate>(delegate)); |
| 1263 EXPECT_EQ(0, delegate->handle_volume_mute_count()); | 1262 EXPECT_EQ(0, delegate->handle_volume_mute_count()); |
| 1264 EXPECT_TRUE(ProcessInController(volume_mute)); | 1263 EXPECT_TRUE(ProcessInController(volume_mute)); |
| 1265 EXPECT_EQ(1, delegate->handle_volume_mute_count()); | 1264 EXPECT_EQ(1, delegate->handle_volume_mute_count()); |
| 1266 EXPECT_EQ(volume_mute, delegate->last_accelerator()); | 1265 EXPECT_EQ(volume_mute, delegate->last_accelerator()); |
| 1267 EXPECT_EQ(0, delegate->handle_volume_down_count()); | 1266 EXPECT_EQ(0, delegate->handle_volume_down_count()); |
| 1268 EXPECT_TRUE(ProcessInController(volume_down)); | 1267 EXPECT_TRUE(ProcessInController(volume_down)); |
| 1269 EXPECT_EQ(1, delegate->handle_volume_down_count()); | 1268 EXPECT_EQ(1, delegate->handle_volume_down_count()); |
| 1270 EXPECT_EQ(volume_down, delegate->last_accelerator()); | 1269 EXPECT_EQ(volume_down, delegate->last_accelerator()); |
| 1271 EXPECT_EQ(0, delegate->handle_volume_up_count()); | 1270 EXPECT_EQ(0, delegate->handle_volume_up_count()); |
| 1272 EXPECT_TRUE(ProcessInController(volume_up)); | 1271 EXPECT_TRUE(ProcessInController(volume_up)); |
| 1273 EXPECT_EQ(1, delegate->handle_volume_up_count()); | 1272 EXPECT_EQ(1, delegate->handle_volume_up_count()); |
| 1274 EXPECT_EQ(volume_up, delegate->last_accelerator()); | 1273 EXPECT_EQ(volume_up, delegate->last_accelerator()); |
| 1275 } | 1274 } |
| 1276 } | 1275 } |
| 1277 #endif | 1276 #endif |
| 1278 | 1277 |
| 1279 TEST_F(AcceleratorControllerTest, DisallowedWithNoWindow) { | 1278 TEST_F(AcceleratorControllerTest, DisallowedWithNoWindow) { |
| 1280 AccessibilityDelegate* delegate = | 1279 AccessibilityDelegate* delegate = WmShell::Get()->GetAccessibilityDelegate(); |
| 1281 ash::Shell::GetInstance()->accessibility_delegate(); | |
| 1282 | 1280 |
| 1283 for (size_t i = 0; i < kActionsNeedingWindowLength; ++i) { | 1281 for (size_t i = 0; i < kActionsNeedingWindowLength; ++i) { |
| 1284 delegate->TriggerAccessibilityAlert(A11Y_ALERT_NONE); | 1282 delegate->TriggerAccessibilityAlert(A11Y_ALERT_NONE); |
| 1285 EXPECT_TRUE( | 1283 EXPECT_TRUE( |
| 1286 GetController()->PerformActionIfEnabled(kActionsNeedingWindow[i])); | 1284 GetController()->PerformActionIfEnabled(kActionsNeedingWindow[i])); |
| 1287 EXPECT_EQ(delegate->GetLastAccessibilityAlert(), A11Y_ALERT_WINDOW_NEEDED); | 1285 EXPECT_EQ(delegate->GetLastAccessibilityAlert(), A11Y_ALERT_WINDOW_NEEDED); |
| 1288 } | 1286 } |
| 1289 | 1287 |
| 1290 // Make sure we don't alert if we do have a window. | 1288 // Make sure we don't alert if we do have a window. |
| 1291 std::unique_ptr<aura::Window> window; | 1289 std::unique_ptr<aura::Window> window; |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1407 EXPECT_TRUE(IsMessageCenterEmpty()); | 1405 EXPECT_TRUE(IsMessageCenterEmpty()); |
| 1408 | 1406 |
| 1409 // If the action is LOCK_SCREEN, we must reset the state by unlocking the | 1407 // If the action is LOCK_SCREEN, we must reset the state by unlocking the |
| 1410 // screen before we proceed testing the rest of accelerators. | 1408 // screen before we proceed testing the rest of accelerators. |
| 1411 ResetStateIfNeeded(); | 1409 ResetStateIfNeeded(); |
| 1412 } | 1410 } |
| 1413 } | 1411 } |
| 1414 #endif // defined(OS_CHROMEOS) | 1412 #endif // defined(OS_CHROMEOS) |
| 1415 | 1413 |
| 1416 } // namespace ash | 1414 } // namespace ash |
| OLD | NEW |