OLD | NEW |
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 "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/keyboard_codes.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" |
19 #include "chrome/browser/renderer_host/render_widget_host_view.h" | 19 #include "chrome/browser/renderer_host/render_widget_host_view.h" |
20 #include "chrome/browser/tab_contents/tab_contents.h" | 20 #include "chrome/browser/tab_contents/tab_contents.h" |
21 #include "chrome/browser/tab_contents/tab_contents_view.h" | 21 #include "chrome/browser/tab_contents/tab_contents_view.h" |
22 #include "chrome/common/chrome_paths.h" | 22 #include "chrome/common/chrome_paths.h" |
23 #include "chrome/common/notification_registrar.h" | 23 #include "chrome/common/notification_registrar.h" |
24 #include "chrome/common/notification_service.h" | 24 #include "chrome/common/notification_service.h" |
25 #include "chrome/test/in_process_browser_test.h" | 25 #include "chrome/test/in_process_browser_test.h" |
26 #include "chrome/test/ui_test_utils.h" | 26 #include "chrome/test/ui_test_utils.h" |
| 27 #include "net/test/test_server.h" |
27 | 28 |
28 namespace { | 29 namespace { |
29 | 30 |
30 const char kTestingPage[] = "files/keyevents_test.html"; | 31 const char kTestingPage[] = "files/keyevents_test.html"; |
31 const wchar_t kSuppressEventJS[] = | 32 const wchar_t kSuppressEventJS[] = |
32 L"window.domAutomationController.send(setDefaultAction('%ls', %ls));"; | 33 L"window.domAutomationController.send(setDefaultAction('%ls', %ls));"; |
33 const wchar_t kGetResultJS[] = | 34 const wchar_t kGetResultJS[] = |
34 L"window.domAutomationController.send(keyEventResult[%d]);"; | 35 L"window.domAutomationController.send(keyEventResult[%d]);"; |
35 const wchar_t kGetResultLengthJS[] = | 36 const wchar_t kGetResultLengthJS[] = |
36 L"window.domAutomationController.send(keyEventResult.length);"; | 37 L"window.domAutomationController.send(keyEventResult.length);"; |
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 "U 65 0 false false false false" } }, | 367 "U 65 0 false false false false" } }, |
367 // a, suppress textInput | 368 // a, suppress textInput |
368 { base::VKEY_A, false, false, false, false, | 369 { base::VKEY_A, false, false, false, false, |
369 false, false, false, true, 4, | 370 false, false, false, true, 4, |
370 { "D 65 0 false false false false", | 371 { "D 65 0 false false false false", |
371 "P 97 97 false false false false", | 372 "P 97 97 false false false false", |
372 "T a", | 373 "T a", |
373 "U 65 0 false false false false" } }, | 374 "U 65 0 false false false false" } }, |
374 }; | 375 }; |
375 | 376 |
376 HTTPTestServer* server = StartHTTPServer(); | 377 net::HTTPTestServer* server = StartHTTPServer(); |
377 ASSERT_TRUE(server); | 378 ASSERT_TRUE(server); |
378 | 379 |
379 BringBrowserWindowToFront(); | 380 BringBrowserWindowToFront(); |
380 GURL url = server->TestServerPage(kTestingPage); | 381 GURL url = server->TestServerPage(kTestingPage); |
381 ui_test_utils::NavigateToURL(browser(), url); | 382 ui_test_utils::NavigateToURL(browser(), url); |
382 | 383 |
383 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); | 384 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); |
384 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); | 385 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); |
385 | 386 |
386 int tab_index = browser()->selected_index(); | 387 int tab_index = browser()->selected_index(); |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 static const KeyEventTestData kTestCtrlEnter = { | 453 static const KeyEventTestData kTestCtrlEnter = { |
453 base::VKEY_RETURN, true, false, false, false, | 454 base::VKEY_RETURN, true, false, false, false, |
454 false, false, false, false, 5, | 455 false, false, false, false, 5, |
455 { "D 17 0 true false false false", | 456 { "D 17 0 true false false false", |
456 "D 13 0 true false false false", | 457 "D 13 0 true false false false", |
457 "P 10 10 true false false false", | 458 "P 10 10 true false false false", |
458 "U 13 0 true false false false", | 459 "U 13 0 true false false false", |
459 "U 17 0 true false false false" } | 460 "U 17 0 true false false false" } |
460 }; | 461 }; |
461 | 462 |
462 HTTPTestServer* server = StartHTTPServer(); | 463 net::HTTPTestServer* server = StartHTTPServer(); |
463 ASSERT_TRUE(server); | 464 ASSERT_TRUE(server); |
464 | 465 |
465 BringBrowserWindowToFront(); | 466 BringBrowserWindowToFront(); |
466 GURL url = server->TestServerPage(kTestingPage); | 467 GURL url = server->TestServerPage(kTestingPage); |
467 ui_test_utils::NavigateToURL(browser(), url); | 468 ui_test_utils::NavigateToURL(browser(), url); |
468 | 469 |
469 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); | 470 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); |
470 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); | 471 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); |
471 | 472 |
472 int tab_index = browser()->selected_index(); | 473 int tab_index = browser()->selected_index(); |
(...skipping 25 matching lines...) Expand all Loading... |
498 | 499 |
499 // On Mac we don't send key up events when command modifier is down. | 500 // On Mac we don't send key up events when command modifier is down. |
500 static const KeyEventTestData kTestCmdFSuppressKeyDown = { | 501 static const KeyEventTestData kTestCmdFSuppressKeyDown = { |
501 base::VKEY_F, false, false, false, true, | 502 base::VKEY_F, false, false, false, true, |
502 true, false, false, false, 3, | 503 true, false, false, false, 3, |
503 { "D 91 0 false false false true", | 504 { "D 91 0 false false false true", |
504 "D 70 0 false false false true", | 505 "D 70 0 false false false true", |
505 "U 91 0 false false false true" } | 506 "U 91 0 false false false true" } |
506 }; | 507 }; |
507 | 508 |
508 HTTPTestServer* server = StartHTTPServer(); | 509 net::HTTPTestServer* server = StartHTTPServer(); |
509 ASSERT_TRUE(server); | 510 ASSERT_TRUE(server); |
510 | 511 |
511 BringBrowserWindowToFront(); | 512 BringBrowserWindowToFront(); |
512 GURL url = server->TestServerPage(kTestingPage); | 513 GURL url = server->TestServerPage(kTestingPage); |
513 ui_test_utils::NavigateToURL(browser(), url); | 514 ui_test_utils::NavigateToURL(browser(), url); |
514 | 515 |
515 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); | 516 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); |
516 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); | 517 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); |
517 | 518 |
518 int tab_index = browser()->selected_index(); | 519 int tab_index = browser()->selected_index(); |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
602 static const KeyEventTestData kTestAccess1 = { | 603 static const KeyEventTestData kTestAccess1 = { |
603 base::VKEY_1, false, false, true, false, | 604 base::VKEY_1, false, false, true, false, |
604 false, false, false, false, 4, | 605 false, false, false, false, 4, |
605 { "D 18 0 false false true false", | 606 { "D 18 0 false false true false", |
606 "D 49 0 false false true false", | 607 "D 49 0 false false true false", |
607 "U 49 0 false false true false", | 608 "U 49 0 false false true false", |
608 "U 18 0 false false true false" } | 609 "U 18 0 false false true false" } |
609 }; | 610 }; |
610 #endif | 611 #endif |
611 | 612 |
612 HTTPTestServer* server = StartHTTPServer(); | 613 net::HTTPTestServer* server = StartHTTPServer(); |
613 ASSERT_TRUE(server); | 614 ASSERT_TRUE(server); |
614 | 615 |
615 BringBrowserWindowToFront(); | 616 BringBrowserWindowToFront(); |
616 GURL url = server->TestServerPage(kTestingPage); | 617 GURL url = server->TestServerPage(kTestingPage); |
617 ui_test_utils::NavigateToURL(browser(), url); | 618 ui_test_utils::NavigateToURL(browser(), url); |
618 | 619 |
619 ui_test_utils::RunAllPendingInMessageLoop(); | 620 ui_test_utils::RunAllPendingInMessageLoop(); |
620 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); | 621 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); |
621 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); | 622 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); |
622 | 623 |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
670 } | 671 } |
671 | 672 |
672 #if defined(OS_MACOSX) | 673 #if defined(OS_MACOSX) |
673 // See http://crbug.com/50447 for details. | 674 // See http://crbug.com/50447 for details. |
674 #define MAYBE_ReservedAccelerators FLAKY_ReservedAccelerators | 675 #define MAYBE_ReservedAccelerators FLAKY_ReservedAccelerators |
675 #else | 676 #else |
676 #define MAYBE_ReservedAccelerators ReservedAccelerators | 677 #define MAYBE_ReservedAccelerators ReservedAccelerators |
677 #endif | 678 #endif |
678 | 679 |
679 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, MAYBE_ReservedAccelerators) { | 680 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, MAYBE_ReservedAccelerators) { |
680 HTTPTestServer* server = StartHTTPServer(); | 681 net::HTTPTestServer* server = StartHTTPServer(); |
681 ASSERT_TRUE(server); | 682 ASSERT_TRUE(server); |
682 | 683 |
683 BringBrowserWindowToFront(); | 684 BringBrowserWindowToFront(); |
684 GURL url = server->TestServerPage(kTestingPage); | 685 GURL url = server->TestServerPage(kTestingPage); |
685 ui_test_utils::NavigateToURL(browser(), url); | 686 ui_test_utils::NavigateToURL(browser(), url); |
686 | 687 |
687 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); | 688 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); |
688 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); | 689 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); |
689 | 690 |
690 #if defined(OS_WIN) || defined(TOOLKIT_VIEWS) | 691 #if defined(OS_WIN) || defined(TOOLKIT_VIEWS) |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
828 | 829 |
829 static const KeyEventTestData kTestCtrlK = { | 830 static const KeyEventTestData kTestCtrlK = { |
830 base::VKEY_K, true, false, false, false, | 831 base::VKEY_K, true, false, false, false, |
831 false, false, false, false, 4, | 832 false, false, false, false, 4, |
832 { "D 17 0 true false false false", | 833 { "D 17 0 true false false false", |
833 "D 75 0 true false false false", | 834 "D 75 0 true false false false", |
834 "U 75 0 true false false false", | 835 "U 75 0 true false false false", |
835 "U 17 0 true false false false" } | 836 "U 17 0 true false false false" } |
836 }; | 837 }; |
837 | 838 |
838 HTTPTestServer* server = StartHTTPServer(); | 839 net::HTTPTestServer* server = StartHTTPServer(); |
839 ASSERT_TRUE(server); | 840 ASSERT_TRUE(server); |
840 | 841 |
841 BringBrowserWindowToFront(); | 842 BringBrowserWindowToFront(); |
842 GURL url = server->TestServerPage(kTestingPage); | 843 GURL url = server->TestServerPage(kTestingPage); |
843 ui_test_utils::NavigateToURL(browser(), url); | 844 ui_test_utils::NavigateToURL(browser(), url); |
844 | 845 |
845 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); | 846 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); |
846 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); | 847 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); |
847 | 848 |
848 int tab_index = browser()->selected_index(); | 849 int tab_index = browser()->selected_index(); |
(...skipping 17 matching lines...) Expand all Loading... |
866 "U 33 0 false false false false" } | 867 "U 33 0 false false false false" } |
867 }; | 868 }; |
868 | 869 |
869 static const KeyEventTestData kTestPageDown = { | 870 static const KeyEventTestData kTestPageDown = { |
870 base::VKEY_NEXT, false, false, false, false, | 871 base::VKEY_NEXT, false, false, false, false, |
871 false, false, false, false, 2, | 872 false, false, false, false, 2, |
872 { "D 34 0 false false false false", | 873 { "D 34 0 false false false false", |
873 "U 34 0 false false false false" } | 874 "U 34 0 false false false false" } |
874 }; | 875 }; |
875 | 876 |
876 HTTPTestServer* server = StartHTTPServer(); | 877 net::HTTPTestServer* server = StartHTTPServer(); |
877 ASSERT_TRUE(server); | 878 ASSERT_TRUE(server); |
878 | 879 |
879 BringBrowserWindowToFront(); | 880 BringBrowserWindowToFront(); |
880 GURL url = server->TestServerPage(kTestingPage); | 881 GURL url = server->TestServerPage(kTestingPage); |
881 ui_test_utils::NavigateToURL(browser(), url); | 882 ui_test_utils::NavigateToURL(browser(), url); |
882 | 883 |
883 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); | 884 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); |
884 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); | 885 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); |
885 | 886 |
886 int tab_index = browser()->selected_index(); | 887 int tab_index = browser()->selected_index(); |
887 ASSERT_NO_FATAL_FAILURE(SetFocusedElement(tab_index, L"A")); | 888 ASSERT_NO_FATAL_FAILURE(SetFocusedElement(tab_index, L"A")); |
888 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestPageUp)); | 889 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestPageUp)); |
889 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestPageDown)); | 890 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestPageDown)); |
890 EXPECT_NO_FATAL_FAILURE(CheckTextBoxValue(tab_index, L"A", L"")); | 891 EXPECT_NO_FATAL_FAILURE(CheckTextBoxValue(tab_index, L"A", L"")); |
891 } | 892 } |
892 | 893 |
893 } // namespace | 894 } // namespace |
OLD | NEW |