Index: chrome/browser/browser_keyevents_browsertest.cc |
=================================================================== |
--- chrome/browser/browser_keyevents_browsertest.cc (revision 34219) |
+++ chrome/browser/browser_keyevents_browsertest.cc (working copy) |
@@ -536,12 +536,6 @@ |
} |
IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, ReservedAccelerators) { |
- static const KeyEventTestData kTestCtrlT = { |
- base::VKEY_T, true, false, false, |
- false, false, false, false, 1, |
- { "D 17 0 true false false" } |
- }; |
- |
HTTPTestServer* server = StartHTTPServer(); |
GURL url = server->TestServerPageW(kTestingPage); |
@@ -550,21 +544,99 @@ |
ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); |
ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); |
- int tab_index = browser()->selected_index(); |
+#if defined(OS_WIN) |
+ static const KeyEventTestData kTestCtrlT = { |
+ base::VKEY_T, true, false, false, |
+ true, false, false, false, 1, |
+ { "D 17 0 true false false" } |
+ }; |
+ |
ASSERT_EQ(1, browser()->tab_count()); |
// Press Ctrl+T, which will open a new tab. |
- EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlT)); |
+ EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlT)); |
EXPECT_EQ(2, browser()->tab_count()); |
- browser()->SelectNumberedTab(tab_index); |
- ASSERT_EQ(tab_index, browser()->selected_index()); |
+ browser()->SelectNumberedTab(0); |
+ ASSERT_EQ(0, browser()->selected_index()); |
int result_length; |
- ASSERT_NO_FATAL_FAILURE(GetResultLength(tab_index, &result_length)); |
+ ASSERT_NO_FATAL_FAILURE(GetResultLength(0, &result_length)); |
EXPECT_EQ(1, result_length); |
// Reserved accelerators can't be suppressed. |
- ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(tab_index, true)); |
+ ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(0, true)); |
// Press Ctrl+W, which will close the tab. |
ASSERT_NO_FATAL_FAILURE(SendKey(base::VKEY_W, true, false, false)); |
EXPECT_EQ(1, browser()->tab_count()); |
+ |
+#elif defined(OS_LINUX) && !defined(TOOLKIT_VIEWS) |
+ // Ctrl-[a-z] are not treated as reserved accelerators on Linux. |
+ static const KeyEventTestData kTestCtrlT = { |
+ base::VKEY_T, true, false, false, |
+ false, false, false, false, 2, |
+ { "D 17 0 true false false", |
+ "D 84 0 true false false" } |
+ }; |
+ |
+ static const KeyEventTestData kTestCtrlPageDown = { |
+ base::VKEY_NEXT, true, false, false, |
+ true, false, false, false, 1, |
+ { "D 17 0 true false false" } |
+ }; |
+ |
+ static const KeyEventTestData kTestCtrlTab = { |
+ base::VKEY_TAB, true, false, false, |
+ true, false, false, false, 1, |
+ { "D 17 0 true false false" } |
+ }; |
+ |
+ static const KeyEventTestData kTestCtrlTBlocked = { |
+ base::VKEY_T, true, false, false, |
+ true, false, false, false, 4, |
+ { "D 17 0 true false false", |
+ "D 84 0 true false false", |
+ "U 84 0 true false false", |
+ "U 17 0 true false false" } |
+ }; |
+ |
+ static const KeyEventTestData kTestCtrlWBlocked = { |
+ base::VKEY_W, true, false, false, |
+ true, false, false, false, 4, |
+ { "D 17 0 true false false", |
+ "D 87 0 true false false", |
+ "U 87 0 true false false", |
+ "U 17 0 true false false" } |
+ }; |
+ |
+ ASSERT_EQ(1, browser()->tab_count()); |
+ |
+ // Ctrl+T should be blockable. |
+ EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlTBlocked)); |
+ ASSERT_EQ(1, browser()->tab_count()); |
+ |
+ EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlT)); |
+ ASSERT_EQ(2, browser()->tab_count()); |
+ ASSERT_EQ(1, browser()->selected_index()); |
+ browser()->SelectNumberedTab(0); |
+ ASSERT_EQ(0, browser()->selected_index()); |
+ |
+ // Ctrl+PageDown and Ctrl+Tab switches to the next tab. |
+ EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlPageDown)); |
+ ASSERT_EQ(1, browser()->selected_index()); |
+ |
+ browser()->SelectNumberedTab(0); |
+ ASSERT_EQ(0, browser()->selected_index()); |
+ EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlTab)); |
+ ASSERT_EQ(1, browser()->selected_index()); |
+ |
+ // Ctrl+W should be blockable. |
+ browser()->SelectNumberedTab(0); |
+ ASSERT_EQ(0, browser()->selected_index()); |
+ EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlWBlocked)); |
+ ASSERT_EQ(2, browser()->tab_count()); |
+ |
+ // Ctrl+F4 to close the tab. |
+ ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(0, true)); |
+ ASSERT_NO_FATAL_FAILURE(SendKey(base::VKEY_F4, true, false, false)); |
+ ASSERT_EQ(1, browser()->tab_count()); |
+#endif |
} |