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 <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 1454 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1465 // rewritten to the back key. | 1465 // rewritten to the back key. |
1466 send_function_keys_pref.SetValue(false); | 1466 send_function_keys_pref.SetValue(false); |
1467 ASSERT_TRUE(RewriteFunctionKeys(press_f1, &rewritten_event)); | 1467 ASSERT_TRUE(RewriteFunctionKeys(press_f1, &rewritten_event)); |
1468 ASSERT_TRUE(rewritten_event); | 1468 ASSERT_TRUE(rewritten_event); |
1469 EXPECT_EQ(GetExpectedResultAsString( | 1469 EXPECT_EQ(GetExpectedResultAsString( |
1470 ui::VKEY_BROWSER_BACK, ui::EF_NONE, ui::ET_KEY_PRESSED), | 1470 ui::VKEY_BROWSER_BACK, ui::EF_NONE, ui::ET_KEY_PRESSED), |
1471 GetKeyEventAsString( | 1471 GetKeyEventAsString( |
1472 *static_cast<const ui::KeyEvent*>(rewritten_event.get()))); | 1472 *static_cast<const ui::KeyEvent*>(rewritten_event.get()))); |
1473 } | 1473 } |
1474 | 1474 |
| 1475 TEST_F(EventRewriterTest, TestRewrittenModifierClick) { |
| 1476 std::vector<unsigned int> device_list; |
| 1477 device_list.push_back(10); |
| 1478 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); |
| 1479 |
| 1480 // Remap Control to Alt. |
| 1481 TestingPrefServiceSyncable prefs; |
| 1482 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); |
| 1483 IntegerPrefMember control; |
| 1484 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); |
| 1485 control.SetValue(chromeos::input_method::kAltKey); |
| 1486 |
| 1487 EventRewriter rewriter; |
| 1488 rewriter.set_pref_service_for_testing(&prefs); |
| 1489 |
| 1490 // Check that Control + Left Button is converted (via Alt + Left Button) |
| 1491 // to Right Button. |
| 1492 ui::ScopedXI2Event xev; |
| 1493 xev.InitGenericButtonEvent(10, |
| 1494 ui::ET_MOUSE_PRESSED, |
| 1495 gfx::Point(), |
| 1496 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN); |
| 1497 ui::MouseEvent press(xev); |
| 1498 // Sanity check. |
| 1499 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type()); |
| 1500 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN, press.flags()); |
| 1501 int flags = RewriteMouseEvent(&rewriter, press); |
| 1502 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & flags); |
| 1503 EXPECT_FALSE(ui::EF_CONTROL_DOWN & flags); |
| 1504 EXPECT_FALSE(ui::EF_ALT_DOWN & flags); |
| 1505 } |
| 1506 |
| 1507 |
1475 TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) { | 1508 TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) { |
1476 std::vector<unsigned int> device_list; | 1509 std::vector<unsigned int> device_list; |
1477 device_list.push_back(10); | 1510 device_list.push_back(10); |
1478 device_list.push_back(11); | 1511 device_list.push_back(11); |
1479 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); | 1512 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); |
1480 TestingPrefServiceSyncable prefs; | 1513 TestingPrefServiceSyncable prefs; |
1481 EventRewriter rewriter; | 1514 EventRewriter rewriter; |
1482 rewriter.set_pref_service_for_testing(&prefs); | 1515 rewriter.set_pref_service_for_testing(&prefs); |
1483 const int kLeftAndAltFlag = ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN; | 1516 const int kLeftAndAltFlag = ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN; |
1484 { | 1517 { |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1540 ui::ScopedXI2Event xev; | 1573 ui::ScopedXI2Event xev; |
1541 xev.InitGenericButtonEvent( | 1574 xev.InitGenericButtonEvent( |
1542 11, ui::ET_MOUSE_RELEASED, gfx::Point(), kLeftAndAltFlag); | 1575 11, ui::ET_MOUSE_RELEASED, gfx::Point(), kLeftAndAltFlag); |
1543 ui::MouseEvent release(xev); | 1576 ui::MouseEvent release(xev); |
1544 int flags = RewriteMouseEvent(&rewriter, release); | 1577 int flags = RewriteMouseEvent(&rewriter, release); |
1545 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & flags); | 1578 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & flags); |
1546 } | 1579 } |
1547 } | 1580 } |
1548 | 1581 |
1549 } // namespace chromeos | 1582 } // namespace chromeos |
OLD | NEW |