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

Side by Side Diff: ui/events/event_unittest.cc

Issue 404203003: Distinguish between keystroke and character events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: IsCharFromNative() for Mac build Created 6 years, 4 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 unified diff | Download patch
« no previous file with comments | « ui/events/event_processor_unittest.cc ('k') | ui/events/event_utils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "testing/gtest/include/gtest/gtest.h" 6 #include "testing/gtest/include/gtest/gtest.h"
7 #include "ui/events/event.h" 7 #include "ui/events/event.h"
8 #include "ui/events/event_utils.h" 8 #include "ui/events/event_utils.h"
9 #include "ui/events/keycodes/dom4/keycode_converter.h" 9 #include "ui/events/keycodes/dom4/keycode_converter.h"
10 #include "ui/events/test/events_test_utils.h" 10 #include "ui/events/test/events_test_utils.h"
11 11
12 #if defined(USE_X11) 12 #if defined(USE_X11)
13 #include <X11/Xlib.h> 13 #include <X11/Xlib.h>
14 #include "ui/events/test/events_test_utils_x11.h" 14 #include "ui/events/test/events_test_utils_x11.h"
15 #include "ui/gfx/x/x11_types.h" 15 #include "ui/gfx/x/x11_types.h"
16 #endif 16 #endif
17 17
18 namespace ui { 18 namespace ui {
19 19
20 TEST(EventTest, NoNativeEvent) { 20 TEST(EventTest, NoNativeEvent) {
21 KeyEvent keyev(ET_KEY_PRESSED, VKEY_SPACE, 0, false); 21 KeyEvent keyev(ET_KEY_PRESSED, VKEY_SPACE, EF_NONE);
22 EXPECT_FALSE(keyev.HasNativeEvent()); 22 EXPECT_FALSE(keyev.HasNativeEvent());
23 } 23 }
24 24
25 TEST(EventTest, NativeEvent) { 25 TEST(EventTest, NativeEvent) {
26 #if defined(OS_WIN) 26 #if defined(OS_WIN)
27 MSG native_event = { NULL, WM_KEYUP, VKEY_A, 0 }; 27 MSG native_event = { NULL, WM_KEYUP, VKEY_A, 0 };
28 KeyEvent keyev(native_event, false); 28 KeyEvent keyev(native_event);
29 EXPECT_TRUE(keyev.HasNativeEvent()); 29 EXPECT_TRUE(keyev.HasNativeEvent());
30 #elif defined(USE_X11) 30 #elif defined(USE_X11)
31 ScopedXI2Event event; 31 ScopedXI2Event event;
32 event.InitKeyEvent(ET_KEY_RELEASED, VKEY_A, 0); 32 event.InitKeyEvent(ET_KEY_RELEASED, VKEY_A, EF_NONE);
33 KeyEvent keyev(event, false); 33 KeyEvent keyev(event);
34 EXPECT_TRUE(keyev.HasNativeEvent()); 34 EXPECT_TRUE(keyev.HasNativeEvent());
35 #endif 35 #endif
36 } 36 }
37 37
38 TEST(EventTest, GetCharacter) { 38 TEST(EventTest, GetCharacter) {
39 // Check if Control+Enter returns 10. 39 // Check if Control+Enter returns 10.
40 KeyEvent keyev1(ET_KEY_PRESSED, VKEY_RETURN, EF_CONTROL_DOWN, false); 40 KeyEvent keyev1(ET_KEY_PRESSED, VKEY_RETURN, EF_CONTROL_DOWN);
41 EXPECT_EQ(10, keyev1.GetCharacter()); 41 EXPECT_EQ(10, keyev1.GetCharacter());
42 // Check if Enter returns 13. 42 // Check if Enter returns 13.
43 KeyEvent keyev2(ET_KEY_PRESSED, VKEY_RETURN, 0, false); 43 KeyEvent keyev2(ET_KEY_PRESSED, VKEY_RETURN, EF_NONE);
44 EXPECT_EQ(13, keyev2.GetCharacter()); 44 EXPECT_EQ(13, keyev2.GetCharacter());
45 45
46 #if defined(USE_X11) 46 #if defined(USE_X11)
47 // For X11, test the functions with native_event() as well. crbug.com/107837 47 // For X11, test the functions with native_event() as well. crbug.com/107837
48 ScopedXI2Event event; 48 ScopedXI2Event event;
49 event.InitKeyEvent(ET_KEY_PRESSED, VKEY_RETURN, EF_CONTROL_DOWN); 49 event.InitKeyEvent(ET_KEY_PRESSED, VKEY_RETURN, EF_CONTROL_DOWN);
50 KeyEvent keyev3(event, false); 50 KeyEvent keyev3(event);
51 EXPECT_EQ(10, keyev3.GetCharacter()); 51 EXPECT_EQ(10, keyev3.GetCharacter());
52 52
53 event.InitKeyEvent(ET_KEY_PRESSED, VKEY_RETURN, 0); 53 event.InitKeyEvent(ET_KEY_PRESSED, VKEY_RETURN, EF_NONE);
54 KeyEvent keyev4(event, false); 54 KeyEvent keyev4(event);
55 EXPECT_EQ(13, keyev4.GetCharacter()); 55 EXPECT_EQ(13, keyev4.GetCharacter());
56 #endif 56 #endif
57 } 57 }
58 58
59 TEST(EventTest, ClickCount) { 59 TEST(EventTest, ClickCount) {
60 const gfx::Point origin(0, 0); 60 const gfx::Point origin(0, 0);
61 MouseEvent mouseev(ET_MOUSE_PRESSED, origin, origin, 0, 0); 61 MouseEvent mouseev(ET_MOUSE_PRESSED, origin, origin, 0, 0);
62 for (int i = 1; i <=3 ; ++i) { 62 for (int i = 1; i <=3 ; ++i) {
63 mouseev.SetClickCount(i); 63 mouseev.SetClickCount(i);
64 EXPECT_EQ(i, mouseev.GetClickCount()); 64 EXPECT_EQ(i, mouseev.GetClickCount());
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 { VKEY_OEM_COMMA, EF_SHIFT_DOWN, '<' }, 231 { VKEY_OEM_COMMA, EF_SHIFT_DOWN, '<' },
232 { VKEY_OEM_PERIOD, EF_CONTROL_DOWN, '\0' }, 232 { VKEY_OEM_PERIOD, EF_CONTROL_DOWN, '\0' },
233 { VKEY_OEM_PERIOD, EF_SHIFT_DOWN, '>' }, 233 { VKEY_OEM_PERIOD, EF_SHIFT_DOWN, '>' },
234 { VKEY_OEM_3, EF_CONTROL_DOWN, '\0' }, 234 { VKEY_OEM_3, EF_CONTROL_DOWN, '\0' },
235 { VKEY_OEM_3, EF_SHIFT_DOWN, '~' }, 235 { VKEY_OEM_3, EF_SHIFT_DOWN, '~' },
236 }; 236 };
237 237
238 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestData); ++i) { 238 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestData); ++i) {
239 KeyEvent key(ET_KEY_PRESSED, 239 KeyEvent key(ET_KEY_PRESSED,
240 kTestData[i].key_code, 240 kTestData[i].key_code,
241 kTestData[i].flags, 241 kTestData[i].flags);
242 false);
243 EXPECT_EQ(kTestData[i].character, key.GetCharacter()) 242 EXPECT_EQ(kTestData[i].character, key.GetCharacter())
244 << " Index:" << i << " key_code:" << kTestData[i].key_code; 243 << " Index:" << i << " key_code:" << kTestData[i].key_code;
245 } 244 }
246 } 245 }
247 246
248 TEST(EventTest, KeyEventDirectUnicode) { 247 TEST(EventTest, KeyEventDirectUnicode) {
249 KeyEvent key(ET_KEY_PRESSED, VKEY_UNKNOWN, EF_SHIFT_DOWN, false); 248 KeyEvent key(0x1234U, ui::VKEY_UNKNOWN, ui::EF_NONE);
250 key.set_character(0x1234U);
251 EXPECT_EQ(0x1234U, key.GetCharacter()); 249 EXPECT_EQ(0x1234U, key.GetCharacter());
252 KeyEvent key2(ET_KEY_RELEASED, VKEY_UNKNOWN, EF_CONTROL_DOWN, false); 250 EXPECT_EQ(ET_KEY_PRESSED, key.type());
253 key2.set_character(0x4321U); 251 EXPECT_TRUE(key.is_char());
254 EXPECT_EQ(0x4321U, key2.GetCharacter());
255 } 252 }
256 253
257 TEST(EventTest, NormalizeKeyEventFlags) { 254 TEST(EventTest, NormalizeKeyEventFlags) {
258 #if defined(USE_X11) 255 #if defined(USE_X11)
259 // Normalize flags when KeyEvent is created from XEvent. 256 // Normalize flags when KeyEvent is created from XEvent.
260 ScopedXI2Event event; 257 ScopedXI2Event event;
261 { 258 {
262 event.InitKeyEvent(ET_KEY_PRESSED, VKEY_SHIFT, EF_SHIFT_DOWN); 259 event.InitKeyEvent(ET_KEY_PRESSED, VKEY_SHIFT, EF_SHIFT_DOWN);
263 KeyEvent keyev(event, false); 260 KeyEvent keyev(event);
264 EXPECT_EQ(EF_SHIFT_DOWN, keyev.flags()); 261 EXPECT_EQ(EF_SHIFT_DOWN, keyev.flags());
265 } 262 }
266 { 263 {
267 event.InitKeyEvent(ET_KEY_RELEASED, VKEY_SHIFT, EF_SHIFT_DOWN); 264 event.InitKeyEvent(ET_KEY_RELEASED, VKEY_SHIFT, EF_SHIFT_DOWN);
268 KeyEvent keyev(event, false); 265 KeyEvent keyev(event);
269 EXPECT_EQ(EF_NONE, keyev.flags()); 266 EXPECT_EQ(EF_NONE, keyev.flags());
270 } 267 }
271 { 268 {
272 event.InitKeyEvent(ET_KEY_PRESSED, VKEY_CONTROL, EF_CONTROL_DOWN); 269 event.InitKeyEvent(ET_KEY_PRESSED, VKEY_CONTROL, EF_CONTROL_DOWN);
273 KeyEvent keyev(event, false); 270 KeyEvent keyev(event);
274 EXPECT_EQ(EF_CONTROL_DOWN, keyev.flags()); 271 EXPECT_EQ(EF_CONTROL_DOWN, keyev.flags());
275 } 272 }
276 { 273 {
277 event.InitKeyEvent(ET_KEY_RELEASED, VKEY_CONTROL, EF_CONTROL_DOWN); 274 event.InitKeyEvent(ET_KEY_RELEASED, VKEY_CONTROL, EF_CONTROL_DOWN);
278 KeyEvent keyev(event, false); 275 KeyEvent keyev(event);
279 EXPECT_EQ(EF_NONE, keyev.flags()); 276 EXPECT_EQ(EF_NONE, keyev.flags());
280 } 277 }
281 { 278 {
282 event.InitKeyEvent(ET_KEY_PRESSED, VKEY_MENU, EF_ALT_DOWN); 279 event.InitKeyEvent(ET_KEY_PRESSED, VKEY_MENU, EF_ALT_DOWN);
283 KeyEvent keyev(event, false); 280 KeyEvent keyev(event);
284 EXPECT_EQ(EF_ALT_DOWN, keyev.flags()); 281 EXPECT_EQ(EF_ALT_DOWN, keyev.flags());
285 } 282 }
286 { 283 {
287 event.InitKeyEvent(ET_KEY_RELEASED, VKEY_MENU, EF_ALT_DOWN); 284 event.InitKeyEvent(ET_KEY_RELEASED, VKEY_MENU, EF_ALT_DOWN);
288 KeyEvent keyev(event, false); 285 KeyEvent keyev(event);
289 EXPECT_EQ(EF_NONE, keyev.flags()); 286 EXPECT_EQ(EF_NONE, keyev.flags());
290 } 287 }
291 #endif 288 #endif
292 289
293 // Do not normalize flags for synthesized events without 290 // Do not normalize flags for synthesized events without
294 // KeyEvent::NormalizeFlags called explicitly. 291 // KeyEvent::NormalizeFlags called explicitly.
295 { 292 {
296 KeyEvent keyev(ET_KEY_PRESSED, VKEY_SHIFT, EF_SHIFT_DOWN, false); 293 KeyEvent keyev(ET_KEY_PRESSED, VKEY_SHIFT, EF_SHIFT_DOWN);
297 EXPECT_EQ(EF_SHIFT_DOWN, keyev.flags()); 294 EXPECT_EQ(EF_SHIFT_DOWN, keyev.flags());
298 } 295 }
299 { 296 {
300 KeyEvent keyev(ET_KEY_RELEASED, VKEY_SHIFT, EF_SHIFT_DOWN, false); 297 KeyEvent keyev(ET_KEY_RELEASED, VKEY_SHIFT, EF_SHIFT_DOWN);
301 EXPECT_EQ(EF_SHIFT_DOWN, keyev.flags()); 298 EXPECT_EQ(EF_SHIFT_DOWN, keyev.flags());
302 keyev.NormalizeFlags(); 299 keyev.NormalizeFlags();
303 EXPECT_EQ(EF_NONE, keyev.flags()); 300 EXPECT_EQ(EF_NONE, keyev.flags());
304 } 301 }
305 { 302 {
306 KeyEvent keyev(ET_KEY_PRESSED, VKEY_CONTROL, EF_CONTROL_DOWN, false); 303 KeyEvent keyev(ET_KEY_PRESSED, VKEY_CONTROL, EF_CONTROL_DOWN);
307 EXPECT_EQ(EF_CONTROL_DOWN, keyev.flags()); 304 EXPECT_EQ(EF_CONTROL_DOWN, keyev.flags());
308 } 305 }
309 { 306 {
310 KeyEvent keyev(ET_KEY_RELEASED, VKEY_CONTROL, EF_CONTROL_DOWN, false); 307 KeyEvent keyev(ET_KEY_RELEASED, VKEY_CONTROL, EF_CONTROL_DOWN);
311 EXPECT_EQ(EF_CONTROL_DOWN, keyev.flags()); 308 EXPECT_EQ(EF_CONTROL_DOWN, keyev.flags());
312 keyev.NormalizeFlags(); 309 keyev.NormalizeFlags();
313 EXPECT_EQ(EF_NONE, keyev.flags()); 310 EXPECT_EQ(EF_NONE, keyev.flags());
314 } 311 }
315 { 312 {
316 KeyEvent keyev(ET_KEY_PRESSED, VKEY_MENU, EF_ALT_DOWN, false); 313 KeyEvent keyev(ET_KEY_PRESSED, VKEY_MENU, EF_ALT_DOWN);
317 EXPECT_EQ(EF_ALT_DOWN, keyev.flags()); 314 EXPECT_EQ(EF_ALT_DOWN, keyev.flags());
318 } 315 }
319 { 316 {
320 KeyEvent keyev(ET_KEY_RELEASED, VKEY_MENU, EF_ALT_DOWN, false); 317 KeyEvent keyev(ET_KEY_RELEASED, VKEY_MENU, EF_ALT_DOWN);
321 EXPECT_EQ(EF_ALT_DOWN, keyev.flags()); 318 EXPECT_EQ(EF_ALT_DOWN, keyev.flags());
322 keyev.NormalizeFlags(); 319 keyev.NormalizeFlags();
323 EXPECT_EQ(EF_NONE, keyev.flags()); 320 EXPECT_EQ(EF_NONE, keyev.flags());
324 } 321 }
325 } 322 }
326 323
327 TEST(EventTest, KeyEventCopy) { 324 TEST(EventTest, KeyEventCopy) {
328 KeyEvent key(ET_KEY_PRESSED, VKEY_A, EF_NONE, false); 325 KeyEvent key(ET_KEY_PRESSED, VKEY_A, EF_NONE);
329 scoped_ptr<KeyEvent> copied_key(new KeyEvent(key)); 326 scoped_ptr<KeyEvent> copied_key(new KeyEvent(key));
330 EXPECT_EQ(copied_key->type(), key.type()); 327 EXPECT_EQ(copied_key->type(), key.type());
331 EXPECT_EQ(copied_key->key_code(), key.key_code()); 328 EXPECT_EQ(copied_key->key_code(), key.key_code());
332 } 329 }
333 330
334 TEST(EventTest, KeyEventCode) { 331 TEST(EventTest, KeyEventCode) {
335 KeycodeConverter* conv = KeycodeConverter::GetInstance(); 332 KeycodeConverter* conv = KeycodeConverter::GetInstance();
336 333
337 const char kCodeForSpace[] = "Space"; 334 const char kCodeForSpace[] = "Space";
338 const uint16 kNativeCodeSpace = conv->CodeToNativeKeycode(kCodeForSpace); 335 const uint16 kNativeCodeSpace = conv->CodeToNativeKeycode(kCodeForSpace);
339 ASSERT_NE(conv->InvalidNativeKeycode(), kNativeCodeSpace); 336 ASSERT_NE(conv->InvalidNativeKeycode(), kNativeCodeSpace);
340 337
341 { 338 {
342 KeyEvent key(ET_KEY_PRESSED, VKEY_SPACE, kCodeForSpace, EF_NONE, false); 339 KeyEvent key(ET_KEY_PRESSED, VKEY_SPACE, kCodeForSpace, EF_NONE);
343 EXPECT_EQ(kCodeForSpace, key.code()); 340 EXPECT_EQ(kCodeForSpace, key.code());
344 } 341 }
345 { 342 {
346 // Regardless the KeyEvent.key_code (VKEY_RETURN), code should be 343 // Regardless the KeyEvent.key_code (VKEY_RETURN), code should be
347 // the specified value. 344 // the specified value.
348 KeyEvent key(ET_KEY_PRESSED, VKEY_RETURN, kCodeForSpace, EF_NONE, false); 345 KeyEvent key(ET_KEY_PRESSED, VKEY_RETURN, kCodeForSpace, EF_NONE);
349 EXPECT_EQ(kCodeForSpace, key.code()); 346 EXPECT_EQ(kCodeForSpace, key.code());
350 } 347 }
351 { 348 {
352 // If the synthetic event is initialized without code, it returns 349 // If the synthetic event is initialized without code, it returns
353 // an empty string. 350 // an empty string.
354 // TODO(komatsu): Fill a fallback value assuming the US keyboard layout. 351 // TODO(komatsu): Fill a fallback value assuming the US keyboard layout.
355 KeyEvent key(ET_KEY_PRESSED, VKEY_SPACE, EF_NONE, false); 352 KeyEvent key(ET_KEY_PRESSED, VKEY_SPACE, EF_NONE);
356 EXPECT_TRUE(key.code().empty()); 353 EXPECT_TRUE(key.code().empty());
357 } 354 }
358 #if defined(USE_X11) 355 #if defined(USE_X11)
359 { 356 {
360 // KeyEvent converts from the native keycode (XKB) to the code. 357 // KeyEvent converts from the native keycode (XKB) to the code.
361 ScopedXI2Event xevent; 358 ScopedXI2Event xevent;
362 xevent.InitKeyEvent(ET_KEY_PRESSED, VKEY_SPACE, kNativeCodeSpace); 359 xevent.InitKeyEvent(ET_KEY_PRESSED, VKEY_SPACE, kNativeCodeSpace);
363 KeyEvent key(xevent, false); 360 KeyEvent key(xevent);
364 EXPECT_EQ(kCodeForSpace, key.code()); 361 EXPECT_EQ(kCodeForSpace, key.code());
365 } 362 }
366 #endif // USE_X11 363 #endif // USE_X11
367 #if defined(OS_WIN) 364 #if defined(OS_WIN)
368 { 365 {
369 // Test a non extended key. 366 // Test a non extended key.
370 ASSERT_EQ((kNativeCodeSpace & 0xFF), kNativeCodeSpace); 367 ASSERT_EQ((kNativeCodeSpace & 0xFF), kNativeCodeSpace);
371 368
372 const LPARAM lParam = GetLParamFromScanCode(kNativeCodeSpace); 369 const LPARAM lParam = GetLParamFromScanCode(kNativeCodeSpace);
373 MSG native_event = { NULL, WM_KEYUP, VKEY_SPACE, lParam }; 370 MSG native_event = { NULL, WM_KEYUP, VKEY_SPACE, lParam };
374 KeyEvent key(native_event, false); 371 KeyEvent key(native_event);
375 372
376 // KeyEvent converts from the native keycode (scan code) to the code. 373 // KeyEvent converts from the native keycode (scan code) to the code.
377 EXPECT_EQ(kCodeForSpace, key.code()); 374 EXPECT_EQ(kCodeForSpace, key.code());
378 } 375 }
379 { 376 {
380 const char kCodeForHome[] = "Home"; 377 const char kCodeForHome[] = "Home";
381 const uint16 kNativeCodeHome = 0xe047; 378 const uint16 kNativeCodeHome = 0xe047;
382 379
383 // 'Home' is an extended key with 0xe000 bits. 380 // 'Home' is an extended key with 0xe000 bits.
384 ASSERT_NE((kNativeCodeHome & 0xFF), kNativeCodeHome); 381 ASSERT_NE((kNativeCodeHome & 0xFF), kNativeCodeHome);
385 const LPARAM lParam = GetLParamFromScanCode(kNativeCodeHome); 382 const LPARAM lParam = GetLParamFromScanCode(kNativeCodeHome);
386 383
387 MSG native_event = { NULL, WM_KEYUP, VKEY_HOME, lParam }; 384 MSG native_event = { NULL, WM_KEYUP, VKEY_HOME, lParam };
388 KeyEvent key(native_event, false); 385 KeyEvent key(native_event);
389 386
390 // KeyEvent converts from the native keycode (scan code) to the code. 387 // KeyEvent converts from the native keycode (scan code) to the code.
391 EXPECT_EQ(kCodeForHome, key.code()); 388 EXPECT_EQ(kCodeForHome, key.code());
392 } 389 }
393 #endif // OS_WIN 390 #endif // OS_WIN
394 } 391 }
395 392
396 #if defined(USE_X11) || defined(OS_WIN) 393 #if defined(USE_X11) || defined(OS_WIN)
397 TEST(EventTest, AutoRepeat) { 394 TEST(EventTest, AutoRepeat) {
398 KeycodeConverter* conv = KeycodeConverter::GetInstance(); 395 KeycodeConverter* conv = KeycodeConverter::GetInstance();
(...skipping 13 matching lines...) Expand all
412 // IBUS-GTK uses the mask (1 << 25) to detect reposted event. 409 // IBUS-GTK uses the mask (1 << 25) to detect reposted event.
413 static_cast<XEvent*>(native_event_a_pressed_nonstandard_state)->xkey.state |= 410 static_cast<XEvent*>(native_event_a_pressed_nonstandard_state)->xkey.state |=
414 1 << 25; 411 1 << 25;
415 #elif defined(OS_WIN) 412 #elif defined(OS_WIN)
416 const LPARAM lParam_a = GetLParamFromScanCode(kNativeCodeA); 413 const LPARAM lParam_a = GetLParamFromScanCode(kNativeCodeA);
417 const LPARAM lParam_b = GetLParamFromScanCode(kNativeCodeB); 414 const LPARAM lParam_b = GetLParamFromScanCode(kNativeCodeB);
418 MSG native_event_a_pressed = { NULL, WM_KEYDOWN, VKEY_A, lParam_a }; 415 MSG native_event_a_pressed = { NULL, WM_KEYDOWN, VKEY_A, lParam_a };
419 MSG native_event_a_released = { NULL, WM_KEYUP, VKEY_A, lParam_a }; 416 MSG native_event_a_released = { NULL, WM_KEYUP, VKEY_A, lParam_a };
420 MSG native_event_b_pressed = { NULL, WM_KEYUP, VKEY_B, lParam_b }; 417 MSG native_event_b_pressed = { NULL, WM_KEYUP, VKEY_B, lParam_b };
421 #endif 418 #endif
422 KeyEvent key_a1(native_event_a_pressed, false); 419 KeyEvent key_a1(native_event_a_pressed);
423 EXPECT_FALSE(key_a1.IsRepeat()); 420 EXPECT_FALSE(key_a1.IsRepeat());
424 KeyEvent key_a1_released(native_event_a_released, false); 421 KeyEvent key_a1_released(native_event_a_released);
425 EXPECT_FALSE(key_a1_released.IsRepeat()); 422 EXPECT_FALSE(key_a1_released.IsRepeat());
426 423
427 KeyEvent key_a2(native_event_a_pressed, false); 424 KeyEvent key_a2(native_event_a_pressed);
428 EXPECT_FALSE(key_a2.IsRepeat()); 425 EXPECT_FALSE(key_a2.IsRepeat());
429 KeyEvent key_a2_repeated(native_event_a_pressed, false); 426 KeyEvent key_a2_repeated(native_event_a_pressed);
430 EXPECT_TRUE(key_a2_repeated.IsRepeat()); 427 EXPECT_TRUE(key_a2_repeated.IsRepeat());
431 KeyEvent key_a2_released(native_event_a_released, false); 428 KeyEvent key_a2_released(native_event_a_released);
432 EXPECT_FALSE(key_a2_released.IsRepeat()); 429 EXPECT_FALSE(key_a2_released.IsRepeat());
433 430
434 KeyEvent key_a3(native_event_a_pressed, false); 431 KeyEvent key_a3(native_event_a_pressed);
435 EXPECT_FALSE(key_a3.IsRepeat()); 432 EXPECT_FALSE(key_a3.IsRepeat());
436 KeyEvent key_b(native_event_b_pressed, false); 433 KeyEvent key_b(native_event_b_pressed);
437 EXPECT_FALSE(key_b.IsRepeat()); 434 EXPECT_FALSE(key_b.IsRepeat());
438 KeyEvent key_a3_again(native_event_a_pressed, false); 435 KeyEvent key_a3_again(native_event_a_pressed);
439 EXPECT_FALSE(key_a3_again.IsRepeat()); 436 EXPECT_FALSE(key_a3_again.IsRepeat());
440 KeyEvent key_a3_repeated(native_event_a_pressed, false); 437 KeyEvent key_a3_repeated(native_event_a_pressed);
441 EXPECT_TRUE(key_a3_repeated.IsRepeat()); 438 EXPECT_TRUE(key_a3_repeated.IsRepeat());
442 KeyEvent key_a3_repeated2(native_event_a_pressed, false); 439 KeyEvent key_a3_repeated2(native_event_a_pressed);
443 EXPECT_TRUE(key_a3_repeated2.IsRepeat()); 440 EXPECT_TRUE(key_a3_repeated2.IsRepeat());
444 KeyEvent key_a3_released(native_event_a_released, false); 441 KeyEvent key_a3_released(native_event_a_released);
445 EXPECT_FALSE(key_a3_released.IsRepeat()); 442 EXPECT_FALSE(key_a3_released.IsRepeat());
446 443
447 #if defined(USE_X11) 444 #if defined(USE_X11)
448 KeyEvent key_a4_pressed(native_event_a_pressed, false); 445 KeyEvent key_a4_pressed(native_event_a_pressed);
449 EXPECT_FALSE(key_a4_pressed.IsRepeat()); 446 EXPECT_FALSE(key_a4_pressed.IsRepeat());
450 447
451 KeyEvent key_a4_pressed_nonstandard_state( 448 KeyEvent key_a4_pressed_nonstandard_state(
452 native_event_a_pressed_nonstandard_state, false); 449 native_event_a_pressed_nonstandard_state);
453 EXPECT_FALSE(key_a4_pressed_nonstandard_state.IsRepeat()); 450 EXPECT_FALSE(key_a4_pressed_nonstandard_state.IsRepeat());
454 #endif 451 #endif
455 } 452 }
456 #endif // USE_X11 || OS_WIN 453 #endif // USE_X11 || OS_WIN
457 454
458 } // namespace ui 455 } // namespace ui
OLDNEW
« no previous file with comments | « ui/events/event_processor_unittest.cc ('k') | ui/events/event_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698