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

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

Issue 5576002: Fix BrowserKeyEventsTest.ReservedAccelerators on Mac 10.6 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add cr_firesForKeyEventIfEnabled. Created 10 years 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 "app/keyboard_codes.h"
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 618 matching lines...) Expand 10 before | Expand all | Expand 10 after
629 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestAccess1)); 629 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestAccess1));
630 #if defined(TOOLKIT_GTK) 630 #if defined(TOOLKIT_GTK)
631 // On GTK, alt-0..9 are assigned as tab selection accelerators, so they can 631 // On GTK, alt-0..9 are assigned as tab selection accelerators, so they can
632 // not be used as accesskeys. 632 // not be used as accesskeys.
633 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L"")); 633 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L""));
634 #else 634 #else
635 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L"1")); 635 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L"1"));
636 #endif 636 #endif
637 } 637 }
638 638
639 #if defined(OS_MACOSX) 639 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, ReservedAccelerators) {
640 // See http://crbug.com/50447 for details.
641 #define MAYBE_ReservedAccelerators FLAKY_ReservedAccelerators
642 #else
643 #define MAYBE_ReservedAccelerators ReservedAccelerators
644 #endif
645
646 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, MAYBE_ReservedAccelerators) {
647 ASSERT_TRUE(test_server()->Start()); 640 ASSERT_TRUE(test_server()->Start());
648 641
649 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 642 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
650 GURL url = test_server()->GetURL(kTestingPage); 643 GURL url = test_server()->GetURL(kTestingPage);
651 ui_test_utils::NavigateToURL(browser(), url); 644 ui_test_utils::NavigateToURL(browser(), url);
652 645
653 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); 646 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER));
654 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); 647 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
655 648
649 ASSERT_EQ(1, browser()->tab_count());
650
656 #if defined(OS_WIN) || defined(TOOLKIT_VIEWS) 651 #if defined(OS_WIN) || defined(TOOLKIT_VIEWS)
657 static const KeyEventTestData kTestCtrlT = { 652 static const KeyEventTestData kTestCtrlT = {
658 app::VKEY_T, true, false, false, false, 653 app::VKEY_T, true, false, false, false,
659 true, false, false, false, 1, 654 true, false, false, false, 1,
660 { "D 17 0 true false false false" } 655 { "D 17 0 true false false false" }
661 }; 656 };
662 657
663 ASSERT_EQ(1, browser()->tab_count()); 658 // Press Ctrl+T, which will open a new tab. It cannot be suppressed.
664 // Press Ctrl+T, which will open a new tab.
665 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlT)); 659 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlT));
666 EXPECT_EQ(2, browser()->tab_count()); 660 EXPECT_EQ(2, browser()->tab_count());
667 browser()->SelectNumberedTab(0); 661 browser()->SelectNumberedTab(0);
668 ASSERT_EQ(0, browser()->selected_index()); 662 ASSERT_EQ(0, browser()->selected_index());
669 663
670 int result_length; 664 int result_length;
671 ASSERT_NO_FATAL_FAILURE(GetResultLength(0, &result_length)); 665 ASSERT_NO_FATAL_FAILURE(GetResultLength(0, &result_length));
672 EXPECT_EQ(1, result_length); 666 EXPECT_EQ(1, result_length);
673 667
668 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
669
674 // Reserved accelerators can't be suppressed. 670 // Reserved accelerators can't be suppressed.
675 ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(0, true)); 671 ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(0, true));
676 // Press Ctrl+W, which will close the tab. 672 // Press Ctrl+W, which will close the tab.
677 ASSERT_TRUE(ui_test_utils::SendKeyPressSync( 673 ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
678 browser(), app::VKEY_W, true, false, false, false)); 674 browser(), app::VKEY_W, true, false, false, false));
679 EXPECT_EQ(1, browser()->tab_count()); 675 EXPECT_EQ(1, browser()->tab_count());
680 #elif defined(OS_MACOSX) 676 #elif defined(OS_MACOSX)
681 static const KeyEventTestData kTestCmdT = { 677 static const KeyEventTestData kTestCmdT = {
682 app::VKEY_T, false, false, false, true, 678 app::VKEY_T, false, false, false, true,
683 true, false, false, false, 1, 679 true, false, false, false, 1,
684 { "D 91 0 false false false true" } 680 { "D 91 0 false false false true" }
685 }; 681 };
686 682
687 ASSERT_EQ(1, browser()->tab_count()); 683 ui_test_utils::WindowedNotificationObserver wait_for_new_tab(
688 // Press Cmd+T, which will open a new tab. 684 NotificationType::TAB_PARENTED,
685 NotificationService::AllSources());
686
687 // Press Cmd+T, which will open a new tab. It cannot be suppressed.
689 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCmdT)); 688 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCmdT));
690 EXPECT_EQ(2, browser()->tab_count()); 689
691 browser()->SelectNumberedTab(0); 690 wait_for_new_tab.WaitFor(Source<NavigationController>(
692 ASSERT_EQ(0, browser()->selected_index()); 691 &browser()->GetTabContentsAt(1)->controller()));
693 692
694 int result_length; 693 int result_length;
695 ASSERT_NO_FATAL_FAILURE(GetResultLength(0, &result_length)); 694 ASSERT_NO_FATAL_FAILURE(GetResultLength(0, &result_length));
696 EXPECT_EQ(1, result_length); 695 EXPECT_EQ(1, result_length);
697 696
697 EXPECT_EQ(2, browser()->tab_count());
698 ASSERT_EQ(1, browser()->selected_index());
699
700 // Because of issue http://crbug.com/65375, switching back to the first tab
701 // may cause the focus to be grabbed by omnibox. So instead, we load our
702 // testing page in the newly created tab and try Cmd-W here.
703 ui_test_utils::NavigateToURL(browser(), url);
704
705 // Make sure the focus is in the testing page.
706 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER));
707 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
708
698 // Reserved accelerators can't be suppressed. 709 // Reserved accelerators can't be suppressed.
699 ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(0, true)); 710 ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(1, true));
711
700 // Press Cmd+W, which will close the tab. 712 // Press Cmd+W, which will close the tab.
701 ASSERT_TRUE(ui_test_utils::SendKeyPressSync( 713 ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
702 browser(), app::VKEY_W, false, false, false, true)); 714 browser(), app::VKEY_W, false, false, false, true));
703 EXPECT_EQ(1, browser()->tab_count()); 715 EXPECT_EQ(1, browser()->tab_count());
704 #elif defined(TOOLKIT_GTK) 716 #elif defined(TOOLKIT_GTK)
705 // Ctrl-[a-z] are not treated as reserved accelerators on GTK. 717 // Ctrl-[a-z] are not treated as reserved accelerators on GTK.
706 static const KeyEventTestData kTestCtrlT = { 718 static const KeyEventTestData kTestCtrlT = {
707 app::VKEY_T, true, false, false, false, 719 app::VKEY_T, true, false, false, false,
708 false, false, false, false, 2, 720 false, false, false, false, 2,
709 { "D 17 0 true false false false", 721 { "D 17 0 true false false false",
(...skipping 23 matching lines...) Expand all
733 745
734 static const KeyEventTestData kTestCtrlWBlocked = { 746 static const KeyEventTestData kTestCtrlWBlocked = {
735 app::VKEY_W, true, false, false, false, 747 app::VKEY_W, true, false, false, false,
736 true, false, false, false, 4, 748 true, false, false, false, 4,
737 { "D 17 0 true false false false", 749 { "D 17 0 true false false false",
738 "D 87 0 true false false false", 750 "D 87 0 true false false false",
739 "U 87 0 true false false false", 751 "U 87 0 true false false false",
740 "U 17 0 true false false false" } 752 "U 17 0 true false false false" }
741 }; 753 };
742 754
743 ASSERT_EQ(1, browser()->tab_count());
744
745 // Ctrl+T should be blockable. 755 // Ctrl+T should be blockable.
746 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlTBlocked)); 756 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlTBlocked));
747 ASSERT_EQ(1, browser()->tab_count()); 757 ASSERT_EQ(1, browser()->tab_count());
748 758
749 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlT)); 759 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlT));
750 ASSERT_EQ(2, browser()->tab_count()); 760 ASSERT_EQ(2, browser()->tab_count());
751 ASSERT_EQ(1, browser()->selected_index()); 761 ASSERT_EQ(1, browser()->selected_index());
752 browser()->SelectNumberedTab(0); 762 browser()->SelectNumberedTab(0);
753 ASSERT_EQ(0, browser()->selected_index()); 763 ASSERT_EQ(0, browser()->selected_index());
764 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
754 765
755 // Ctrl+PageDown and Ctrl+Tab switches to the next tab. 766 // Ctrl+PageDown and Ctrl+Tab switches to the next tab.
756 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlPageDown)); 767 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlPageDown));
757 ASSERT_EQ(1, browser()->selected_index()); 768 ASSERT_EQ(1, browser()->selected_index());
758 769
759 browser()->SelectNumberedTab(0); 770 browser()->SelectNumberedTab(0);
760 ASSERT_EQ(0, browser()->selected_index()); 771 ASSERT_EQ(0, browser()->selected_index());
772 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
773
761 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlTab)); 774 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlTab));
762 ASSERT_EQ(1, browser()->selected_index()); 775 ASSERT_EQ(1, browser()->selected_index());
763 776
764 // Ctrl+W should be blockable. 777 // Ctrl+W should be blockable.
765 browser()->SelectNumberedTab(0); 778 browser()->SelectNumberedTab(0);
766 ASSERT_EQ(0, browser()->selected_index()); 779 ASSERT_EQ(0, browser()->selected_index());
780 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
781
767 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlWBlocked)); 782 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlWBlocked));
768 ASSERT_EQ(2, browser()->tab_count()); 783 ASSERT_EQ(2, browser()->tab_count());
769 784
770 // Ctrl+F4 to close the tab. 785 // Ctrl+F4 to close the tab.
771 ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(0, true)); 786 ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(0, true));
772 ASSERT_TRUE(ui_test_utils::SendKeyPressSync( 787 ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
773 browser(), app::VKEY_F4, true, false, false, false)); 788 browser(), app::VKEY_F4, true, false, false, false));
774 ASSERT_EQ(1, browser()->tab_count()); 789 ASSERT_EQ(1, browser()->tab_count());
775 #endif 790 #endif
776 } 791 }
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
903 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestAltKeySuppress)); 918 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestAltKeySuppress));
904 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); 919 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
905 920
906 // Ctrl+Alt should have no effect. 921 // Ctrl+Alt should have no effect.
907 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlAltKey)); 922 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlAltKey));
908 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); 923 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
909 } 924 }
910 #endif 925 #endif
911 926
912 } // namespace 927 } // namespace
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/cocoa/browser_window_cocoa.mm » ('j') | chrome/browser/ui/cocoa/nsmenuitem_additions.mm » ('J')

Powered by Google App Engine
This is Rietveld 408576698