| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/chromeos/events/event_rewriter.h" | 5 #include "chrome/browser/chromeos/events/event_rewriter.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "ash/shell.h" | 9 #include "ash/shell.h" |
| 10 #include "ash/sticky_keys/sticky_keys_controller.h" | 10 #include "ash/sticky_keys/sticky_keys_controller.h" |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 | 182 |
| 183 // VKEY_A, Alt+Win modifier. | 183 // VKEY_A, Alt+Win modifier. |
| 184 {ui::ET_KEY_PRESSED, | 184 {ui::ET_KEY_PRESSED, |
| 185 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, | 185 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
| 186 ui::DomKey::UNIDENTIFIED}, | 186 ui::DomKey::UNIDENTIFIED}, |
| 187 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, | 187 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
| 188 ui::DomKey::UNIDENTIFIED}}, | 188 ui::DomKey::UNIDENTIFIED}}, |
| 189 | 189 |
| 190 // VKEY_LWIN (left Windows key), Alt modifier. | 190 // VKEY_LWIN (left Windows key), Alt modifier. |
| 191 {ui::ET_KEY_PRESSED, | 191 {ui::ET_KEY_PRESSED, |
| 192 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, | 192 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, |
| 193 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::META}, | 193 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::META}, |
| 194 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, | 194 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, |
| 195 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::META}}, | 195 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::META}}, |
| 196 | 196 |
| 197 // VKEY_RWIN (right Windows key), Alt modifier. | 197 // VKEY_RWIN (right Windows key), Alt modifier. |
| 198 {ui::ET_KEY_PRESSED, | 198 {ui::ET_KEY_PRESSED, |
| 199 {ui::VKEY_RWIN, ui::DomCode::OS_RIGHT, | 199 {ui::VKEY_RWIN, ui::DomCode::META_RIGHT, |
| 200 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::META}, | 200 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::META}, |
| 201 {ui::VKEY_RWIN, ui::DomCode::OS_RIGHT, | 201 {ui::VKEY_RWIN, ui::DomCode::META_RIGHT, |
| 202 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::META}}, | 202 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::META}}, |
| 203 }; | 203 }; |
| 204 | 204 |
| 205 for (const auto& test : pc_keyboard_tests) { | 205 for (const auto& test : pc_keyboard_tests) { |
| 206 CheckKeyTestCase(&rewriter, test); | 206 CheckKeyTestCase(&rewriter, test); |
| 207 } | 207 } |
| 208 | 208 |
| 209 // An Apple keyboard reusing the ID, zero. | 209 // An Apple keyboard reusing the ID, zero. |
| 210 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "Apple Keyboard"); | 210 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "Apple Keyboard"); |
| 211 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId); | 211 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 227 | 227 |
| 228 // VKEY_A, Alt+Win modifier. | 228 // VKEY_A, Alt+Win modifier. |
| 229 {ui::ET_KEY_PRESSED, | 229 {ui::ET_KEY_PRESSED, |
| 230 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, | 230 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
| 231 ui::DomKey::UNIDENTIFIED}, | 231 ui::DomKey::UNIDENTIFIED}, |
| 232 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, | 232 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, |
| 233 ui::DomKey::Constant<'a'>::Character}}, | 233 ui::DomKey::Constant<'a'>::Character}}, |
| 234 | 234 |
| 235 // VKEY_LWIN (left Windows key), Alt modifier. | 235 // VKEY_LWIN (left Windows key), Alt modifier. |
| 236 {ui::ET_KEY_PRESSED, | 236 {ui::ET_KEY_PRESSED, |
| 237 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, | 237 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, |
| 238 ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, ui::DomKey::META}, | 238 ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, ui::DomKey::META}, |
| 239 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, | 239 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
| 240 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ui::DomKey::CONTROL}}, | 240 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ui::DomKey::CONTROL}}, |
| 241 | 241 |
| 242 // VKEY_RWIN (right Windows key), Alt modifier. | 242 // VKEY_RWIN (right Windows key), Alt modifier. |
| 243 {ui::ET_KEY_PRESSED, | 243 {ui::ET_KEY_PRESSED, |
| 244 {ui::VKEY_RWIN, ui::DomCode::OS_RIGHT, | 244 {ui::VKEY_RWIN, ui::DomCode::META_RIGHT, |
| 245 ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, ui::DomKey::META}, | 245 ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, ui::DomKey::META}, |
| 246 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_RIGHT, | 246 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_RIGHT, |
| 247 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ui::DomKey::CONTROL}}, | 247 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ui::DomKey::CONTROL}}, |
| 248 }; | 248 }; |
| 249 | 249 |
| 250 for (const auto& test : apple_keyboard_tests) { | 250 for (const auto& test : apple_keyboard_tests) { |
| 251 CheckKeyTestCase(&rewriter, test); | 251 CheckKeyTestCase(&rewriter, test); |
| 252 } | 252 } |
| 253 } | 253 } |
| 254 | 254 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 280 } | 280 } |
| 281 | 281 |
| 282 // An Apple keyboard reusing the ID, zero. | 282 // An Apple keyboard reusing the ID, zero. |
| 283 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "Apple Keyboard"); | 283 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "Apple Keyboard"); |
| 284 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId); | 284 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId); |
| 285 | 285 |
| 286 KeyTestCase apple_keyboard_tests[] = { | 286 KeyTestCase apple_keyboard_tests[] = { |
| 287 // VKEY_LWIN (left Command key) with Alt modifier. The remapped Command | 287 // VKEY_LWIN (left Command key) with Alt modifier. The remapped Command |
| 288 // key should never be re-remapped to Alt. | 288 // key should never be re-remapped to Alt. |
| 289 {ui::ET_KEY_PRESSED, | 289 {ui::ET_KEY_PRESSED, |
| 290 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, | 290 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, |
| 291 ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, ui::DomKey::META}, | 291 ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, ui::DomKey::META}, |
| 292 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, | 292 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
| 293 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ui::DomKey::CONTROL}}, | 293 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ui::DomKey::CONTROL}}, |
| 294 | 294 |
| 295 // VKEY_RWIN (right Command key) with Alt modifier. The remapped Command | 295 // VKEY_RWIN (right Command key) with Alt modifier. The remapped Command |
| 296 // key should never be re-remapped to Alt. | 296 // key should never be re-remapped to Alt. |
| 297 {ui::ET_KEY_PRESSED, | 297 {ui::ET_KEY_PRESSED, |
| 298 {ui::VKEY_RWIN, ui::DomCode::OS_RIGHT, | 298 {ui::VKEY_RWIN, ui::DomCode::META_RIGHT, |
| 299 ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, ui::DomKey::META}, | 299 ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, ui::DomKey::META}, |
| 300 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_RIGHT, | 300 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_RIGHT, |
| 301 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ui::DomKey::CONTROL}}, | 301 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ui::DomKey::CONTROL}}, |
| 302 }; | 302 }; |
| 303 | 303 |
| 304 for (const auto& test : apple_keyboard_tests) { | 304 for (const auto& test : apple_keyboard_tests) { |
| 305 CheckKeyTestCase(&rewriter, test); | 305 CheckKeyTestCase(&rewriter, test); |
| 306 } | 306 } |
| 307 } | 307 } |
| 308 | 308 |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 545 | 545 |
| 546 TEST_F(EventRewriterTest, TestRewriteModifiersNoRemap) { | 546 TEST_F(EventRewriterTest, TestRewriteModifiersNoRemap) { |
| 547 syncable_prefs::TestingPrefServiceSyncable prefs; | 547 syncable_prefs::TestingPrefServiceSyncable prefs; |
| 548 EventRewriter rewriter(NULL); | 548 EventRewriter rewriter(NULL); |
| 549 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); | 549 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); |
| 550 rewriter.set_pref_service_for_testing(&prefs); | 550 rewriter.set_pref_service_for_testing(&prefs); |
| 551 | 551 |
| 552 KeyTestCase tests[] = { | 552 KeyTestCase tests[] = { |
| 553 // Press Search. Confirm the event is not rewritten. | 553 // Press Search. Confirm the event is not rewritten. |
| 554 {ui::ET_KEY_PRESSED, | 554 {ui::ET_KEY_PRESSED, |
| 555 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_NONE, ui::DomKey::META}, | 555 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_NONE, ui::DomKey::META}, |
| 556 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_COMMAND_DOWN, | 556 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_COMMAND_DOWN, |
| 557 ui::DomKey::META}}, | 557 ui::DomKey::META}}, |
| 558 | 558 |
| 559 // Press left Control. Confirm the event is not rewritten. | 559 // Press left Control. Confirm the event is not rewritten. |
| 560 {ui::ET_KEY_PRESSED, | 560 {ui::ET_KEY_PRESSED, |
| 561 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN, | 561 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN, |
| 562 ui::DomKey::CONTROL}, | 562 ui::DomKey::CONTROL}, |
| 563 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN, | 563 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN, |
| 564 ui::DomKey::CONTROL}}, | 564 ui::DomKey::CONTROL}}, |
| 565 | 565 |
| 566 // Press right Control. Confirm the event is not rewritten. | 566 // Press right Control. Confirm the event is not rewritten. |
| (...skipping 11 matching lines...) Expand all Loading... |
| 578 | 578 |
| 579 // Press right Alt. Confirm the event is not rewritten. | 579 // Press right Alt. Confirm the event is not rewritten. |
| 580 {ui::ET_KEY_PRESSED, | 580 {ui::ET_KEY_PRESSED, |
| 581 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, ui::EF_ALT_DOWN, ui::DomKey::ALT}, | 581 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, ui::EF_ALT_DOWN, ui::DomKey::ALT}, |
| 582 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, ui::EF_ALT_DOWN, | 582 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, ui::EF_ALT_DOWN, |
| 583 ui::DomKey::ALT}}, | 583 ui::DomKey::ALT}}, |
| 584 | 584 |
| 585 // Test KeyRelease event, just in case. | 585 // Test KeyRelease event, just in case. |
| 586 // Release Search. Confirm the release event is not rewritten. | 586 // Release Search. Confirm the release event is not rewritten. |
| 587 {ui::ET_KEY_RELEASED, | 587 {ui::ET_KEY_RELEASED, |
| 588 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_NONE, ui::DomKey::META}, | 588 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_NONE, ui::DomKey::META}, |
| 589 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_NONE, ui::DomKey::META}}, | 589 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_NONE, ui::DomKey::META}}, |
| 590 }; | 590 }; |
| 591 | 591 |
| 592 for (const auto& test : tests) { | 592 for (const auto& test : tests) { |
| 593 CheckKeyTestCase(&rewriter, test); | 593 CheckKeyTestCase(&rewriter, test); |
| 594 } | 594 } |
| 595 } | 595 } |
| 596 | 596 |
| 597 TEST_F(EventRewriterTest, TestRewriteModifiersNoRemapMultipleKeys) { | 597 TEST_F(EventRewriterTest, TestRewriteModifiersNoRemapMultipleKeys) { |
| 598 syncable_prefs::TestingPrefServiceSyncable prefs; | 598 syncable_prefs::TestingPrefServiceSyncable prefs; |
| 599 EventRewriter rewriter(NULL); | 599 EventRewriter rewriter(NULL); |
| 600 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); | 600 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); |
| 601 rewriter.set_pref_service_for_testing(&prefs); | 601 rewriter.set_pref_service_for_testing(&prefs); |
| 602 | 602 |
| 603 KeyTestCase tests[] = { | 603 KeyTestCase tests[] = { |
| 604 // Press Alt with Shift. Confirm the event is not rewritten. | 604 // Press Alt with Shift. Confirm the event is not rewritten. |
| 605 {ui::ET_KEY_PRESSED, | 605 {ui::ET_KEY_PRESSED, |
| 606 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, | 606 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, |
| 607 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, ui::DomKey::ALT}, | 607 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, ui::DomKey::ALT}, |
| 608 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, | 608 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, |
| 609 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, ui::DomKey::ALT}}, | 609 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, ui::DomKey::ALT}}, |
| 610 | 610 |
| 611 // Press Search with Caps Lock mask. Confirm the event is not rewritten. | 611 // Press Search with Caps Lock mask. Confirm the event is not rewritten. |
| 612 {ui::ET_KEY_PRESSED, | 612 {ui::ET_KEY_PRESSED, |
| 613 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, | 613 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, |
| 614 ui::EF_CAPS_LOCK_ON | ui::EF_COMMAND_DOWN, ui::DomKey::META}, | 614 ui::EF_CAPS_LOCK_ON | ui::EF_COMMAND_DOWN, ui::DomKey::META}, |
| 615 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, | 615 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, |
| 616 ui::EF_CAPS_LOCK_ON | ui::EF_COMMAND_DOWN, ui::DomKey::META}}, | 616 ui::EF_CAPS_LOCK_ON | ui::EF_COMMAND_DOWN, ui::DomKey::META}}, |
| 617 | 617 |
| 618 // Release Search with Caps Lock mask. Confirm the event is not rewritten. | 618 // Release Search with Caps Lock mask. Confirm the event is not rewritten. |
| 619 {ui::ET_KEY_RELEASED, | 619 {ui::ET_KEY_RELEASED, |
| 620 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_CAPS_LOCK_ON, | 620 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_CAPS_LOCK_ON, |
| 621 ui::DomKey::META}, | 621 ui::DomKey::META}, |
| 622 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_CAPS_LOCK_ON, | 622 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_CAPS_LOCK_ON, |
| 623 ui::DomKey::META}}, | 623 ui::DomKey::META}}, |
| 624 | 624 |
| 625 // Press Shift+Ctrl+Alt+Search+A. Confirm the event is not rewritten. | 625 // Press Shift+Ctrl+Alt+Search+A. Confirm the event is not rewritten. |
| 626 {ui::ET_KEY_PRESSED, | 626 {ui::ET_KEY_PRESSED, |
| 627 {ui::VKEY_B, ui::DomCode::US_B, | 627 {ui::VKEY_B, ui::DomCode::US_B, |
| 628 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | | 628 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
| 629 ui::EF_COMMAND_DOWN, | 629 ui::EF_COMMAND_DOWN, |
| 630 ui::DomKey::Constant<'B'>::Character}, | 630 ui::DomKey::Constant<'B'>::Character}, |
| 631 {ui::VKEY_B, ui::DomCode::US_B, | 631 {ui::VKEY_B, ui::DomCode::US_B, |
| 632 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | | 632 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
| (...skipping 25 matching lines...) Expand all Loading... |
| 658 // Press Alt with Shift. This key press shouldn't be affected by the | 658 // Press Alt with Shift. This key press shouldn't be affected by the |
| 659 // pref. Confirm the event is not rewritten. | 659 // pref. Confirm the event is not rewritten. |
| 660 {ui::ET_KEY_PRESSED, | 660 {ui::ET_KEY_PRESSED, |
| 661 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, | 661 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, |
| 662 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, ui::DomKey::ALT}, | 662 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, ui::DomKey::ALT}, |
| 663 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, | 663 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, |
| 664 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, ui::DomKey::ALT}}, | 664 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, ui::DomKey::ALT}}, |
| 665 | 665 |
| 666 // Press Search. Confirm the event is now VKEY_UNKNOWN. | 666 // Press Search. Confirm the event is now VKEY_UNKNOWN. |
| 667 {ui::ET_KEY_PRESSED, | 667 {ui::ET_KEY_PRESSED, |
| 668 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_NONE, ui::DomKey::META}, | 668 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_NONE, ui::DomKey::META}, |
| 669 {ui::VKEY_UNKNOWN, ui::DomCode::NONE, ui::EF_NONE, | 669 {ui::VKEY_UNKNOWN, ui::DomCode::NONE, ui::EF_NONE, |
| 670 ui::DomKey::UNIDENTIFIED}}, | 670 ui::DomKey::UNIDENTIFIED}}, |
| 671 | 671 |
| 672 // Press Control. Confirm the event is now VKEY_UNKNOWN. | 672 // Press Control. Confirm the event is now VKEY_UNKNOWN. |
| 673 {ui::ET_KEY_PRESSED, | 673 {ui::ET_KEY_PRESSED, |
| 674 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN, | 674 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN, |
| 675 ui::DomKey::CONTROL}, | 675 ui::DomKey::CONTROL}, |
| 676 {ui::VKEY_UNKNOWN, ui::DomCode::NONE, ui::EF_NONE, | 676 {ui::VKEY_UNKNOWN, ui::DomCode::NONE, ui::EF_NONE, |
| 677 ui::DomKey::UNIDENTIFIED}}, | 677 ui::DomKey::UNIDENTIFIED}}, |
| 678 | 678 |
| 679 // Press Control+Search. Confirm the event is now VKEY_UNKNOWN | 679 // Press Control+Search. Confirm the event is now VKEY_UNKNOWN |
| 680 // without any modifiers. | 680 // without any modifiers. |
| 681 {ui::ET_KEY_PRESSED, | 681 {ui::ET_KEY_PRESSED, |
| 682 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_CONTROL_DOWN, | 682 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_CONTROL_DOWN, |
| 683 ui::DomKey::META}, | 683 ui::DomKey::META}, |
| 684 {ui::VKEY_UNKNOWN, ui::DomCode::NONE, ui::EF_NONE, | 684 {ui::VKEY_UNKNOWN, ui::DomCode::NONE, ui::EF_NONE, |
| 685 ui::DomKey::UNIDENTIFIED}}, | 685 ui::DomKey::UNIDENTIFIED}}, |
| 686 | 686 |
| 687 // Press Control+Search+a. Confirm the event is now VKEY_A without any | 687 // Press Control+Search+a. Confirm the event is now VKEY_A without any |
| 688 // modifiers. | 688 // modifiers. |
| 689 {ui::ET_KEY_PRESSED, | 689 {ui::ET_KEY_PRESSED, |
| 690 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_CONTROL_DOWN, | 690 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_CONTROL_DOWN, |
| 691 ui::DomKey::Constant<'a'>::Character}, | 691 ui::DomKey::Constant<'a'>::Character}, |
| 692 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_NONE, | 692 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_NONE, |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 740 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); | 740 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); |
| 741 search.SetValue(chromeos::input_method::kControlKey); | 741 search.SetValue(chromeos::input_method::kControlKey); |
| 742 | 742 |
| 743 EventRewriter rewriter(NULL); | 743 EventRewriter rewriter(NULL); |
| 744 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); | 744 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); |
| 745 rewriter.set_pref_service_for_testing(&prefs); | 745 rewriter.set_pref_service_for_testing(&prefs); |
| 746 | 746 |
| 747 KeyTestCase s_tests[] = { | 747 KeyTestCase s_tests[] = { |
| 748 // Press Search. Confirm the event is now VKEY_CONTROL. | 748 // Press Search. Confirm the event is now VKEY_CONTROL. |
| 749 {ui::ET_KEY_PRESSED, | 749 {ui::ET_KEY_PRESSED, |
| 750 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_COMMAND_DOWN, | 750 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_COMMAND_DOWN, |
| 751 ui::DomKey::META}, | 751 ui::DomKey::META}, |
| 752 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN, | 752 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN, |
| 753 ui::DomKey::CONTROL}}, | 753 ui::DomKey::CONTROL}}, |
| 754 }; | 754 }; |
| 755 | 755 |
| 756 for (const auto& test : s_tests) { | 756 for (const auto& test : s_tests) { |
| 757 CheckKeyTestCase(&rewriter, test); | 757 CheckKeyTestCase(&rewriter, test); |
| 758 } | 758 } |
| 759 | 759 |
| 760 // Remap Alt to Control too. | 760 // Remap Alt to Control too. |
| 761 IntegerPrefMember alt; | 761 IntegerPrefMember alt; |
| 762 alt.Init(prefs::kLanguageRemapAltKeyTo, &prefs); | 762 alt.Init(prefs::kLanguageRemapAltKeyTo, &prefs); |
| 763 alt.SetValue(chromeos::input_method::kControlKey); | 763 alt.SetValue(chromeos::input_method::kControlKey); |
| 764 | 764 |
| 765 KeyTestCase sa_tests[] = { | 765 KeyTestCase sa_tests[] = { |
| 766 // Press Alt. Confirm the event is now VKEY_CONTROL. | 766 // Press Alt. Confirm the event is now VKEY_CONTROL. |
| 767 {ui::ET_KEY_PRESSED, | 767 {ui::ET_KEY_PRESSED, |
| 768 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, ui::EF_ALT_DOWN, ui::DomKey::ALT}, | 768 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, ui::EF_ALT_DOWN, ui::DomKey::ALT}, |
| 769 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN, | 769 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN, |
| 770 ui::DomKey::CONTROL}}, | 770 ui::DomKey::CONTROL}}, |
| 771 | 771 |
| 772 // Press Alt+Search. Confirm the event is now VKEY_CONTROL. | 772 // Press Alt+Search. Confirm the event is now VKEY_CONTROL. |
| 773 {ui::ET_KEY_PRESSED, | 773 {ui::ET_KEY_PRESSED, |
| 774 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, | 774 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, |
| 775 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::META}, | 775 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::META}, |
| 776 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN, | 776 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN, |
| 777 ui::DomKey::CONTROL}}, | 777 ui::DomKey::CONTROL}}, |
| 778 | 778 |
| 779 // Press Control+Alt+Search. Confirm the event is now VKEY_CONTROL. | 779 // Press Control+Alt+Search. Confirm the event is now VKEY_CONTROL. |
| 780 {ui::ET_KEY_PRESSED, | 780 {ui::ET_KEY_PRESSED, |
| 781 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, | 781 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, |
| 782 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, | 782 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
| 783 ui::DomKey::META}, | 783 ui::DomKey::META}, |
| 784 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN, | 784 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN, |
| 785 ui::DomKey::CONTROL}}, | 785 ui::DomKey::CONTROL}}, |
| 786 | 786 |
| 787 // Press Shift+Control+Alt+Search. Confirm the event is now Control with | 787 // Press Shift+Control+Alt+Search. Confirm the event is now Control with |
| 788 // Shift and Control modifiers. | 788 // Shift and Control modifiers. |
| 789 {ui::ET_KEY_PRESSED, | 789 {ui::ET_KEY_PRESSED, |
| 790 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, | 790 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, |
| 791 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | | 791 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
| 792 ui::EF_COMMAND_DOWN, | 792 ui::EF_COMMAND_DOWN, |
| 793 ui::DomKey::META}, | 793 ui::DomKey::META}, |
| 794 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, | 794 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
| 795 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, ui::DomKey::CONTROL}}, | 795 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, ui::DomKey::CONTROL}}, |
| 796 | 796 |
| 797 // Press Shift+Control+Alt+Search+B. Confirm the event is now B with Shift | 797 // Press Shift+Control+Alt+Search+B. Confirm the event is now B with Shift |
| 798 // and Control modifiers. | 798 // and Control modifiers. |
| 799 {ui::ET_KEY_PRESSED, | 799 {ui::ET_KEY_PRESSED, |
| 800 {ui::VKEY_B, ui::DomCode::US_B, | 800 {ui::VKEY_B, ui::DomCode::US_B, |
| (...skipping 17 matching lines...) Expand all Loading... |
| 818 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); | 818 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); |
| 819 search.SetValue(chromeos::input_method::kEscapeKey); | 819 search.SetValue(chromeos::input_method::kEscapeKey); |
| 820 | 820 |
| 821 EventRewriter rewriter(NULL); | 821 EventRewriter rewriter(NULL); |
| 822 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); | 822 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); |
| 823 rewriter.set_pref_service_for_testing(&prefs); | 823 rewriter.set_pref_service_for_testing(&prefs); |
| 824 | 824 |
| 825 KeyTestCase tests[] = { | 825 KeyTestCase tests[] = { |
| 826 // Press Search. Confirm the event is now VKEY_ESCAPE. | 826 // Press Search. Confirm the event is now VKEY_ESCAPE. |
| 827 {ui::ET_KEY_PRESSED, | 827 {ui::ET_KEY_PRESSED, |
| 828 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_COMMAND_DOWN, | 828 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_COMMAND_DOWN, |
| 829 ui::DomKey::META}, | 829 ui::DomKey::META}, |
| 830 {ui::VKEY_ESCAPE, ui::DomCode::ESCAPE, ui::EF_NONE, ui::DomKey::ESCAPE}}, | 830 {ui::VKEY_ESCAPE, ui::DomCode::ESCAPE, ui::EF_NONE, ui::DomKey::ESCAPE}}, |
| 831 }; | 831 }; |
| 832 | 832 |
| 833 for (const auto& test : tests) { | 833 for (const auto& test : tests) { |
| 834 CheckKeyTestCase(&rewriter, test); | 834 CheckKeyTestCase(&rewriter, test); |
| 835 } | 835 } |
| 836 } | 836 } |
| 837 | 837 |
| 838 TEST_F(EventRewriterTest, TestRewriteModifiersRemapMany) { | 838 TEST_F(EventRewriterTest, TestRewriteModifiersRemapMany) { |
| 839 // Remap Search to Alt. | 839 // Remap Search to Alt. |
| 840 syncable_prefs::TestingPrefServiceSyncable prefs; | 840 syncable_prefs::TestingPrefServiceSyncable prefs; |
| 841 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); | 841 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); |
| 842 IntegerPrefMember search; | 842 IntegerPrefMember search; |
| 843 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); | 843 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); |
| 844 search.SetValue(chromeos::input_method::kAltKey); | 844 search.SetValue(chromeos::input_method::kAltKey); |
| 845 | 845 |
| 846 EventRewriter rewriter(NULL); | 846 EventRewriter rewriter(NULL); |
| 847 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); | 847 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); |
| 848 rewriter.set_pref_service_for_testing(&prefs); | 848 rewriter.set_pref_service_for_testing(&prefs); |
| 849 | 849 |
| 850 KeyTestCase s2a_tests[] = { | 850 KeyTestCase s2a_tests[] = { |
| 851 // Press Search. Confirm the event is now VKEY_MENU. | 851 // Press Search. Confirm the event is now VKEY_MENU. |
| 852 {ui::ET_KEY_PRESSED, | 852 {ui::ET_KEY_PRESSED, |
| 853 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_COMMAND_DOWN, | 853 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_COMMAND_DOWN, |
| 854 ui::DomKey::META}, | 854 ui::DomKey::META}, |
| 855 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, ui::EF_ALT_DOWN, | 855 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, ui::EF_ALT_DOWN, |
| 856 ui::DomKey::ALT}}, | 856 ui::DomKey::ALT}}, |
| 857 }; | 857 }; |
| 858 | 858 |
| 859 for (const auto& test : s2a_tests) { | 859 for (const auto& test : s2a_tests) { |
| 860 CheckKeyTestCase(&rewriter, test); | 860 CheckKeyTestCase(&rewriter, test); |
| 861 } | 861 } |
| 862 | 862 |
| 863 // Remap Alt to Control. | 863 // Remap Alt to Control. |
| (...skipping 30 matching lines...) Expand all Loading... |
| 894 // Remap Control to Search. | 894 // Remap Control to Search. |
| 895 IntegerPrefMember control; | 895 IntegerPrefMember control; |
| 896 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); | 896 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); |
| 897 control.SetValue(chromeos::input_method::kSearchKey); | 897 control.SetValue(chromeos::input_method::kSearchKey); |
| 898 | 898 |
| 899 KeyTestCase c2s_tests[] = { | 899 KeyTestCase c2s_tests[] = { |
| 900 // Press left Control. Confirm the event is now VKEY_LWIN. | 900 // Press left Control. Confirm the event is now VKEY_LWIN. |
| 901 {ui::ET_KEY_PRESSED, | 901 {ui::ET_KEY_PRESSED, |
| 902 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN, | 902 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN, |
| 903 ui::DomKey::CONTROL}, | 903 ui::DomKey::CONTROL}, |
| 904 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_COMMAND_DOWN, | 904 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_COMMAND_DOWN, |
| 905 ui::DomKey::META}}, | 905 ui::DomKey::META}}, |
| 906 | 906 |
| 907 // Then, press all of the three, Control+Alt+Search. | 907 // Then, press all of the three, Control+Alt+Search. |
| 908 {ui::ET_KEY_PRESSED, | 908 {ui::ET_KEY_PRESSED, |
| 909 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, | 909 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, |
| 910 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, | 910 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
| 911 ui::DomKey::META}, | 911 ui::DomKey::META}, |
| 912 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, | 912 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, |
| 913 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, | 913 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
| 914 ui::DomKey::ALT}}, | 914 ui::DomKey::ALT}}, |
| 915 | 915 |
| 916 // Press Shift+Control+Alt+Search. | 916 // Press Shift+Control+Alt+Search. |
| 917 {ui::ET_KEY_PRESSED, | 917 {ui::ET_KEY_PRESSED, |
| 918 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, | 918 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, |
| 919 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | | 919 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
| 920 ui::EF_COMMAND_DOWN, | 920 ui::EF_COMMAND_DOWN, |
| 921 ui::DomKey::META}, | 921 ui::DomKey::META}, |
| 922 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, | 922 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, |
| 923 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | | 923 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
| 924 ui::EF_COMMAND_DOWN, | 924 ui::EF_COMMAND_DOWN, |
| 925 ui::DomKey::ALT}}, | 925 ui::DomKey::ALT}}, |
| 926 | 926 |
| 927 // Press Shift+Control+Alt+Search+B | 927 // Press Shift+Control+Alt+Search+B |
| 928 {ui::ET_KEY_PRESSED, | 928 {ui::ET_KEY_PRESSED, |
| (...skipping 25 matching lines...) Expand all Loading... |
| 954 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); | 954 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); |
| 955 rewriter.set_pref_service_for_testing(&prefs); | 955 rewriter.set_pref_service_for_testing(&prefs); |
| 956 rewriter.set_ime_keyboard_for_testing(&ime_keyboard); | 956 rewriter.set_ime_keyboard_for_testing(&ime_keyboard); |
| 957 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); | 957 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); |
| 958 | 958 |
| 959 // Press Search. | 959 // Press Search. |
| 960 EXPECT_EQ(GetExpectedResultAsString( | 960 EXPECT_EQ(GetExpectedResultAsString( |
| 961 ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK, | 961 ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK, |
| 962 ui::EF_MOD3_DOWN | ui::EF_CAPS_LOCK_ON, ui::DomKey::CAPS_LOCK), | 962 ui::EF_MOD3_DOWN | ui::EF_CAPS_LOCK_ON, ui::DomKey::CAPS_LOCK), |
| 963 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, | 963 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, |
| 964 ui::VKEY_LWIN, ui::DomCode::OS_LEFT, | 964 ui::VKEY_LWIN, ui::DomCode::META_LEFT, |
| 965 ui::EF_COMMAND_DOWN, ui::DomKey::META)); | 965 ui::EF_COMMAND_DOWN, ui::DomKey::META)); |
| 966 // Confirm that the Caps Lock status is changed. | 966 // Confirm that the Caps Lock status is changed. |
| 967 EXPECT_TRUE(ime_keyboard.caps_lock_is_enabled_); | 967 EXPECT_TRUE(ime_keyboard.caps_lock_is_enabled_); |
| 968 | 968 |
| 969 // Release Search. | 969 // Release Search. |
| 970 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CAPITAL, | 970 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CAPITAL, |
| 971 ui::DomCode::CAPS_LOCK, ui::EF_NONE, | 971 ui::DomCode::CAPS_LOCK, ui::EF_NONE, |
| 972 ui::DomKey::CAPS_LOCK), | 972 ui::DomKey::CAPS_LOCK), |
| 973 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, | 973 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, |
| 974 ui::VKEY_LWIN, ui::DomCode::OS_LEFT, | 974 ui::VKEY_LWIN, ui::DomCode::META_LEFT, |
| 975 ui::EF_NONE, ui::DomKey::META)); | 975 ui::EF_NONE, ui::DomKey::META)); |
| 976 // Confirm that the Caps Lock status is not changed. | 976 // Confirm that the Caps Lock status is not changed. |
| 977 EXPECT_TRUE(ime_keyboard.caps_lock_is_enabled_); | 977 EXPECT_TRUE(ime_keyboard.caps_lock_is_enabled_); |
| 978 | 978 |
| 979 // Press Search. | 979 // Press Search. |
| 980 EXPECT_EQ(GetExpectedResultAsString( | 980 EXPECT_EQ(GetExpectedResultAsString( |
| 981 ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK, | 981 ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK, |
| 982 ui::EF_CAPS_LOCK_ON | ui::EF_MOD3_DOWN, ui::DomKey::CAPS_LOCK), | 982 ui::EF_CAPS_LOCK_ON | ui::EF_MOD3_DOWN, ui::DomKey::CAPS_LOCK), |
| 983 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, | 983 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, |
| 984 ui::VKEY_LWIN, ui::DomCode::OS_LEFT, | 984 ui::VKEY_LWIN, ui::DomCode::META_LEFT, |
| 985 ui::EF_COMMAND_DOWN | ui::EF_CAPS_LOCK_ON, | 985 ui::EF_COMMAND_DOWN | ui::EF_CAPS_LOCK_ON, |
| 986 ui::DomKey::META)); | 986 ui::DomKey::META)); |
| 987 // Confirm that the Caps Lock status is changed. | 987 // Confirm that the Caps Lock status is changed. |
| 988 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); | 988 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); |
| 989 | 989 |
| 990 // Release Search. | 990 // Release Search. |
| 991 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CAPITAL, | 991 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CAPITAL, |
| 992 ui::DomCode::CAPS_LOCK, ui::EF_NONE, | 992 ui::DomCode::CAPS_LOCK, ui::EF_NONE, |
| 993 ui::DomKey::CAPS_LOCK), | 993 ui::DomKey::CAPS_LOCK), |
| 994 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, | 994 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, |
| 995 ui::VKEY_LWIN, ui::DomCode::OS_LEFT, | 995 ui::VKEY_LWIN, ui::DomCode::META_LEFT, |
| 996 ui::EF_NONE, ui::DomKey::META)); | 996 ui::EF_NONE, ui::DomKey::META)); |
| 997 // Confirm that the Caps Lock status is not changed. | 997 // Confirm that the Caps Lock status is not changed. |
| 998 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); | 998 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); |
| 999 | 999 |
| 1000 // Press Caps Lock (on an external keyboard). | 1000 // Press Caps Lock (on an external keyboard). |
| 1001 EXPECT_EQ(GetExpectedResultAsString( | 1001 EXPECT_EQ(GetExpectedResultAsString( |
| 1002 ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK, | 1002 ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK, |
| 1003 ui::EF_CAPS_LOCK_ON | ui::EF_MOD3_DOWN, ui::DomKey::CAPS_LOCK), | 1003 ui::EF_CAPS_LOCK_ON | ui::EF_MOD3_DOWN, ui::DomKey::CAPS_LOCK), |
| 1004 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, | 1004 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, |
| 1005 ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK, | 1005 ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK, |
| (...skipping 1548 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2554 | 2554 |
| 2555 // Enable modifiers. | 2555 // Enable modifiers. |
| 2556 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, | 2556 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
| 2557 ui::DomKey::CONTROL); | 2557 ui::DomKey::CONTROL); |
| 2558 SendActivateStickyKeyPattern(ui::VKEY_SHIFT, ui::DomCode::SHIFT_LEFT, | 2558 SendActivateStickyKeyPattern(ui::VKEY_SHIFT, ui::DomCode::SHIFT_LEFT, |
| 2559 ui::DomKey::SHIFT); | 2559 ui::DomKey::SHIFT); |
| 2560 SendActivateStickyKeyPattern(ui::VKEY_SHIFT, ui::DomCode::SHIFT_LEFT, | 2560 SendActivateStickyKeyPattern(ui::VKEY_SHIFT, ui::DomCode::SHIFT_LEFT, |
| 2561 ui::DomKey::SHIFT); | 2561 ui::DomKey::SHIFT); |
| 2562 SendActivateStickyKeyPattern(ui::VKEY_LMENU, ui::DomCode::ALT_LEFT, | 2562 SendActivateStickyKeyPattern(ui::VKEY_LMENU, ui::DomCode::ALT_LEFT, |
| 2563 ui::DomKey::ALT); | 2563 ui::DomKey::ALT); |
| 2564 SendActivateStickyKeyPattern(ui::VKEY_COMMAND, ui::DomCode::OS_LEFT, | 2564 SendActivateStickyKeyPattern(ui::VKEY_COMMAND, ui::DomCode::META_LEFT, |
| 2565 ui::DomKey::META); | 2565 ui::DomKey::META); |
| 2566 SendActivateStickyKeyPattern(ui::VKEY_COMMAND, ui::DomCode::OS_LEFT, | 2566 SendActivateStickyKeyPattern(ui::VKEY_COMMAND, ui::DomCode::META_LEFT, |
| 2567 ui::DomKey::META); | 2567 ui::DomKey::META); |
| 2568 | 2568 |
| 2569 EXPECT_TRUE(overlay_->is_visible()); | 2569 EXPECT_TRUE(overlay_->is_visible()); |
| 2570 EXPECT_EQ(ash::STICKY_KEY_STATE_ENABLED, | 2570 EXPECT_EQ(ash::STICKY_KEY_STATE_ENABLED, |
| 2571 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); | 2571 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); |
| 2572 EXPECT_EQ(ash::STICKY_KEY_STATE_LOCKED, | 2572 EXPECT_EQ(ash::STICKY_KEY_STATE_LOCKED, |
| 2573 overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN)); | 2573 overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN)); |
| 2574 EXPECT_EQ(ash::STICKY_KEY_STATE_ENABLED, | 2574 EXPECT_EQ(ash::STICKY_KEY_STATE_ENABLED, |
| 2575 overlay_->GetModifierKeyState(ui::EF_ALT_DOWN)); | 2575 overlay_->GetModifierKeyState(ui::EF_ALT_DOWN)); |
| 2576 EXPECT_EQ(ash::STICKY_KEY_STATE_LOCKED, | 2576 EXPECT_EQ(ash::STICKY_KEY_STATE_LOCKED, |
| 2577 overlay_->GetModifierKeyState(ui::EF_COMMAND_DOWN)); | 2577 overlay_->GetModifierKeyState(ui::EF_COMMAND_DOWN)); |
| 2578 | 2578 |
| 2579 // Disable modifiers and overlay should be hidden. | 2579 // Disable modifiers and overlay should be hidden. |
| 2580 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, | 2580 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
| 2581 ui::DomKey::CONTROL); | 2581 ui::DomKey::CONTROL); |
| 2582 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, | 2582 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
| 2583 ui::DomKey::CONTROL); | 2583 ui::DomKey::CONTROL); |
| 2584 SendActivateStickyKeyPattern(ui::VKEY_SHIFT, ui::DomCode::SHIFT_LEFT, | 2584 SendActivateStickyKeyPattern(ui::VKEY_SHIFT, ui::DomCode::SHIFT_LEFT, |
| 2585 ui::DomKey::SHIFT); | 2585 ui::DomKey::SHIFT); |
| 2586 SendActivateStickyKeyPattern(ui::VKEY_LMENU, ui::DomCode::ALT_LEFT, | 2586 SendActivateStickyKeyPattern(ui::VKEY_LMENU, ui::DomCode::ALT_LEFT, |
| 2587 ui::DomKey::ALT); | 2587 ui::DomKey::ALT); |
| 2588 SendActivateStickyKeyPattern(ui::VKEY_LMENU, ui::DomCode::ALT_LEFT, | 2588 SendActivateStickyKeyPattern(ui::VKEY_LMENU, ui::DomCode::ALT_LEFT, |
| 2589 ui::DomKey::ALT); | 2589 ui::DomKey::ALT); |
| 2590 SendActivateStickyKeyPattern(ui::VKEY_COMMAND, ui::DomCode::OS_LEFT, | 2590 SendActivateStickyKeyPattern(ui::VKEY_COMMAND, ui::DomCode::META_LEFT, |
| 2591 ui::DomKey::META); | 2591 ui::DomKey::META); |
| 2592 | 2592 |
| 2593 EXPECT_FALSE(overlay_->is_visible()); | 2593 EXPECT_FALSE(overlay_->is_visible()); |
| 2594 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, | 2594 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, |
| 2595 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); | 2595 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); |
| 2596 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, | 2596 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, |
| 2597 overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN)); | 2597 overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN)); |
| 2598 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, | 2598 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, |
| 2599 overlay_->GetModifierKeyState(ui::EF_ALT_DOWN)); | 2599 overlay_->GetModifierKeyState(ui::EF_ALT_DOWN)); |
| 2600 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, | 2600 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, |
| (...skipping 28 matching lines...) Expand all Loading... |
| 2629 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); | 2629 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); |
| 2630 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); | 2630 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); |
| 2631 | 2631 |
| 2632 // Turn off AltGr and Mod3. | 2632 // Turn off AltGr and Mod3. |
| 2633 sticky_keys_controller_->SetModifiersEnabled(false, false); | 2633 sticky_keys_controller_->SetModifiersEnabled(false, false); |
| 2634 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); | 2634 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); |
| 2635 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); | 2635 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); |
| 2636 } | 2636 } |
| 2637 | 2637 |
| 2638 } // namespace chromeos | 2638 } // namespace chromeos |
| OLD | NEW |