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

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: 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
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 1600 matching lines...) Expand 10 before | Expand all | Expand 10 after
1611 1611
1612 for (size_t i = 0; i < arraysize(tests); ++i) { 1612 for (size_t i = 0; i < arraysize(tests); ++i) {
1613 SCOPED_TRACE(i); 1613 SCOPED_TRACE(i);
1614 CheckKeyTestCase(&rewriter, tests[i]); 1614 CheckKeyTestCase(&rewriter, tests[i]);
1615 } 1615 }
1616 1616
1617 *CommandLine::ForCurrentProcess() = original_cl; 1617 *CommandLine::ForCurrentProcess() = original_cl;
1618 } 1618 }
1619 1619
1620 TEST_F(EventRewriterTest, TestRewriteKeyEventSentByXSendEvent) { 1620 TEST_F(EventRewriterTest, TestRewriteKeyEventSentByXSendEvent) {
1621 #if defined(USE_X11)
1622 // TODO(kpschoedel): pending alternative to xevent.xany.send_event
1623 // Remap Control to Alt. 1621 // Remap Control to Alt.
1624 TestingPrefServiceSyncable prefs; 1622 TestingPrefServiceSyncable prefs;
1625 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1623 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1626 IntegerPrefMember control; 1624 IntegerPrefMember control;
1627 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); 1625 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs);
1628 control.SetValue(chromeos::input_method::kAltKey); 1626 control.SetValue(chromeos::input_method::kAltKey);
1629 1627
1630 EventRewriter rewriter(NULL); 1628 EventRewriter rewriter(NULL);
1631 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1629 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1632 rewriter.set_pref_service_for_testing(&prefs); 1630 rewriter.set_pref_service_for_testing(&prefs);
1633 1631
1634 // Send left control press. 1632 // Send left control press.
1635 std::string rewritten_event; 1633 {
1634 ui::KeyEvent keyevent(
1635 ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, ui::EF_FINAL_MODIFIERS, false);
1636 scoped_ptr<ui::Event> new_event;
1637 // Control should NOT be remapped to Alt if EF_FINAL_MODIFIERS is set.
1638 EXPECT_EQ(ui::EVENT_REWRITE_CONTINUE,
1639 rewriter.RewriteEvent(keyevent, &new_event));
1640 EXPECT_FALSE(new_event);
1641 }
1642 #if defined(USE_X11)
1643 // Send left control press, using XI2 native events.
1636 { 1644 {
1637 ui::ScopedXI2Event xev; 1645 ui::ScopedXI2Event xev;
1638 xev.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, 0); 1646 xev.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, 0);
1639 XEvent* xevent = xev; 1647 XEvent* xevent = xev;
1640 xevent->xkey.keycode = XKeysymToKeycode(gfx::GetXDisplay(), XK_Control_L); 1648 xevent->xkey.keycode = XKeysymToKeycode(gfx::GetXDisplay(), XK_Control_L);
1641 xevent->xkey.send_event = True; // XSendEvent() always does this. 1649 xevent->xkey.send_event = True; // XSendEvent() always does this.
1642 ui::KeyEvent keyevent(xev, false /* is_char */); 1650 ui::KeyEvent keyevent(xev, false /* is_char */);
1643 scoped_ptr<ui::Event> new_event; 1651 scoped_ptr<ui::Event> new_event;
1644 // Control should NOT be remapped to Alt if send_event 1652 // Control should NOT be remapped to Alt if send_event
1645 // flag in the event is True. 1653 // flag in the event is True.
(...skipping 735 matching lines...) Expand 10 before | Expand all | Expand 10 after
2381 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); 2389 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN));
2382 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); 2390 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN));
2383 2391
2384 // Turn off AltGr and Mod3. 2392 // Turn off AltGr and Mod3.
2385 sticky_keys_controller_->SetModifiersEnabled(false, false); 2393 sticky_keys_controller_->SetModifiersEnabled(false, false);
2386 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); 2394 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN));
2387 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); 2395 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN));
2388 } 2396 }
2389 2397
2390 } // namespace chromeos 2398 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698