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

Side by Side Diff: chrome/browser/browser_keyevents_browsertest.cc

Issue 3361003: Revert 58215 - Revert 58186 - Move the keyboard files from base/ to app/.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 3 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "build/build_config.h" 5 #include "build/build_config.h"
6 6
7 #include "app/keyboard_codes.h"
7 #include "base/basictypes.h" 8 #include "base/basictypes.h"
8 #include "base/keyboard_codes.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
11 #include "base/string_util.h" 11 #include "base/string_util.h"
12 #include "base/utf_string_conversions.h" 12 #include "base/utf_string_conversions.h"
13 #include "base/values.h" 13 #include "base/values.h"
14 #include "chrome/browser/automation/ui_controls.h" 14 #include "chrome/browser/automation/ui_controls.h"
15 #include "chrome/browser/browser.h" 15 #include "chrome/browser/browser.h"
16 #include "chrome/browser/browser_window.h" 16 #include "chrome/browser/browser_window.h"
17 #include "chrome/browser/dom_operation_notification_details.h" 17 #include "chrome/browser/dom_operation_notification_details.h"
18 #include "chrome/browser/renderer_host/render_view_host.h" 18 #include "chrome/browser/renderer_host/render_view_host.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 // the result of keydown, keypress, keyup and textInput events. 56 // the result of keydown, keypress, keyup and textInput events.
57 // For keydown, keypress and keyup events, the format of the result string is: 57 // For keydown, keypress and keyup events, the format of the result string is:
58 // <type> <keyCode> <charCode> <ctrlKey> <shiftKey> <altKey> <commandKey> 58 // <type> <keyCode> <charCode> <ctrlKey> <shiftKey> <altKey> <commandKey>
59 // where <type> may be 'D' (keydown), 'P' (keypress) or 'U' (keyup). 59 // where <type> may be 'D' (keydown), 'P' (keypress) or 'U' (keyup).
60 // <ctrlKey>, <shiftKey> <altKey> and <commandKey> are boolean value indicating 60 // <ctrlKey>, <shiftKey> <altKey> and <commandKey> are boolean value indicating
61 // the state of corresponding modifier key. 61 // the state of corresponding modifier key.
62 // For textInput event, the format is: T <text>, where <text> is the text to be 62 // For textInput event, the format is: T <text>, where <text> is the text to be
63 // input. 63 // input.
64 // Please refer to chrome/test/data/keyevents_test.html for details. 64 // Please refer to chrome/test/data/keyevents_test.html for details.
65 struct KeyEventTestData { 65 struct KeyEventTestData {
66 base::KeyboardCode key; 66 app::KeyboardCode key;
67 bool ctrl; 67 bool ctrl;
68 bool shift; 68 bool shift;
69 bool alt; 69 bool alt;
70 bool command; 70 bool command;
71 71
72 bool suppress_keydown; 72 bool suppress_keydown;
73 bool suppress_keypress; 73 bool suppress_keypress;
74 bool suppress_keyup; 74 bool suppress_keyup;
75 bool suppress_textinput; 75 bool suppress_textinput;
76 76
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 *native_window = window->GetNativeHandle(); 135 *native_window = window->GetNativeHandle();
136 ASSERT_TRUE(*native_window); 136 ASSERT_TRUE(*native_window);
137 } 137 }
138 138
139 void BringBrowserWindowToFront() { 139 void BringBrowserWindowToFront() {
140 gfx::NativeWindow window = NULL; 140 gfx::NativeWindow window = NULL;
141 ASSERT_NO_FATAL_FAILURE(GetNativeWindow(&window)); 141 ASSERT_NO_FATAL_FAILURE(GetNativeWindow(&window));
142 ui_test_utils::ShowAndFocusNativeWindow(window); 142 ui_test_utils::ShowAndFocusNativeWindow(window);
143 } 143 }
144 144
145 void SendKey(base::KeyboardCode key, 145 void SendKey(app::KeyboardCode key,
146 bool control, 146 bool control,
147 bool shift, 147 bool shift,
148 bool alt, 148 bool alt,
149 bool command) { 149 bool command) {
150 gfx::NativeWindow window = NULL; 150 gfx::NativeWindow window = NULL;
151 ASSERT_NO_FATAL_FAILURE(GetNativeWindow(&window)); 151 ASSERT_NO_FATAL_FAILURE(GetNativeWindow(&window));
152 ASSERT_TRUE(ui_test_utils::SendKeyPressSync( 152 ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
153 window, key, control, shift, alt, command)); 153 window, key, control, shift, alt, command));
154 } 154 }
155 155
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 desc.append(data.result[i]); 308 desc.append(data.result[i]);
309 desc.append("\n"); 309 desc.append("\n");
310 } 310 }
311 return desc; 311 return desc;
312 } 312 }
313 }; 313 };
314 314
315 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, NormalKeyEvents) { 315 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, NormalKeyEvents) {
316 static const KeyEventTestData kTestNoInput[] = { 316 static const KeyEventTestData kTestNoInput[] = {
317 // a 317 // a
318 { base::VKEY_A, false, false, false, false, 318 { app::VKEY_A, false, false, false, false,
319 false, false, false, false, 3, 319 false, false, false, false, 3,
320 { "D 65 0 false false false false", 320 { "D 65 0 false false false false",
321 "P 97 97 false false false false", 321 "P 97 97 false false false false",
322 "U 65 0 false false false false" } }, 322 "U 65 0 false false false false" } },
323 // shift-a 323 // shift-a
324 { base::VKEY_A, false, true, false, false, 324 { app::VKEY_A, false, true, false, false,
325 false, false, false, false, 5, 325 false, false, false, false, 5,
326 { "D 16 0 false true false false", 326 { "D 16 0 false true false false",
327 "D 65 0 false true false false", 327 "D 65 0 false true false false",
328 "P 65 65 false true false false", 328 "P 65 65 false true false false",
329 "U 65 0 false true false false", 329 "U 65 0 false true false false",
330 "U 16 0 false true false false" } }, 330 "U 16 0 false true false false" } },
331 // a, suppress keydown 331 // a, suppress keydown
332 { base::VKEY_A, false, false, false, false, 332 { app::VKEY_A, false, false, false, false,
333 true, false, false, false, 2, 333 true, false, false, false, 2,
334 { "D 65 0 false false false false", 334 { "D 65 0 false false false false",
335 "U 65 0 false false false false" } }, 335 "U 65 0 false false false false" } },
336 }; 336 };
337 337
338 static const KeyEventTestData kTestWithInput[] = { 338 static const KeyEventTestData kTestWithInput[] = {
339 // a 339 // a
340 { base::VKEY_A, false, false, false, false, 340 { app::VKEY_A, false, false, false, false,
341 false, false, false, false, 4, 341 false, false, false, false, 4,
342 { "D 65 0 false false false false", 342 { "D 65 0 false false false false",
343 "P 97 97 false false false false", 343 "P 97 97 false false false false",
344 "T a", 344 "T a",
345 "U 65 0 false false false false" } }, 345 "U 65 0 false false false false" } },
346 // shift-a 346 // shift-a
347 { base::VKEY_A, false, true, false, false, 347 { app::VKEY_A, false, true, false, false,
348 false, false, false, false, 6, 348 false, false, false, false, 6,
349 { "D 16 0 false true false false", 349 { "D 16 0 false true false false",
350 "D 65 0 false true false false", 350 "D 65 0 false true false false",
351 "P 65 65 false true false false", 351 "P 65 65 false true false false",
352 "T A", 352 "T A",
353 "U 65 0 false true false false", 353 "U 65 0 false true false false",
354 "U 16 0 false true false false" } }, 354 "U 16 0 false true false false" } },
355 // a, suppress keydown 355 // a, suppress keydown
356 { base::VKEY_A, false, false, false, false, 356 { app::VKEY_A, false, false, false, false,
357 true, false, false, false, 2, 357 true, false, false, false, 2,
358 { "D 65 0 false false false false", 358 { "D 65 0 false false false false",
359 "U 65 0 false false false false" } }, 359 "U 65 0 false false false false" } },
360 // a, suppress keypress 360 // a, suppress keypress
361 { base::VKEY_A, false, false, false, false, 361 { app::VKEY_A, false, false, false, false,
362 false, true, false, false, 3, 362 false, true, false, false, 3,
363 { "D 65 0 false false false false", 363 { "D 65 0 false false false false",
364 "P 97 97 false false false false", 364 "P 97 97 false false false false",
365 "U 65 0 false false false false" } }, 365 "U 65 0 false false false false" } },
366 // a, suppress textInput 366 // a, suppress textInput
367 { base::VKEY_A, false, false, false, false, 367 { app::VKEY_A, false, false, false, false,
368 false, false, false, true, 4, 368 false, false, false, true, 4,
369 { "D 65 0 false false false false", 369 { "D 65 0 false false false false",
370 "P 97 97 false false false false", 370 "P 97 97 false false false false",
371 "T a", 371 "T a",
372 "U 65 0 false false false false" } }, 372 "U 65 0 false false false false" } },
373 }; 373 };
374 374
375 ASSERT_TRUE(test_server()->Start()); 375 ASSERT_TRUE(test_server()->Start());
376 376
377 BringBrowserWindowToFront(); 377 BringBrowserWindowToFront();
(...skipping 25 matching lines...) Expand all
403 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestWithInput[i])) 403 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestWithInput[i]))
404 << "kTestWithInput[" << i << "] in password box failed:\n" 404 << "kTestWithInput[" << i << "] in password box failed:\n"
405 << GetTestDataDescription(kTestWithInput[i]); 405 << GetTestDataDescription(kTestWithInput[i]);
406 } 406 }
407 EXPECT_NO_FATAL_FAILURE(CheckTextBoxValue(tab_index, L"B", L"aA")); 407 EXPECT_NO_FATAL_FAILURE(CheckTextBoxValue(tab_index, L"B", L"aA"));
408 } 408 }
409 409
410 #if defined(OS_WIN) || defined(OS_LINUX) 410 #if defined(OS_WIN) || defined(OS_LINUX)
411 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, CtrlKeyEvents) { 411 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, CtrlKeyEvents) {
412 static const KeyEventTestData kTestCtrlF = { 412 static const KeyEventTestData kTestCtrlF = {
413 base::VKEY_F, true, false, false, false, 413 app::VKEY_F, true, false, false, false,
414 false, false, false, false, 2, 414 false, false, false, false, 2,
415 { "D 17 0 true false false false", 415 { "D 17 0 true false false false",
416 "D 70 0 true false false false" } 416 "D 70 0 true false false false" }
417 }; 417 };
418 418
419 static const KeyEventTestData kTestCtrlFSuppressKeyDown = { 419 static const KeyEventTestData kTestCtrlFSuppressKeyDown = {
420 base::VKEY_F, true, false, false, false, 420 app::VKEY_F, true, false, false, false,
421 true, false, false, false, 4, 421 true, false, false, false, 4,
422 { "D 17 0 true false false false", 422 { "D 17 0 true false false false",
423 "D 70 0 true false false false", 423 "D 70 0 true false false false",
424 "U 70 0 true false false false", 424 "U 70 0 true false false false",
425 "U 17 0 true false false false" } 425 "U 17 0 true false false false" }
426 }; 426 };
427 427
428 // Ctrl+Z doesn't bind to any accelerators, which then should generate a 428 // Ctrl+Z doesn't bind to any accelerators, which then should generate a
429 // keypress event with charCode=26. 429 // keypress event with charCode=26.
430 static const KeyEventTestData kTestCtrlZ = { 430 static const KeyEventTestData kTestCtrlZ = {
431 base::VKEY_Z, true, false, false, false, 431 app::VKEY_Z, true, false, false, false,
432 false, false, false, false, 5, 432 false, false, false, false, 5,
433 { "D 17 0 true false false false", 433 { "D 17 0 true false false false",
434 "D 90 0 true false false false", 434 "D 90 0 true false false false",
435 "P 26 26 true false false false", 435 "P 26 26 true false false false",
436 "U 90 0 true false false false", 436 "U 90 0 true false false false",
437 "U 17 0 true false false false" } 437 "U 17 0 true false false false" }
438 }; 438 };
439 439
440 static const KeyEventTestData kTestCtrlZSuppressKeyDown = { 440 static const KeyEventTestData kTestCtrlZSuppressKeyDown = {
441 base::VKEY_Z, true, false, false, false, 441 app::VKEY_Z, true, false, false, false,
442 true, false, false, false, 4, 442 true, false, false, false, 4,
443 { "D 17 0 true false false false", 443 { "D 17 0 true false false false",
444 "D 90 0 true false false false", 444 "D 90 0 true false false false",
445 "U 90 0 true false false false", 445 "U 90 0 true false false false",
446 "U 17 0 true false false false" } 446 "U 17 0 true false false false" }
447 }; 447 };
448 448
449 // Ctrl+Enter shall generate a keypress event with charCode=10 (LF). 449 // Ctrl+Enter shall generate a keypress event with charCode=10 (LF).
450 static const KeyEventTestData kTestCtrlEnter = { 450 static const KeyEventTestData kTestCtrlEnter = {
451 base::VKEY_RETURN, true, false, false, false, 451 app::VKEY_RETURN, true, false, false, false,
452 false, false, false, false, 5, 452 false, false, false, false, 5,
453 { "D 17 0 true false false false", 453 { "D 17 0 true false false false",
454 "D 13 0 true false false false", 454 "D 13 0 true false false false",
455 "P 10 10 true false false false", 455 "P 10 10 true false false false",
456 "U 13 0 true false false false", 456 "U 13 0 true false false false",
457 "U 17 0 true false false false" } 457 "U 17 0 true false false false" }
458 }; 458 };
459 459
460 ASSERT_TRUE(test_server()->Start()); 460 ASSERT_TRUE(test_server()->Start());
461 461
462 BringBrowserWindowToFront(); 462 BringBrowserWindowToFront();
463 GURL url = test_server()->GetURL(kTestingPage); 463 GURL url = test_server()->GetURL(kTestingPage);
464 ui_test_utils::NavigateToURL(browser(), url); 464 ui_test_utils::NavigateToURL(browser(), url);
465 465
466 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); 466 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER));
467 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); 467 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
468 468
469 int tab_index = browser()->selected_index(); 469 int tab_index = browser()->selected_index();
470 // Press Ctrl+F, which will make the Find box open and request focus. 470 // Press Ctrl+F, which will make the Find box open and request focus.
471 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlF)); 471 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlF));
472 EXPECT_TRUE(IsViewFocused(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD)); 472 EXPECT_TRUE(IsViewFocused(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD));
473 473
474 // Press Escape to close the Find box and move the focus back to the web page. 474 // Press Escape to close the Find box and move the focus back to the web page.
475 ASSERT_NO_FATAL_FAILURE( 475 ASSERT_NO_FATAL_FAILURE(
476 SendKey(base::VKEY_ESCAPE, false, false, false, false)); 476 SendKey(app::VKEY_ESCAPE, false, false, false, false));
477 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); 477 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
478 478
479 // Press Ctrl+F with keydown suppressed shall not open the find box. 479 // Press Ctrl+F with keydown suppressed shall not open the find box.
480 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlFSuppressKeyDown)); 480 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlFSuppressKeyDown));
481 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); 481 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
482 482
483 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlZ)); 483 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlZ));
484 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlZSuppressKeyDown)); 484 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlZSuppressKeyDown));
485 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlEnter)); 485 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlEnter));
486 } 486 }
487 #elif defined(OS_MACOSX) 487 #elif defined(OS_MACOSX)
488 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, CommandKeyEvents) { 488 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, CommandKeyEvents) {
489 static const KeyEventTestData kTestCmdF = { 489 static const KeyEventTestData kTestCmdF = {
490 base::VKEY_F, false, false, false, true, 490 app::VKEY_F, false, false, false, true,
491 false, false, false, false, 2, 491 false, false, false, false, 2,
492 { "D 91 0 false false false true", 492 { "D 91 0 false false false true",
493 "D 70 0 false false false true" } 493 "D 70 0 false false false true" }
494 }; 494 };
495 495
496 // On Mac we don't send key up events when command modifier is down. 496 // On Mac we don't send key up events when command modifier is down.
497 static const KeyEventTestData kTestCmdFSuppressKeyDown = { 497 static const KeyEventTestData kTestCmdFSuppressKeyDown = {
498 base::VKEY_F, false, false, false, true, 498 app::VKEY_F, false, false, false, true,
499 true, false, false, false, 3, 499 true, false, false, false, 3,
500 { "D 91 0 false false false true", 500 { "D 91 0 false false false true",
501 "D 70 0 false false false true", 501 "D 70 0 false false false true",
502 "U 91 0 false false false true" } 502 "U 91 0 false false false true" }
503 }; 503 };
504 504
505 ASSERT_TRUE(test_server()->Start()); 505 ASSERT_TRUE(test_server()->Start());
506 506
507 BringBrowserWindowToFront(); 507 BringBrowserWindowToFront();
508 GURL url = test_server()->GetURL(kTestingPage); 508 GURL url = test_server()->GetURL(kTestingPage);
509 ui_test_utils::NavigateToURL(browser(), url); 509 ui_test_utils::NavigateToURL(browser(), url);
510 510
511 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); 511 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER));
512 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); 512 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
513 513
514 int tab_index = browser()->selected_index(); 514 int tab_index = browser()->selected_index();
515 // Press Cmd+F, which will make the Find box open and request focus. 515 // Press Cmd+F, which will make the Find box open and request focus.
516 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCmdF)); 516 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCmdF));
517 EXPECT_TRUE(IsViewFocused(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD)); 517 EXPECT_TRUE(IsViewFocused(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD));
518 518
519 // Press Escape to close the Find box and move the focus back to the web page. 519 // Press Escape to close the Find box and move the focus back to the web page.
520 ASSERT_NO_FATAL_FAILURE( 520 ASSERT_NO_FATAL_FAILURE(
521 SendKey(base::VKEY_ESCAPE, false, false, false, false)); 521 SendKey(app::VKEY_ESCAPE, false, false, false, false));
522 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); 522 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
523 523
524 // Press Cmd+F with keydown suppressed shall not open the find box. 524 // Press Cmd+F with keydown suppressed shall not open the find box.
525 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCmdFSuppressKeyDown)); 525 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCmdFSuppressKeyDown));
526 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); 526 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
527 } 527 }
528 #endif 528 #endif
529 529
530 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, AccessKeys) { 530 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, AccessKeys) {
531 #if defined(OS_MACOSX) 531 #if defined(OS_MACOSX)
532 // On Mac, access keys use ctrl+alt modifiers. 532 // On Mac, access keys use ctrl+alt modifiers.
533 static const KeyEventTestData kTestAccessA = { 533 static const KeyEventTestData kTestAccessA = {
534 base::VKEY_A, true, false, true, false, 534 app::VKEY_A, true, false, true, false,
535 false, false, false, false, 6, 535 false, false, false, false, 6,
536 { "D 17 0 true false false false", 536 { "D 17 0 true false false false",
537 "D 18 0 true false true false", 537 "D 18 0 true false true false",
538 "D 65 0 true false true false", 538 "D 65 0 true false true false",
539 "U 65 0 true false true false", 539 "U 65 0 true false true false",
540 "U 18 0 true false true false", 540 "U 18 0 true false true false",
541 "U 17 0 true false false false" } 541 "U 17 0 true false false false" }
542 }; 542 };
543 543
544 static const KeyEventTestData kTestAccessDSuppress = { 544 static const KeyEventTestData kTestAccessDSuppress = {
545 base::VKEY_D, true, false, true, false, 545 app::VKEY_D, true, false, true, false,
546 true, true, true, false, 6, 546 true, true, true, false, 6,
547 { "D 17 0 true false false false", 547 { "D 17 0 true false false false",
548 "D 18 0 true false true false", 548 "D 18 0 true false true false",
549 "D 68 0 true false true false", 549 "D 68 0 true false true false",
550 "U 68 0 true false true false", 550 "U 68 0 true false true false",
551 "U 18 0 true false true false", 551 "U 18 0 true false true false",
552 "U 17 0 true false false false" } 552 "U 17 0 true false false false" }
553 }; 553 };
554 554
555 static const KeyEventTestData kTestAccess1 = { 555 static const KeyEventTestData kTestAccess1 = {
556 base::VKEY_1, true, false, true, false, 556 app::VKEY_1, true, false, true, false,
557 false, false, false, false, 6, 557 false, false, false, false, 6,
558 { "D 17 0 true false false false", 558 { "D 17 0 true false false false",
559 "D 18 0 true false true false", 559 "D 18 0 true false true false",
560 "D 49 0 true false true false", 560 "D 49 0 true false true false",
561 "U 49 0 true false true false", 561 "U 49 0 true false true false",
562 "U 18 0 true false true false", 562 "U 18 0 true false true false",
563 "U 17 0 true false false false" } 563 "U 17 0 true false false false" }
564 }; 564 };
565 #else 565 #else
566 static const KeyEventTestData kTestAccessA = { 566 static const KeyEventTestData kTestAccessA = {
567 base::VKEY_A, false, false, true, false, 567 app::VKEY_A, false, false, true, false,
568 false, false, false, false, 4, 568 false, false, false, false, 4,
569 { "D 18 0 false false true false", 569 { "D 18 0 false false true false",
570 "D 65 0 false false true false", 570 "D 65 0 false false true false",
571 "U 65 0 false false true false", 571 "U 65 0 false false true false",
572 "U 18 0 false false true false" } 572 "U 18 0 false false true false" }
573 }; 573 };
574 574
575 static const KeyEventTestData kTestAccessD = { 575 static const KeyEventTestData kTestAccessD = {
576 base::VKEY_D, false, false, true, false, 576 app::VKEY_D, false, false, true, false,
577 false, false, false, false, 2, 577 false, false, false, false, 2,
578 { "D 18 0 false false true false", 578 { "D 18 0 false false true false",
579 "D 68 0 false false true false" } 579 "D 68 0 false false true false" }
580 }; 580 };
581 581
582 static const KeyEventTestData kTestAccessDSuppress = { 582 static const KeyEventTestData kTestAccessDSuppress = {
583 base::VKEY_D, false, false, true, false, 583 app::VKEY_D, false, false, true, false,
584 true, true, true, false, 4, 584 true, true, true, false, 4,
585 { "D 18 0 false false true false", 585 { "D 18 0 false false true false",
586 "D 68 0 false false true false", 586 "D 68 0 false false true false",
587 "U 68 0 false false true false", 587 "U 68 0 false false true false",
588 "U 18 0 false false true false" } 588 "U 18 0 false false true false" }
589 }; 589 };
590 590
591 static const KeyEventTestData kTestAccess1 = { 591 static const KeyEventTestData kTestAccess1 = {
592 base::VKEY_1, false, false, true, false, 592 app::VKEY_1, false, false, true, false,
593 false, false, false, false, 4, 593 false, false, false, false, 4,
594 { "D 18 0 false false true false", 594 { "D 18 0 false false true false",
595 "D 49 0 false false true false", 595 "D 49 0 false false true false",
596 "U 49 0 false false true false", 596 "U 49 0 false false true false",
597 "U 18 0 false false true false" } 597 "U 18 0 false false true false" }
598 }; 598 };
599 #endif 599 #endif
600 600
601 ASSERT_TRUE(test_server()->Start()); 601 ASSERT_TRUE(test_server()->Start());
602 602
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 669
670 BringBrowserWindowToFront(); 670 BringBrowserWindowToFront();
671 GURL url = test_server()->GetURL(kTestingPage); 671 GURL url = test_server()->GetURL(kTestingPage);
672 ui_test_utils::NavigateToURL(browser(), url); 672 ui_test_utils::NavigateToURL(browser(), url);
673 673
674 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); 674 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER));
675 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); 675 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
676 676
677 #if defined(OS_WIN) || defined(TOOLKIT_VIEWS) 677 #if defined(OS_WIN) || defined(TOOLKIT_VIEWS)
678 static const KeyEventTestData kTestCtrlT = { 678 static const KeyEventTestData kTestCtrlT = {
679 base::VKEY_T, true, false, false, false, 679 app::VKEY_T, true, false, false, false,
680 true, false, false, false, 1, 680 true, false, false, false, 1,
681 { "D 17 0 true false false false" } 681 { "D 17 0 true false false false" }
682 }; 682 };
683 683
684 ASSERT_EQ(1, browser()->tab_count()); 684 ASSERT_EQ(1, browser()->tab_count());
685 // Press Ctrl+T, which will open a new tab. 685 // Press Ctrl+T, which will open a new tab.
686 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlT)); 686 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlT));
687 EXPECT_EQ(2, browser()->tab_count()); 687 EXPECT_EQ(2, browser()->tab_count());
688 browser()->SelectNumberedTab(0); 688 browser()->SelectNumberedTab(0);
689 ASSERT_EQ(0, browser()->selected_index()); 689 ASSERT_EQ(0, browser()->selected_index());
690 690
691 int result_length; 691 int result_length;
692 ASSERT_NO_FATAL_FAILURE(GetResultLength(0, &result_length)); 692 ASSERT_NO_FATAL_FAILURE(GetResultLength(0, &result_length));
693 EXPECT_EQ(1, result_length); 693 EXPECT_EQ(1, result_length);
694 694
695 // Reserved accelerators can't be suppressed. 695 // Reserved accelerators can't be suppressed.
696 ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(0, true)); 696 ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(0, true));
697 // Press Ctrl+W, which will close the tab. 697 // Press Ctrl+W, which will close the tab.
698 ASSERT_NO_FATAL_FAILURE(SendKey(base::VKEY_W, true, false, false, false)); 698 ASSERT_NO_FATAL_FAILURE(SendKey(app::VKEY_W, true, false, false, false));
699 EXPECT_EQ(1, browser()->tab_count()); 699 EXPECT_EQ(1, browser()->tab_count());
700 #elif defined(OS_MACOSX) 700 #elif defined(OS_MACOSX)
701 static const KeyEventTestData kTestCmdT = { 701 static const KeyEventTestData kTestCmdT = {
702 base::VKEY_T, false, false, false, true, 702 app::VKEY_T, false, false, false, true,
703 true, false, false, false, 1, 703 true, false, false, false, 1,
704 { "D 91 0 false false false true" } 704 { "D 91 0 false false false true" }
705 }; 705 };
706 706
707 ASSERT_EQ(1, browser()->tab_count()); 707 ASSERT_EQ(1, browser()->tab_count());
708 // Press Cmd+T, which will open a new tab. 708 // Press Cmd+T, which will open a new tab.
709 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCmdT)); 709 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCmdT));
710 EXPECT_EQ(2, browser()->tab_count()); 710 EXPECT_EQ(2, browser()->tab_count());
711 browser()->SelectNumberedTab(0); 711 browser()->SelectNumberedTab(0);
712 ASSERT_EQ(0, browser()->selected_index()); 712 ASSERT_EQ(0, browser()->selected_index());
713 713
714 int result_length; 714 int result_length;
715 ASSERT_NO_FATAL_FAILURE(GetResultLength(0, &result_length)); 715 ASSERT_NO_FATAL_FAILURE(GetResultLength(0, &result_length));
716 EXPECT_EQ(1, result_length); 716 EXPECT_EQ(1, result_length);
717 717
718 // Reserved accelerators can't be suppressed. 718 // Reserved accelerators can't be suppressed.
719 ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(0, true)); 719 ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(0, true));
720 // Press Cmd+W, which will close the tab. 720 // Press Cmd+W, which will close the tab.
721 ASSERT_NO_FATAL_FAILURE(SendKey(base::VKEY_W, false, false, false, true)); 721 ASSERT_NO_FATAL_FAILURE(SendKey(app::VKEY_W, false, false, false, true));
722 EXPECT_EQ(1, browser()->tab_count()); 722 EXPECT_EQ(1, browser()->tab_count());
723 #elif defined(TOOLKIT_GTK) 723 #elif defined(TOOLKIT_GTK)
724 // Ctrl-[a-z] are not treated as reserved accelerators on GTK. 724 // Ctrl-[a-z] are not treated as reserved accelerators on GTK.
725 static const KeyEventTestData kTestCtrlT = { 725 static const KeyEventTestData kTestCtrlT = {
726 base::VKEY_T, true, false, false, false, 726 app::VKEY_T, true, false, false, false,
727 false, false, false, false, 2, 727 false, false, false, false, 2,
728 { "D 17 0 true false false false", 728 { "D 17 0 true false false false",
729 "D 84 0 true false false false" } 729 "D 84 0 true false false false" }
730 }; 730 };
731 731
732 static const KeyEventTestData kTestCtrlPageDown = { 732 static const KeyEventTestData kTestCtrlPageDown = {
733 base::VKEY_NEXT, true, false, false, false, 733 app::VKEY_NEXT, true, false, false, false,
734 true, false, false, false, 1, 734 true, false, false, false, 1,
735 { "D 17 0 true false false false" } 735 { "D 17 0 true false false false" }
736 }; 736 };
737 737
738 static const KeyEventTestData kTestCtrlTab = { 738 static const KeyEventTestData kTestCtrlTab = {
739 base::VKEY_TAB, true, false, false, false, 739 app::VKEY_TAB, true, false, false, false,
740 true, false, false, false, 1, 740 true, false, false, false, 1,
741 { "D 17 0 true false false false" } 741 { "D 17 0 true false false false" }
742 }; 742 };
743 743
744 static const KeyEventTestData kTestCtrlTBlocked = { 744 static const KeyEventTestData kTestCtrlTBlocked = {
745 base::VKEY_T, true, false, false, false, 745 app::VKEY_T, true, false, false, false,
746 true, false, false, false, 4, 746 true, false, false, false, 4,
747 { "D 17 0 true false false false", 747 { "D 17 0 true false false false",
748 "D 84 0 true false false false", 748 "D 84 0 true false false false",
749 "U 84 0 true false false false", 749 "U 84 0 true false false false",
750 "U 17 0 true false false false" } 750 "U 17 0 true false false false" }
751 }; 751 };
752 752
753 static const KeyEventTestData kTestCtrlWBlocked = { 753 static const KeyEventTestData kTestCtrlWBlocked = {
754 base::VKEY_W, true, false, false, false, 754 app::VKEY_W, true, false, false, false,
755 true, false, false, false, 4, 755 true, false, false, false, 4,
756 { "D 17 0 true false false false", 756 { "D 17 0 true false false false",
757 "D 87 0 true false false false", 757 "D 87 0 true false false false",
758 "U 87 0 true false false false", 758 "U 87 0 true false false false",
759 "U 17 0 true false false false" } 759 "U 17 0 true false false false" }
760 }; 760 };
761 761
762 ASSERT_EQ(1, browser()->tab_count()); 762 ASSERT_EQ(1, browser()->tab_count());
763 763
764 // Ctrl+T should be blockable. 764 // Ctrl+T should be blockable.
(...skipping 16 matching lines...) Expand all
781 ASSERT_EQ(1, browser()->selected_index()); 781 ASSERT_EQ(1, browser()->selected_index());
782 782
783 // Ctrl+W should be blockable. 783 // Ctrl+W should be blockable.
784 browser()->SelectNumberedTab(0); 784 browser()->SelectNumberedTab(0);
785 ASSERT_EQ(0, browser()->selected_index()); 785 ASSERT_EQ(0, browser()->selected_index());
786 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlWBlocked)); 786 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlWBlocked));
787 ASSERT_EQ(2, browser()->tab_count()); 787 ASSERT_EQ(2, browser()->tab_count());
788 788
789 // Ctrl+F4 to close the tab. 789 // Ctrl+F4 to close the tab.
790 ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(0, true)); 790 ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(0, true));
791 ASSERT_NO_FATAL_FAILURE(SendKey(base::VKEY_F4, true, false, false, false)); 791 ASSERT_NO_FATAL_FAILURE(SendKey(app::VKEY_F4, true, false, false, false));
792 ASSERT_EQ(1, browser()->tab_count()); 792 ASSERT_EQ(1, browser()->tab_count());
793 #endif 793 #endif
794 } 794 }
795 795
796 #if defined(OS_MACOSX) 796 #if defined(OS_MACOSX)
797 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, EditorKeyBindings) { 797 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, EditorKeyBindings) {
798 static const KeyEventTestData kTestCtrlA = { 798 static const KeyEventTestData kTestCtrlA = {
799 base::VKEY_A, true, false, false, false, 799 app::VKEY_A, true, false, false, false,
800 false, false, false, false, 4, 800 false, false, false, false, 4,
801 { "D 17 0 true false false false", 801 { "D 17 0 true false false false",
802 "D 65 0 true false false false", 802 "D 65 0 true false false false",
803 "U 65 0 true false false false", 803 "U 65 0 true false false false",
804 "U 17 0 true false false false" } 804 "U 17 0 true false false false" }
805 }; 805 };
806 806
807 static const KeyEventTestData kTestCtrlF = { 807 static const KeyEventTestData kTestCtrlF = {
808 base::VKEY_F, true, false, false, false, 808 app::VKEY_F, true, false, false, false,
809 false, false, false, false, 4, 809 false, false, false, false, 4,
810 { "D 17 0 true false false false", 810 { "D 17 0 true false false false",
811 "D 70 0 true false false false", 811 "D 70 0 true false false false",
812 "U 70 0 true false false false", 812 "U 70 0 true false false false",
813 "U 17 0 true false false false" } 813 "U 17 0 true false false false" }
814 }; 814 };
815 815
816 static const KeyEventTestData kTestCtrlK = { 816 static const KeyEventTestData kTestCtrlK = {
817 base::VKEY_K, true, false, false, false, 817 app::VKEY_K, true, false, false, false,
818 false, false, false, false, 4, 818 false, false, false, false, 4,
819 { "D 17 0 true false false false", 819 { "D 17 0 true false false false",
820 "D 75 0 true false false false", 820 "D 75 0 true false false false",
821 "U 75 0 true false false false", 821 "U 75 0 true false false false",
822 "U 17 0 true false false false" } 822 "U 17 0 true false false false" }
823 }; 823 };
824 824
825 ASSERT_TRUE(test_server()->Start()); 825 ASSERT_TRUE(test_server()->Start());
826 826
827 BringBrowserWindowToFront(); 827 BringBrowserWindowToFront();
(...skipping 11 matching lines...) Expand all
839 // Forward one character 839 // Forward one character
840 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlF)); 840 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlF));
841 // Delete to the end of the line. 841 // Delete to the end of the line.
842 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlK)); 842 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlK));
843 EXPECT_NO_FATAL_FAILURE(CheckTextBoxValue(tab_index, L"A", L"H")); 843 EXPECT_NO_FATAL_FAILURE(CheckTextBoxValue(tab_index, L"A", L"H"));
844 } 844 }
845 #endif 845 #endif
846 846
847 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, PageUpDownKeys) { 847 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, PageUpDownKeys) {
848 static const KeyEventTestData kTestPageUp = { 848 static const KeyEventTestData kTestPageUp = {
849 base::VKEY_PRIOR, false, false, false, false, 849 app::VKEY_PRIOR, false, false, false, false,
850 false, false, false, false, 2, 850 false, false, false, false, 2,
851 { "D 33 0 false false false false", 851 { "D 33 0 false false false false",
852 "U 33 0 false false false false" } 852 "U 33 0 false false false false" }
853 }; 853 };
854 854
855 static const KeyEventTestData kTestPageDown = { 855 static const KeyEventTestData kTestPageDown = {
856 base::VKEY_NEXT, false, false, false, false, 856 app::VKEY_NEXT, false, false, false, false,
857 false, false, false, false, 2, 857 false, false, false, false, 2,
858 { "D 34 0 false false false false", 858 { "D 34 0 false false false false",
859 "U 34 0 false false false false" } 859 "U 34 0 false false false false" }
860 }; 860 };
861 861
862 ASSERT_TRUE(test_server()->Start()); 862 ASSERT_TRUE(test_server()->Start());
863 863
864 BringBrowserWindowToFront(); 864 BringBrowserWindowToFront();
865 GURL url = test_server()->GetURL(kTestingPage); 865 GURL url = test_server()->GetURL(kTestingPage);
866 ui_test_utils::NavigateToURL(browser(), url); 866 ui_test_utils::NavigateToURL(browser(), url);
867 867
868 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); 868 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER));
869 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); 869 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
870 870
871 int tab_index = browser()->selected_index(); 871 int tab_index = browser()->selected_index();
872 ASSERT_NO_FATAL_FAILURE(SetFocusedElement(tab_index, L"A")); 872 ASSERT_NO_FATAL_FAILURE(SetFocusedElement(tab_index, L"A"));
873 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestPageUp)); 873 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestPageUp));
874 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestPageDown)); 874 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestPageDown));
875 EXPECT_NO_FATAL_FAILURE(CheckTextBoxValue(tab_index, L"A", L"")); 875 EXPECT_NO_FATAL_FAILURE(CheckTextBoxValue(tab_index, L"A", L""));
876 } 876 }
877 877
878 #if defined(OS_WIN) || defined(TOOLKIT_VIEWS) 878 #if defined(OS_WIN) || defined(TOOLKIT_VIEWS)
879 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, FocusMenuBarByAltKey) { 879 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, FocusMenuBarByAltKey) {
880 static const KeyEventTestData kTestAltKey = { 880 static const KeyEventTestData kTestAltKey = {
881 base::VKEY_MENU, false, false, false, false, 881 app::VKEY_MENU, false, false, false, false,
882 false, false, false, false, 2, 882 false, false, false, false, 2,
883 { "D 18 0 false false true false", 883 { "D 18 0 false false true false",
884 "U 18 0 false false true false" } 884 "U 18 0 false false true false" }
885 }; 885 };
886 886
887 static const KeyEventTestData kTestAltKeySuppress = { 887 static const KeyEventTestData kTestAltKeySuppress = {
888 base::VKEY_MENU, false, false, false, false, 888 app::VKEY_MENU, false, false, false, false,
889 true, false, false, false, 2, 889 true, false, false, false, 2,
890 { "D 18 0 false false true false", 890 { "D 18 0 false false true false",
891 "U 18 0 false false true false" } 891 "U 18 0 false false true false" }
892 }; 892 };
893 893
894 static const KeyEventTestData kTestCtrlAltKey = { 894 static const KeyEventTestData kTestCtrlAltKey = {
895 base::VKEY_MENU, true, false, false, false, 895 app::VKEY_MENU, true, false, false, false,
896 false, false, false, false, 4, 896 false, false, false, false, 4,
897 { "D 17 0 true false false false", 897 { "D 17 0 true false false false",
898 "D 18 0 true false true false", 898 "D 18 0 true false true false",
899 "U 18 0 true false true false", 899 "U 18 0 true false true false",
900 "U 17 0 true false false false" } 900 "U 17 0 true false false false" }
901 }; 901 };
902 902
903 ASSERT_TRUE(test_server()->Start()); 903 ASSERT_TRUE(test_server()->Start());
904 904
905 BringBrowserWindowToFront(); 905 BringBrowserWindowToFront();
(...skipping 15 matching lines...) Expand all
921 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestAltKeySuppress)); 921 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestAltKeySuppress));
922 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); 922 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
923 923
924 // Ctrl+Alt should have no effect. 924 // Ctrl+Alt should have no effect.
925 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlAltKey)); 925 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlAltKey));
926 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); 926 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
927 } 927 }
928 #endif 928 #endif
929 929
930 } // namespace 930 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/browser_focus_uitest.cc ('k') | chrome/browser/chromeos/login/existing_user_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698