Index: chrome/browser/browser_focus_uitest.cc |
=================================================================== |
--- chrome/browser/browser_focus_uitest.cc (revision 27783) |
+++ chrome/browser/browser_focus_uitest.cc (working copy) |
@@ -15,8 +15,13 @@ |
#include "chrome/browser/tab_contents/tab_contents_view.h" |
#include "chrome/browser/view_ids.h" |
#include "chrome/common/chrome_paths.h" |
+#include "chrome/test/automation/browser_proxy.h" |
+#include "chrome/test/automation/tab_proxy.h" |
+#include "chrome/test/automation/window_proxy.h" |
#include "chrome/test/in_process_browser_test.h" |
+#include "chrome/test/ui/ui_test.h" |
#include "chrome/test/ui_test_utils.h" |
+#include "views/event.h" |
#include "views/focus/focus_manager.h" |
#include "views/view.h" |
#include "views/window/window.h" |
@@ -737,3 +742,38 @@ |
browser()->ShowDownloadsTab(); |
CheckViewHasFocus(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW); |
} |
+ |
+#if !defined(OS_MACOSX) // see BrowserWindowCocoa::GetCommandId |
+// Tests that tab related keyboard accelerators are reserved by the app. |
+ |
+class BrowserInteractiveTest : public UITest { |
+}; |
+ |
+TEST_F(BrowserInteractiveTest, ReserveKeyboardAccelerators) { |
+ const std::string kBadPage = |
+ "<html><script>" |
+ "document.onkeydown = function() {" |
+ " event.preventDefault();" |
+ " return false;" |
+ "}" |
+ "</script></html>"; |
+ scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0)); |
+ browser->AppendTab(GURL("data:text/html," + kBadPage)); |
+ int tab_count = 0; |
+ ASSERT_TRUE(browser->GetTabCount(&tab_count)); |
+ ASSERT_EQ(tab_count, 2); |
+ |
+ int active_tab = 0; |
+ ASSERT_TRUE(browser->GetActiveTabIndex(&active_tab)); |
+ ASSERT_EQ(active_tab, 1); |
+ |
+ scoped_refptr<WindowProxy> window(browser->GetWindow()); |
+ ASSERT_TRUE(window->SimulateOSKeyPress( |
+ base::VKEY_TAB, views::Event::EF_CONTROL_DOWN)); |
+ ASSERT_TRUE(browser->WaitForTabToBecomeActive(0, action_max_timeout_ms())); |
+ |
+ ASSERT_TRUE(window->SimulateOSKeyPress( |
+ base::VKEY_F4, views::Event::EF_CONTROL_DOWN)); |
+ ASSERT_TRUE(browser->WaitForTabCountToBecome(1, action_max_timeout_ms())); |
+} |
+#endif |