Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(387)

Side by Side Diff: chrome/browser/chromeos/events/event_rewriter_unittest.cc

Issue 394553002: Add EF_FINAL_MODIFIERS to suppress remapping. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Restore guard on rewriting extended and function keys. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/chromeos/events/event_rewriter.cc ('k') | ui/events/event_constants.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 1610 matching lines...) Expand 10 before | Expand all | Expand 10 after
1621 1621
1622 for (size_t i = 0; i < arraysize(tests); ++i) { 1622 for (size_t i = 0; i < arraysize(tests); ++i) {
1623 SCOPED_TRACE(i); 1623 SCOPED_TRACE(i);
1624 CheckKeyTestCase(&rewriter, tests[i]); 1624 CheckKeyTestCase(&rewriter, tests[i]);
1625 } 1625 }
1626 1626
1627 *CommandLine::ForCurrentProcess() = original_cl; 1627 *CommandLine::ForCurrentProcess() = original_cl;
1628 } 1628 }
1629 1629
1630 TEST_F(EventRewriterTest, TestRewriteKeyEventSentByXSendEvent) { 1630 TEST_F(EventRewriterTest, TestRewriteKeyEventSentByXSendEvent) {
1631 #if defined(USE_X11)
1632 // TODO(kpschoedel): pending alternative to xevent.xany.send_event
1633 // Remap Control to Alt. 1631 // Remap Control to Alt.
1634 TestingPrefServiceSyncable prefs; 1632 TestingPrefServiceSyncable prefs;
1635 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1633 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1636 IntegerPrefMember control; 1634 IntegerPrefMember control;
1637 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); 1635 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs);
1638 control.SetValue(chromeos::input_method::kAltKey); 1636 control.SetValue(chromeos::input_method::kAltKey);
1639 1637
1640 EventRewriter rewriter(NULL); 1638 EventRewriter rewriter(NULL);
1641 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1639 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1642 rewriter.set_pref_service_for_testing(&prefs); 1640 rewriter.set_pref_service_for_testing(&prefs);
1643 1641
1644 // Send left control press. 1642 // Send left control press.
1645 std::string rewritten_event; 1643 {
1644 ui::KeyEvent keyevent(
1645 ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, ui::EF_FINAL, false);
1646 scoped_ptr<ui::Event> new_event;
1647 // Control should NOT be remapped to Alt if EF_FINAL is set.
1648 EXPECT_EQ(ui::EVENT_REWRITE_CONTINUE,
1649 rewriter.RewriteEvent(keyevent, &new_event));
1650 EXPECT_FALSE(new_event);
1651 }
1652 #if defined(USE_X11)
1653 // Send left control press, using XI2 native events.
1646 { 1654 {
1647 ui::ScopedXI2Event xev; 1655 ui::ScopedXI2Event xev;
1648 xev.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, 0); 1656 xev.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, 0);
1649 XEvent* xevent = xev; 1657 XEvent* xevent = xev;
1650 xevent->xkey.keycode = XKeysymToKeycode(gfx::GetXDisplay(), XK_Control_L); 1658 xevent->xkey.keycode = XKeysymToKeycode(gfx::GetXDisplay(), XK_Control_L);
1651 xevent->xkey.send_event = True; // XSendEvent() always does this. 1659 xevent->xkey.send_event = True; // XSendEvent() always does this.
1652 ui::KeyEvent keyevent(xev, false /* is_char */); 1660 ui::KeyEvent keyevent(xev, false /* is_char */);
1653 scoped_ptr<ui::Event> new_event; 1661 scoped_ptr<ui::Event> new_event;
1654 // Control should NOT be remapped to Alt if send_event 1662 // Control should NOT be remapped to Alt if send_event
1655 // flag in the event is True. 1663 // flag in the event is True.
(...skipping 735 matching lines...) Expand 10 before | Expand all | Expand 10 after
2391 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); 2399 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN));
2392 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); 2400 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN));
2393 2401
2394 // Turn off AltGr and Mod3. 2402 // Turn off AltGr and Mod3.
2395 sticky_keys_controller_->SetModifiersEnabled(false, false); 2403 sticky_keys_controller_->SetModifiersEnabled(false, false);
2396 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); 2404 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN));
2397 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); 2405 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN));
2398 } 2406 }
2399 2407
2400 } // namespace chromeos 2408 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/events/event_rewriter.cc ('k') | ui/events/event_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698