| Index: chrome/browser/ui/ash/event_rewriter_unittest.cc
|
| diff --git a/chrome/browser/ui/ash/event_rewriter_unittest.cc b/chrome/browser/ui/ash/event_rewriter_unittest.cc
|
| index 34895b75e83e7691770b7eda619f34e7cd7da7ec..1e2d608deac0aca6a4bb7ce598176a595e294463 100644
|
| --- a/chrome/browser/ui/ash/event_rewriter_unittest.cc
|
| +++ b/chrome/browser/ui/ash/event_rewriter_unittest.cc
|
| @@ -29,6 +29,7 @@
|
| #include "chromeos/ime/mock_xkeyboard.h"
|
| #include "ui/aura/window.h"
|
| #include "ui/events/test/events_test_utils_x11.h"
|
| +#include "ui/events/x/touch_factory_x11.h"
|
| #include "ui/gfx/x/x11_types.h"
|
|
|
| namespace {
|
| @@ -63,6 +64,8 @@ std::string GetExpectedResultAsString(ui::KeyboardCode ui_keycode,
|
| ui_keycode, ui_flags, ui_type, x_keycode, x_state, x_type);
|
| }
|
|
|
| +} // namespace
|
| +
|
| class EventRewriterTest : public testing::Test {
|
| public:
|
| EventRewriterTest()
|
| @@ -180,6 +183,11 @@ class EventRewriterTest : public testing::Test {
|
| void TestRewriteNumPadKeys();
|
| void TestRewriteNumPadKeysOnAppleKeyboard();
|
|
|
| + void RewriteLocatedEvent(EventRewriter* rewriter,
|
| + ui::LocatedEvent* event) {
|
| + rewriter->RewriteLocatedEvent(event);
|
| + }
|
| +
|
| Display* display_;
|
| const KeyCode keycode_a_;
|
| const KeyCode keycode_alt_l_;
|
| @@ -270,7 +278,6 @@ class EventRewriterTest : public testing::Test {
|
| chromeos::input_method::MockInputMethodManager* input_method_manager_mock_;
|
| };
|
|
|
| -} // namespace
|
| #else
|
| class EventRewriterTest : public testing::Test {
|
| public:
|
| @@ -2380,4 +2387,76 @@ TEST_F(EventRewriterAshTest, TopRowKeysAreFunctionKeys) {
|
| ASSERT_EQ(ui::VKEY_BROWSER_BACK, press_f1.key_code());
|
| }
|
|
|
| +TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) {
|
| + std::vector<unsigned int> device_list;
|
| + device_list.push_back(10);
|
| + device_list.push_back(11);
|
| + ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list);
|
| + TestingPrefServiceSyncable prefs;
|
| + EventRewriter rewriter;
|
| + rewriter.set_pref_service_for_testing(&prefs);
|
| + const int kLeftAndAltFlag = ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN;
|
| + {
|
| + ui::ScopedXI2Event xev;
|
| + xev.InitGenericButtonEvent(10, ui::ET_MOUSE_PRESSED, kLeftAndAltFlag);
|
| + ui::MouseEvent press(xev);
|
| + // Sanity check.
|
| + EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type());
|
| + EXPECT_EQ(kLeftAndAltFlag, press.flags());
|
| +
|
| + RewriteLocatedEvent(&rewriter, &press);
|
| +
|
| + EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & press.flags());
|
| + }
|
| + {
|
| + ui::ScopedXI2Event xev;
|
| + xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, kLeftAndAltFlag);
|
| + ui::MouseEvent release(xev);
|
| + RewriteLocatedEvent(&rewriter, &release);
|
| + EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & release.flags());
|
| + }
|
| +
|
| + // No ALT in frst click.
|
| + {
|
| + ui::ScopedXI2Event xev;
|
| + xev.InitGenericButtonEvent(
|
| + 10, ui::ET_MOUSE_PRESSED, ui::EF_LEFT_MOUSE_BUTTON);
|
| + ui::MouseEvent press(xev);
|
| + RewriteLocatedEvent(&rewriter, &press);
|
| + EXPECT_TRUE(ui::EF_LEFT_MOUSE_BUTTON & press.flags());
|
| + }
|
| + {
|
| + ui::ScopedXI2Event xev;
|
| + xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, kLeftAndAltFlag);
|
| + ui::MouseEvent release(xev);
|
| + RewriteLocatedEvent(&rewriter, &release);
|
| + EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) &
|
| + release.flags());
|
| + }
|
| +
|
| + // ALT on different device.
|
| + {
|
| + ui::ScopedXI2Event xev;
|
| + xev.InitGenericButtonEvent(11, ui::ET_MOUSE_PRESSED, kLeftAndAltFlag);
|
| + ui::MouseEvent press(xev);
|
| + RewriteLocatedEvent(&rewriter, &press);
|
| + EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & press.flags());
|
| + }
|
| + {
|
| + ui::ScopedXI2Event xev;
|
| + xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, kLeftAndAltFlag);
|
| + ui::MouseEvent release(xev);
|
| + RewriteLocatedEvent(&rewriter, &release);
|
| + EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) &
|
| + release.flags());
|
| + }
|
| + {
|
| + ui::ScopedXI2Event xev;
|
| + xev.InitGenericButtonEvent(11, ui::ET_MOUSE_RELEASED, kLeftAndAltFlag);
|
| + ui::MouseEvent release(xev);
|
| + RewriteLocatedEvent(&rewriter, &release);
|
| + EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & release.flags());
|
| + }
|
| +}
|
| +
|
| #endif // OS_CHROMEOS
|
|
|