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

Unified Diff: ui/events/event_unittest.cc

Issue 308023002: Add EF_IS_REPEAT flag to KeyEvent to handle repeated accelerators correctly. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: use ui::EF_IS_REPEAT in test instead 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/events/event_constants.h ('k') | ui/events/event_utils.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/event_unittest.cc
diff --git a/ui/events/event_unittest.cc b/ui/events/event_unittest.cc
index 0d36423190a8b6753e9ec3fab4edd6e3a1094b89..40bfa9611f0374c8b69924190e19c5f3facc730c 100644
--- a/ui/events/event_unittest.cc
+++ b/ui/events/event_unittest.cc
@@ -65,7 +65,7 @@ TEST(EventTest, ClickCount) {
}
}
-TEST(EventTest, Repeated) {
+TEST(EventTest, RepeatedClick) {
const gfx::Point origin(0, 0);
MouseEvent mouse_ev1(ET_MOUSE_PRESSED, origin, origin, 0, 0);
MouseEvent mouse_ev2(ET_MOUSE_PRESSED, origin, origin, 0, 0);
@@ -331,4 +331,51 @@ TEST(EventTest, KeyEventCode) {
#endif // OS_WIN
}
+#if defined(USE_X11) || defined(OS_WIN)
+TEST(EventTest, AutoRepeat) {
+ KeycodeConverter* conv = KeycodeConverter::GetInstance();
+
+ const uint16 kNativeCodeA = conv->CodeToNativeKeycode("KeyA");
+ const uint16 kNativeCodeB = conv->CodeToNativeKeycode("KeyB");
+#if defined(USE_X11)
+ ScopedXI2Event native_event_a_pressed;
+ native_event_a_pressed.InitKeyEvent(ET_KEY_PRESSED, VKEY_A, kNativeCodeA);
+ ScopedXI2Event native_event_a_released;
+ native_event_a_released.InitKeyEvent(ET_KEY_RELEASED, VKEY_A, kNativeCodeA);
+ ScopedXI2Event native_event_b_pressed;
+ native_event_b_pressed.InitKeyEvent(ET_KEY_PRESSED, VKEY_B, kNativeCodeB);
+#elif defined(OS_WIN)
+ const LPARAM lParam_a = GetLParamFromScanCode(kNativeCodeA);
+ const LPARAM lParam_b = GetLParamFromScanCode(kNativeCodeB);
+ MSG native_event_a_pressed = { NULL, WM_KEYDOWN, VKEY_A, lParam_a };
+ MSG native_event_a_released = { NULL, WM_KEYUP, VKEY_A, lParam_a };
+ MSG native_event_b_pressed = { NULL, WM_KEYUP, VKEY_B, lParam_b };
+#endif
+ KeyEvent key_a1(native_event_a_pressed, false);
+ DCHECK(!key_a1.IsRepeat());
+ KeyEvent key_a1_released(native_event_a_released, false);
+ DCHECK(!key_a1_released.IsRepeat());
+
+ KeyEvent key_a2(native_event_a_pressed, false);
+ DCHECK(!key_a2.IsRepeat());
+ KeyEvent key_a2_repeated(native_event_a_pressed, false);
+ DCHECK(key_a2_repeated.IsRepeat());
+ KeyEvent key_a2_released(native_event_a_released, false);
+ DCHECK(!key_a2_released.IsRepeat());
+
+ KeyEvent key_a3(native_event_a_pressed, false);
+ DCHECK(!key_a3.IsRepeat());
+ KeyEvent key_b(native_event_b_pressed, false);
+ DCHECK(!key_b.IsRepeat());
+ KeyEvent key_a3_again(native_event_a_pressed, false);
+ DCHECK(!key_a3_again.IsRepeat());
+ KeyEvent key_a3_repeated(native_event_a_pressed, false);
+ DCHECK(key_a3_repeated.IsRepeat());
+ KeyEvent key_a3_repeated2(native_event_a_pressed, false);
+ DCHECK(key_a3_repeated2.IsRepeat());
+ KeyEvent key_a3_released(native_event_a_released, false);
+ DCHECK(!key_a3_released.IsRepeat());
+}
+#endif // USE_X11 || OS_WIN
+
} // namespace ui
« no previous file with comments | « ui/events/event_constants.h ('k') | ui/events/event_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698