| 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 |