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

Side by Side Diff: chrome/test/interactive_ui/keyboard_access_uitest.cc

Issue 3029038: Add back a test lost in r37819, because it had been at the bottom of an unrel... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 4 months 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "base/keyboard_codes.h" 5 #include "base/keyboard_codes.h"
6 #include "chrome/test/automation/browser_proxy.h" 6 #include "chrome/test/automation/browser_proxy.h"
7 #include "chrome/test/automation/tab_proxy.h" 7 #include "chrome/test/automation/tab_proxy.h"
8 #include "chrome/test/automation/window_proxy.h" 8 #include "chrome/test/automation/window_proxy.h"
9 #include "chrome/test/ui/ui_test.h" 9 #include "chrome/test/ui/ui_test.h"
10 #include "googleurl/src/gurl.h" 10 #include "googleurl/src/gurl.h"
11 #include "views/event.h"
11 12
12 // This functionality currently works on Windows and on Linux when 13 // This functionality currently works on Windows and on Linux when
13 // toolkit_views is defined (i.e. for Chrome OS). It's not needed 14 // toolkit_views is defined (i.e. for Chrome OS). It's not needed
14 // on the Mac, and it's not yet implemented on Linux. 15 // on the Mac, and it's not yet implemented on Linux.
15 #if defined(TOOLKIT_VIEWS) 16 #if defined(TOOLKIT_VIEWS)
16 17
17 namespace { 18 namespace {
18 19
19 class KeyboardAccessTest : public UITest { 20 class KeyboardAccessTest : public UITest {
20 public: 21 public:
21 KeyboardAccessTest() { 22 KeyboardAccessTest() {
22 dom_automation_enabled_ = true; 23 dom_automation_enabled_ = true;
23 show_window_ = true; 24 show_window_ = true;
24 } 25 }
25 26
26 // Use the keyboard to select "New Tab" from the app menu. 27 // Use the keyboard to select "New Tab" from the app menu.
27 // This test depends on the fact that there are two menus and that 28 // This test depends on the fact that there is one menu and that
28 // New Tab is the first item in the app menu. If the menus change, 29 // New Tab is the first item in the menu. If the menus change,
29 // this test will need to be changed to reflect that. 30 // this test will need to be changed to reflect that.
30 // 31 //
31 // If alternate_key_sequence is true, use "Alt" instead of "F10" to 32 // If alternate_key_sequence is true, use "Alt" instead of "F10" to
32 // open the menu bar, and "Down" instead of "Enter" to open a menu. 33 // open the menu bar, and "Down" instead of "Enter" to open a menu.
33 void TestMenuKeyboardAccess(bool alternate_key_sequence); 34 void TestMenuKeyboardAccess(bool alternate_key_sequence);
34 35
35 DISALLOW_COPY_AND_ASSIGN(KeyboardAccessTest); 36 DISALLOW_COPY_AND_ASSIGN(KeyboardAccessTest);
36 }; 37 };
37 38
38 void KeyboardAccessTest::TestMenuKeyboardAccess(bool alternate_key_sequence) { 39 void KeyboardAccessTest::TestMenuKeyboardAccess(bool alternate_key_sequence) {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 } 95 }
95 96
96 TEST_F(KeyboardAccessTest, TestMenuKeyboardAccess) { 97 TEST_F(KeyboardAccessTest, TestMenuKeyboardAccess) {
97 TestMenuKeyboardAccess(false); 98 TestMenuKeyboardAccess(false);
98 } 99 }
99 100
100 TEST_F(KeyboardAccessTest, TestAltMenuKeyboardAccess) { 101 TEST_F(KeyboardAccessTest, TestAltMenuKeyboardAccess) {
101 TestMenuKeyboardAccess(true); 102 TestMenuKeyboardAccess(true);
102 } 103 }
103 104
105 TEST_F(KeyboardAccessTest, ReserveKeyboardAccelerators) {
106 const std::string kBadPage =
107 "<html><script>"
108 "document.onkeydown = function() {"
109 " event.preventDefault();"
110 " return false;"
111 "}"
112 "</script></html>";
113 scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
114 ASSERT_TRUE(browser);
115 browser->AppendTab(GURL("data:text/html," + kBadPage));
116 int tab_count = 0;
117 ASSERT_TRUE(browser->GetTabCount(&tab_count));
118 ASSERT_EQ(tab_count, 2);
119
120 int active_tab = 0;
121 ASSERT_TRUE(browser->GetActiveTabIndex(&active_tab));
122 ASSERT_EQ(active_tab, 1);
123
124 scoped_refptr<WindowProxy> window(browser->GetWindow());
125 ASSERT_TRUE(window);
126 ASSERT_TRUE(window->SimulateOSKeyPress(
127 base::VKEY_TAB, views::Event::EF_CONTROL_DOWN));
128 ASSERT_TRUE(browser->WaitForTabToBecomeActive(0, action_max_timeout_ms()));
129
130 #if !defined(OS_MACOSX) // see BrowserWindowCocoa::GetCommandId
131 ASSERT_TRUE(browser->ActivateTab(1));
132 ASSERT_TRUE(window->SimulateOSKeyPress(
133 base::VKEY_F4, views::Event::EF_CONTROL_DOWN));
134 ASSERT_TRUE(browser->WaitForTabCountToBecome(1, action_max_timeout_ms()));
135 #endif
136 }
137
104 } // namespace 138 } // namespace
105 139
106 #endif // defined(TOOLKIT_VIEWS) 140 #endif // defined(TOOLKIT_VIEWS)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698