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/accessibility_delegate.h" | 8 #include "ash/accessibility_delegate.h" |
9 #include "ash/ash_switches.h" | 9 #include "ash/ash_switches.h" |
10 #include "ash/display/display_manager.h" | 10 #include "ash/display/display_manager.h" |
(...skipping 1036 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1047 const ui::Accelerator hangul(ui::VKEY_HANGUL, ui::EF_NONE); | 1047 const ui::Accelerator hangul(ui::VKEY_HANGUL, ui::EF_NONE); |
1048 EXPECT_FALSE(ProcessInController(control_space_down)); | 1048 EXPECT_FALSE(ProcessInController(control_space_down)); |
1049 EXPECT_FALSE(ProcessInController(control_space_up)); | 1049 EXPECT_FALSE(ProcessInController(control_space_up)); |
1050 EXPECT_FALSE(ProcessInController(convert)); | 1050 EXPECT_FALSE(ProcessInController(convert)); |
1051 EXPECT_FALSE(ProcessInController(non_convert)); | 1051 EXPECT_FALSE(ProcessInController(non_convert)); |
1052 EXPECT_FALSE(ProcessInController(wide_half_1)); | 1052 EXPECT_FALSE(ProcessInController(wide_half_1)); |
1053 EXPECT_FALSE(ProcessInController(wide_half_2)); | 1053 EXPECT_FALSE(ProcessInController(wide_half_2)); |
1054 EXPECT_FALSE(ProcessInController(hangul)); | 1054 EXPECT_FALSE(ProcessInController(hangul)); |
1055 DummyImeControlDelegate* delegate = new DummyImeControlDelegate; | 1055 DummyImeControlDelegate* delegate = new DummyImeControlDelegate; |
1056 GetController()->SetImeControlDelegate( | 1056 GetController()->SetImeControlDelegate( |
1057 scoped_ptr<ImeControlDelegate>(delegate).Pass()); | 1057 scoped_ptr<ImeControlDelegate>(delegate)); |
1058 EXPECT_EQ(0, delegate->handle_previous_ime_count()); | 1058 EXPECT_EQ(0, delegate->handle_previous_ime_count()); |
1059 EXPECT_TRUE(ProcessInController(control_space_down)); | 1059 EXPECT_TRUE(ProcessInController(control_space_down)); |
1060 EXPECT_EQ(1, delegate->handle_previous_ime_count()); | 1060 EXPECT_EQ(1, delegate->handle_previous_ime_count()); |
1061 EXPECT_TRUE(ProcessInController(control_space_up)); | 1061 EXPECT_TRUE(ProcessInController(control_space_up)); |
1062 EXPECT_EQ(1, delegate->handle_previous_ime_count()); | 1062 EXPECT_EQ(1, delegate->handle_previous_ime_count()); |
1063 EXPECT_EQ(0, delegate->handle_switch_ime_count()); | 1063 EXPECT_EQ(0, delegate->handle_switch_ime_count()); |
1064 EXPECT_TRUE(ProcessInController(convert)); | 1064 EXPECT_TRUE(ProcessInController(convert)); |
1065 EXPECT_EQ(1, delegate->handle_switch_ime_count()); | 1065 EXPECT_EQ(1, delegate->handle_switch_ime_count()); |
1066 EXPECT_TRUE(ProcessInController(non_convert)); | 1066 EXPECT_TRUE(ProcessInController(non_convert)); |
1067 EXPECT_EQ(2, delegate->handle_switch_ime_count()); | 1067 EXPECT_EQ(2, delegate->handle_switch_ime_count()); |
1068 EXPECT_TRUE(ProcessInController(wide_half_1)); | 1068 EXPECT_TRUE(ProcessInController(wide_half_1)); |
1069 EXPECT_EQ(3, delegate->handle_switch_ime_count()); | 1069 EXPECT_EQ(3, delegate->handle_switch_ime_count()); |
1070 EXPECT_TRUE(ProcessInController(wide_half_2)); | 1070 EXPECT_TRUE(ProcessInController(wide_half_2)); |
1071 EXPECT_EQ(4, delegate->handle_switch_ime_count()); | 1071 EXPECT_EQ(4, delegate->handle_switch_ime_count()); |
1072 EXPECT_TRUE(ProcessInController(hangul)); | 1072 EXPECT_TRUE(ProcessInController(hangul)); |
1073 EXPECT_EQ(5, delegate->handle_switch_ime_count()); | 1073 EXPECT_EQ(5, delegate->handle_switch_ime_count()); |
1074 } | 1074 } |
1075 | 1075 |
1076 // Test IME shortcuts that are triggered on key release. | 1076 // Test IME shortcuts that are triggered on key release. |
1077 { | 1077 { |
1078 const ui::Accelerator shift_alt_press(ui::VKEY_MENU, | 1078 const ui::Accelerator shift_alt_press(ui::VKEY_MENU, |
1079 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1079 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1080 const ReleaseAccelerator shift_alt(ui::VKEY_MENU, ui::EF_SHIFT_DOWN); | 1080 const ReleaseAccelerator shift_alt(ui::VKEY_MENU, ui::EF_SHIFT_DOWN); |
1081 const ui::Accelerator alt_shift_press(ui::VKEY_SHIFT, | 1081 const ui::Accelerator alt_shift_press(ui::VKEY_SHIFT, |
1082 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1082 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1083 const ReleaseAccelerator alt_shift(ui::VKEY_SHIFT, ui::EF_ALT_DOWN); | 1083 const ReleaseAccelerator alt_shift(ui::VKEY_SHIFT, ui::EF_ALT_DOWN); |
1084 | 1084 |
1085 DummyImeControlDelegate* delegate = new DummyImeControlDelegate; | 1085 DummyImeControlDelegate* delegate = new DummyImeControlDelegate; |
1086 GetController()->SetImeControlDelegate( | 1086 GetController()->SetImeControlDelegate( |
1087 scoped_ptr<ImeControlDelegate>(delegate).Pass()); | 1087 scoped_ptr<ImeControlDelegate>(delegate)); |
1088 EXPECT_EQ(0, delegate->handle_next_ime_count()); | 1088 EXPECT_EQ(0, delegate->handle_next_ime_count()); |
1089 EXPECT_FALSE(ProcessInController(shift_alt_press)); | 1089 EXPECT_FALSE(ProcessInController(shift_alt_press)); |
1090 EXPECT_TRUE(ProcessInController(shift_alt)); | 1090 EXPECT_TRUE(ProcessInController(shift_alt)); |
1091 EXPECT_EQ(1, delegate->handle_next_ime_count()); | 1091 EXPECT_EQ(1, delegate->handle_next_ime_count()); |
1092 EXPECT_FALSE(ProcessInController(alt_shift_press)); | 1092 EXPECT_FALSE(ProcessInController(alt_shift_press)); |
1093 EXPECT_TRUE(ProcessInController(alt_shift)); | 1093 EXPECT_TRUE(ProcessInController(alt_shift)); |
1094 EXPECT_EQ(2, delegate->handle_next_ime_count()); | 1094 EXPECT_EQ(2, delegate->handle_next_ime_count()); |
1095 | 1095 |
1096 // We should NOT switch IME when e.g. Shift+Alt+X is pressed and X is | 1096 // We should NOT switch IME when e.g. Shift+Alt+X is pressed and X is |
1097 // released. | 1097 // released. |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1185 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1185 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1186 EXPECT_FALSE(ProcessInController(shift_alt_space_press)); | 1186 EXPECT_FALSE(ProcessInController(shift_alt_space_press)); |
1187 } | 1187 } |
1188 | 1188 |
1189 // Makes sure that the next IME accelerators doesn't conflict with other | 1189 // Makes sure that the next IME accelerators doesn't conflict with other |
1190 // accelerators that contain Alt+Shift when the wrong sequence is pressed. | 1190 // accelerators that contain Alt+Shift when the wrong sequence is pressed. |
1191 // crbug.com/527154. | 1191 // crbug.com/527154. |
1192 TEST_F(AcceleratorControllerTest, ImeGlobalAcceleratorsNoConflict) { | 1192 TEST_F(AcceleratorControllerTest, ImeGlobalAcceleratorsNoConflict) { |
1193 DummyImeControlDelegate* delegate = new DummyImeControlDelegate; | 1193 DummyImeControlDelegate* delegate = new DummyImeControlDelegate; |
1194 GetController()->SetImeControlDelegate( | 1194 GetController()->SetImeControlDelegate( |
1195 scoped_ptr<ImeControlDelegate>(delegate).Pass()); | 1195 scoped_ptr<ImeControlDelegate>(delegate)); |
1196 ui::test::EventGenerator& generator = GetEventGenerator(); | 1196 ui::test::EventGenerator& generator = GetEventGenerator(); |
1197 | 1197 |
1198 // Correct sequence of a conflicting accelerator must not trigger next IME. | 1198 // Correct sequence of a conflicting accelerator must not trigger next IME. |
1199 // Alt (press) + Shift (press) + S (press) + S (release) + Shift (release) + | 1199 // Alt (press) + Shift (press) + S (press) + S (release) + Shift (release) + |
1200 // Alt (release). | 1200 // Alt (release). |
1201 generator.PressKey(ui::VKEY_MENU, ui::EF_ALT_DOWN); | 1201 generator.PressKey(ui::VKEY_MENU, ui::EF_ALT_DOWN); |
1202 generator.PressKey(ui::VKEY_SHIFT, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1202 generator.PressKey(ui::VKEY_SHIFT, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1203 generator.PressKey(ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1203 generator.PressKey(ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1204 generator.ReleaseKey(ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1204 generator.ReleaseKey(ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1205 generator.ReleaseKey(ui::VKEY_SHIFT, ui::EF_ALT_DOWN); | 1205 generator.ReleaseKey(ui::VKEY_SHIFT, ui::EF_ALT_DOWN); |
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1578 EXPECT_TRUE(IsMessageCenterEmpty()); | 1578 EXPECT_TRUE(IsMessageCenterEmpty()); |
1579 | 1579 |
1580 // If the action is LOCK_SCREEN, we must reset the state by unlocking the | 1580 // If the action is LOCK_SCREEN, we must reset the state by unlocking the |
1581 // screen before we proceed testing the rest of accelerators. | 1581 // screen before we proceed testing the rest of accelerators. |
1582 ResetStateIfNeeded(); | 1582 ResetStateIfNeeded(); |
1583 } | 1583 } |
1584 } | 1584 } |
1585 #endif // defined(OS_CHROMEOS) | 1585 #endif // defined(OS_CHROMEOS) |
1586 | 1586 |
1587 } // namespace ash | 1587 } // namespace ash |
OLD | NEW |