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

Unified Diff: chrome/browser/ui/ash/event_rewriter_unittest.cc

Issue 144423006: Rewrite release event only if press event was rewritten for a given device. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/ash/event_rewriter.cc ('k') | ui/events/test/events_test_utils_x11.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « chrome/browser/ui/ash/event_rewriter.cc ('k') | ui/events/test/events_test_utils_x11.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698