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

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

Issue 280413002: Fix handling of rewritten-Alt + Button1 -> Button3. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments Created 6 years, 6 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 <X11/keysym.h> 7 #include <X11/keysym.h>
8 #include <X11/XF86keysym.h> 8 #include <X11/XF86keysym.h>
9 #include <X11/Xlib.h> 9 #include <X11/Xlib.h>
10 #undef Bool 10 #undef Bool
(...skipping 20 matching lines...) Expand all
31 #include "testing/gtest/include/gtest/gtest.h" 31 #include "testing/gtest/include/gtest/gtest.h"
32 #include "ui/aura/window.h" 32 #include "ui/aura/window.h"
33 #include "ui/events/event.h" 33 #include "ui/events/event.h"
34 #include "ui/events/event_rewriter.h" 34 #include "ui/events/event_rewriter.h"
35 #include "ui/events/test/events_test_utils_x11.h" 35 #include "ui/events/test/events_test_utils_x11.h"
36 #include "ui/events/x/touch_factory_x11.h" 36 #include "ui/events/x/touch_factory_x11.h"
37 #include "ui/gfx/x/x11_types.h" 37 #include "ui/gfx/x/x11_types.h"
38 38
39 namespace { 39 namespace {
40 40
41 std::string GetExpectedResultAsString(ui::KeyboardCode ui_keycode, 41 std::string GetExpectedResultAsString(ui::KeyboardCode ui_keycode,
kpschoedel 2014/06/02 00:52:36 All changes to this file in this patch set are fro
42 int ui_flags, 42 int ui_flags,
43 ui::EventType ui_type) { 43 ui::EventType ui_type) {
44 return base::StringPrintf("ui_keycode=0x%X ui_flags=0x%X ui_type=%d", 44 return base::StringPrintf("ui_keycode=0x%X ui_flags=0x%X ui_type=%d",
45 ui_keycode, 45 ui_keycode,
46 ui_flags, 46 ui_flags,
47 ui_type); 47 ui_type);
48 } 48 }
49 49
50 std::string GetKeyEventAsString(const ui::KeyEvent& keyevent) { 50 std::string GetKeyEventAsString(const ui::KeyEvent& keyevent) {
51 return GetExpectedResultAsString( 51 return GetExpectedResultAsString(
(...skipping 1506 matching lines...) Expand 10 before | Expand all | Expand 10 after
1558 // rewritten to the back key. 1558 // rewritten to the back key.
1559 send_function_keys_pref.SetValue(false); 1559 send_function_keys_pref.SetValue(false);
1560 ASSERT_TRUE(RewriteFunctionKeys(press_f1, &rewritten_event)); 1560 ASSERT_TRUE(RewriteFunctionKeys(press_f1, &rewritten_event));
1561 ASSERT_TRUE(rewritten_event); 1561 ASSERT_TRUE(rewritten_event);
1562 EXPECT_EQ(GetExpectedResultAsString( 1562 EXPECT_EQ(GetExpectedResultAsString(
1563 ui::VKEY_BROWSER_BACK, ui::EF_NONE, ui::ET_KEY_PRESSED), 1563 ui::VKEY_BROWSER_BACK, ui::EF_NONE, ui::ET_KEY_PRESSED),
1564 GetKeyEventAsString( 1564 GetKeyEventAsString(
1565 *static_cast<const ui::KeyEvent*>(rewritten_event.get()))); 1565 *static_cast<const ui::KeyEvent*>(rewritten_event.get())));
1566 } 1566 }
1567 1567
1568 TEST_F(EventRewriterTest, TestRewrittenModifierClick) {
1569 std::vector<unsigned int> device_list;
1570 device_list.push_back(10);
1571 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list);
1572
1573 // Remap Control to Alt.
1574 TestingPrefServiceSyncable prefs;
1575 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1576 IntegerPrefMember control;
1577 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs);
1578 control.SetValue(chromeos::input_method::kAltKey);
1579
1580 EventRewriter rewriter;
1581 rewriter.set_pref_service_for_testing(&prefs);
1582
1583 // Check that Control + Left Button is converted (via Alt + Left Button)
1584 // to Right Button.
1585 ui::ScopedXI2Event xev;
1586 xev.InitGenericButtonEvent(10,
1587 ui::ET_MOUSE_PRESSED,
1588 gfx::Point(),
1589 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN);
1590 ui::MouseEvent press(xev);
1591 // Sanity check.
1592 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type());
1593 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN, press.flags());
1594 int flags = RewriteMouseEvent(&rewriter, press);
1595 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & flags);
1596 EXPECT_FALSE(ui::EF_CONTROL_DOWN & flags);
1597 EXPECT_FALSE(ui::EF_ALT_DOWN & flags);
1598 }
1599
1600
1568 TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) { 1601 TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) {
1569 std::vector<unsigned int> device_list; 1602 std::vector<unsigned int> device_list;
1570 device_list.push_back(10); 1603 device_list.push_back(10);
1571 device_list.push_back(11); 1604 device_list.push_back(11);
1572 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); 1605 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list);
1573 TestingPrefServiceSyncable prefs; 1606 TestingPrefServiceSyncable prefs;
1574 EventRewriter rewriter; 1607 EventRewriter rewriter;
1575 rewriter.set_pref_service_for_testing(&prefs); 1608 rewriter.set_pref_service_for_testing(&prefs);
1576 const int kLeftAndAltFlag = ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN; 1609 const int kLeftAndAltFlag = ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN;
1577 { 1610 {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1633 ui::ScopedXI2Event xev; 1666 ui::ScopedXI2Event xev;
1634 xev.InitGenericButtonEvent( 1667 xev.InitGenericButtonEvent(
1635 11, ui::ET_MOUSE_RELEASED, gfx::Point(), kLeftAndAltFlag); 1668 11, ui::ET_MOUSE_RELEASED, gfx::Point(), kLeftAndAltFlag);
1636 ui::MouseEvent release(xev); 1669 ui::MouseEvent release(xev);
1637 int flags = RewriteMouseEvent(&rewriter, release); 1670 int flags = RewriteMouseEvent(&rewriter, release);
1638 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & flags); 1671 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & flags);
1639 } 1672 }
1640 } 1673 }
1641 1674
1642 } // namespace chromeos 1675 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698