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