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

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

Issue 10449042: Remove wchar/wstring version of StringPrintf. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 6 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/logging.h" 8 #include "base/logging.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/stringprintf.h" 10 #include "base/stringprintf.h"
(...skipping 14 matching lines...) Expand all
25 #include "net/test/test_server.h" 25 #include "net/test/test_server.h"
26 #include "ui/base/keycodes/keyboard_codes.h" 26 #include "ui/base/keycodes/keyboard_codes.h"
27 27
28 using content::DomOperationNotificationDetails; 28 using content::DomOperationNotificationDetails;
29 using content::NavigationController; 29 using content::NavigationController;
30 using content::RenderViewHost; 30 using content::RenderViewHost;
31 31
32 namespace { 32 namespace {
33 33
34 const char kTestingPage[] = "files/keyevents_test.html"; 34 const char kTestingPage[] = "files/keyevents_test.html";
35 const wchar_t kSuppressEventJS[] = 35 const char kSuppressEventJS[] =
36 L"window.domAutomationController.send(setDefaultAction('%ls', %ls));"; 36 "window.domAutomationController.send(setDefaultAction('%s', %s));";
37 const wchar_t kGetResultJS[] = 37 const char kGetResultJS[] =
38 L"window.domAutomationController.send(keyEventResult[%d]);"; 38 "window.domAutomationController.send(keyEventResult[%d]);";
39 const wchar_t kGetResultLengthJS[] = 39 const wchar_t kGetResultLengthJS[] =
40 L"window.domAutomationController.send(keyEventResult.length);"; 40 L"window.domAutomationController.send(keyEventResult.length);";
41 const wchar_t kGetFocusedElementJS[] = 41 const wchar_t kGetFocusedElementJS[] =
42 L"window.domAutomationController.send(focusedElement);"; 42 L"window.domAutomationController.send(focusedElement);";
43 const wchar_t kSetFocusedElementJS[] = 43 const char kSetFocusedElementJS[] =
44 L"window.domAutomationController.send(setFocusedElement('%ls'));"; 44 "window.domAutomationController.send(setFocusedElement('%s'));";
45 const wchar_t kGetTextBoxValueJS[] = 45 const char kGetTextBoxValueJS[] =
46 L"window.domAutomationController.send(" 46 "window.domAutomationController.send("
47 L"document.getElementById('%ls').value);"; 47 "document.getElementById('%s').value);";
48 const wchar_t kSetTextBoxValueJS[] = 48 const char kSetTextBoxValueJS[] =
49 L"window.domAutomationController.send(" 49 "window.domAutomationController.send("
50 L"document.getElementById('%ls').value = '%ls');"; 50 "document.getElementById('%s').value = '%s');";
51 const wchar_t kStartTestJS[] = 51 const char kStartTestJS[] =
52 L"window.domAutomationController.send(startTest(%d));"; 52 "window.domAutomationController.send(startTest(%d));";
53 53
54 // Maximum lenght of the result array in KeyEventTestData structure. 54 // Maximum lenght of the result array in KeyEventTestData structure.
55 const size_t kMaxResultLength = 10; 55 const size_t kMaxResultLength = 10;
56 56
57 // A structure holding test data of a keyboard event. 57 // A structure holding test data of a keyboard event.
58 // Each keyboard event may generate multiple result strings representing 58 // Each keyboard event may generate multiple result strings representing
59 // the result of keydown, keypress, keyup and textInput events. 59 // the result of keydown, keypress, keyup and textInput events.
60 // For keydown, keypress and keyup events, the format of the result string is: 60 // For keydown, keypress and keyup events, the format of the result string is:
61 // <type> <keyCode> <charCode> <ctrlKey> <shiftKey> <altKey> <commandKey> 61 // <type> <keyCode> <charCode> <ctrlKey> <shiftKey> <altKey> <commandKey>
62 // where <type> may be 'D' (keydown), 'P' (keypress) or 'U' (keyup). 62 // where <type> may be 'D' (keydown), 'P' (keypress) or 'U' (keyup).
(...skipping 11 matching lines...) Expand all
74 74
75 bool suppress_keydown; 75 bool suppress_keydown;
76 bool suppress_keypress; 76 bool suppress_keypress;
77 bool suppress_keyup; 77 bool suppress_keyup;
78 bool suppress_textinput; 78 bool suppress_textinput;
79 79
80 int result_length; 80 int result_length;
81 const char* const result[kMaxResultLength]; 81 const char* const result[kMaxResultLength];
82 }; 82 };
83 83
84 const wchar_t* GetBoolString(bool value) { 84 const char* GetBoolString(bool value) {
85 return value ? L"true" : L"false"; 85 return value ? "true" : "false";
86 } 86 }
87 87
88 // A class to help wait for the finish of a key event test. 88 // A class to help wait for the finish of a key event test.
89 class TestFinishObserver : public content::NotificationObserver { 89 class TestFinishObserver : public content::NotificationObserver {
90 public: 90 public:
91 explicit TestFinishObserver(RenderViewHost* render_view_host) 91 explicit TestFinishObserver(RenderViewHost* render_view_host)
92 : finished_(false), waiting_(false) { 92 : finished_(false), waiting_(false) {
93 registrar_.Add(this, content::NOTIFICATION_DOM_OPERATION_RESPONSE, 93 registrar_.Add(this, content::NOTIFICATION_DOM_OPERATION_RESPONSE,
94 content::Source<RenderViewHost>(render_view_host)); 94 content::Source<RenderViewHost>(render_view_host));
95 } 95 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 return ui_test_utils::IsViewFocused(browser(), vid); 135 return ui_test_utils::IsViewFocused(browser(), vid);
136 } 136 }
137 137
138 void ClickOnView(ViewID vid) { 138 void ClickOnView(ViewID vid) {
139 ui_test_utils::ClickOnView(browser(), vid); 139 ui_test_utils::ClickOnView(browser(), vid);
140 } 140 }
141 141
142 // Set the suppress flag of an event specified by |type|. If |suppress| is 142 // Set the suppress flag of an event specified by |type|. If |suppress| is
143 // true then the web page will suppress all events with |type|. Following 143 // true then the web page will suppress all events with |type|. Following
144 // event types are supported: keydown, keypress, keyup and textInput. 144 // event types are supported: keydown, keypress, keyup and textInput.
145 void SuppressEventByType(int tab_index, const wchar_t* type, bool suppress) { 145 void SuppressEventByType(int tab_index, const char* type, bool suppress) {
146 ASSERT_LT(tab_index, browser()->tab_count()); 146 ASSERT_LT(tab_index, browser()->tab_count());
147 bool actual; 147 bool actual;
148 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( 148 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool(
149 browser()->GetWebContentsAt(tab_index)->GetRenderViewHost(), 149 browser()->GetWebContentsAt(tab_index)->GetRenderViewHost(),
150 L"", 150 L"",
151 base::StringPrintf(kSuppressEventJS, type, GetBoolString(!suppress)), 151 ASCIIToWide(base::StringPrintf(kSuppressEventJS, type,
152 GetBoolString(!suppress))),
152 &actual)); 153 &actual));
153 ASSERT_EQ(!suppress, actual); 154 ASSERT_EQ(!suppress, actual);
154 } 155 }
155 156
156 void SuppressEvents(int tab_index, bool keydown, bool keypress, 157 void SuppressEvents(int tab_index, bool keydown, bool keypress,
157 bool keyup, bool textinput) { 158 bool keyup, bool textinput) {
158 ASSERT_NO_FATAL_FAILURE( 159 ASSERT_NO_FATAL_FAILURE(
159 SuppressEventByType(tab_index, L"keydown", keydown)); 160 SuppressEventByType(tab_index, "keydown", keydown));
160 ASSERT_NO_FATAL_FAILURE( 161 ASSERT_NO_FATAL_FAILURE(
161 SuppressEventByType(tab_index, L"keypress", keypress)); 162 SuppressEventByType(tab_index, "keypress", keypress));
162 ASSERT_NO_FATAL_FAILURE( 163 ASSERT_NO_FATAL_FAILURE(
163 SuppressEventByType(tab_index, L"keyup", keyup)); 164 SuppressEventByType(tab_index, "keyup", keyup));
164 ASSERT_NO_FATAL_FAILURE( 165 ASSERT_NO_FATAL_FAILURE(
165 SuppressEventByType(tab_index, L"textInput", textinput)); 166 SuppressEventByType(tab_index, "textInput", textinput));
166 } 167 }
167 168
168 void SuppressAllEvents(int tab_index, bool suppress) { 169 void SuppressAllEvents(int tab_index, bool suppress) {
169 SuppressEvents(tab_index, suppress, suppress, suppress, suppress); 170 SuppressEvents(tab_index, suppress, suppress, suppress, suppress);
170 } 171 }
171 172
172 void GetResultLength(int tab_index, int* length) { 173 void GetResultLength(int tab_index, int* length) {
173 ASSERT_LT(tab_index, browser()->tab_count()); 174 ASSERT_LT(tab_index, browser()->tab_count());
174 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractInt( 175 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractInt(
175 browser()->GetWebContentsAt(tab_index)->GetRenderViewHost(), 176 browser()->GetWebContentsAt(tab_index)->GetRenderViewHost(),
176 L"", kGetResultLengthJS, length)); 177 L"", kGetResultLengthJS, length));
177 } 178 }
178 179
179 void CheckResult(int tab_index, int length, const char* const result[]) { 180 void CheckResult(int tab_index, int length, const char* const result[]) {
180 ASSERT_LT(tab_index, browser()->tab_count()); 181 ASSERT_LT(tab_index, browser()->tab_count());
181 int actual_length; 182 int actual_length;
182 ASSERT_NO_FATAL_FAILURE(GetResultLength(tab_index, &actual_length)); 183 ASSERT_NO_FATAL_FAILURE(GetResultLength(tab_index, &actual_length));
183 ASSERT_GE(actual_length, length); 184 ASSERT_GE(actual_length, length);
184 for (int i = 0; i < actual_length; ++i) { 185 for (int i = 0; i < actual_length; ++i) {
185 std::string actual; 186 std::string actual;
186 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractString( 187 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractString(
187 browser()->GetWebContentsAt(tab_index)->GetRenderViewHost(), 188 browser()->GetWebContentsAt(tab_index)->GetRenderViewHost(),
188 L"", base::StringPrintf(kGetResultJS, i), &actual)); 189 L"", ASCIIToWide(base::StringPrintf(kGetResultJS, i)), &actual));
189 190
190 // If more events were received than expected, then the additional events 191 // If more events were received than expected, then the additional events
191 // must be keyup events. 192 // must be keyup events.
192 if (i < length) 193 if (i < length)
193 ASSERT_STREQ(result[i], actual.c_str()); 194 ASSERT_STREQ(result[i], actual.c_str());
194 else 195 else
195 ASSERT_EQ('U', actual[0]); 196 ASSERT_EQ('U', actual[0]);
196 } 197 }
197 } 198 }
198 199
199 void CheckFocusedElement(int tab_index, const wchar_t* focused) { 200 void CheckFocusedElement(int tab_index, const wchar_t* focused) {
200 ASSERT_LT(tab_index, browser()->tab_count()); 201 ASSERT_LT(tab_index, browser()->tab_count());
201 std::string actual; 202 std::string actual;
202 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractString( 203 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractString(
203 browser()->GetWebContentsAt(tab_index)->GetRenderViewHost(), 204 browser()->GetWebContentsAt(tab_index)->GetRenderViewHost(),
204 L"", kGetFocusedElementJS, &actual)); 205 L"", kGetFocusedElementJS, &actual));
205 ASSERT_EQ(WideToUTF8(focused), actual); 206 ASSERT_EQ(WideToUTF8(focused), actual);
206 } 207 }
207 208
208 void SetFocusedElement(int tab_index, const wchar_t* focused) { 209 void SetFocusedElement(int tab_index, const char* focused) {
209 ASSERT_LT(tab_index, browser()->tab_count()); 210 ASSERT_LT(tab_index, browser()->tab_count());
210 bool actual; 211 bool actual;
211 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( 212 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool(
212 browser()->GetWebContentsAt(tab_index)->GetRenderViewHost(), 213 browser()->GetWebContentsAt(tab_index)->GetRenderViewHost(),
213 L"", 214 L"",
214 base::StringPrintf(kSetFocusedElementJS, focused), 215 ASCIIToWide(base::StringPrintf(kSetFocusedElementJS, focused)),
215 &actual)); 216 &actual));
216 ASSERT_TRUE(actual); 217 ASSERT_TRUE(actual);
217 } 218 }
218 219
219 void CheckTextBoxValue(int tab_index, const wchar_t* id, 220 void CheckTextBoxValue(int tab_index, const char* id,
220 const wchar_t* value) { 221 const wchar_t* value) {
221 ASSERT_LT(tab_index, browser()->tab_count()); 222 ASSERT_LT(tab_index, browser()->tab_count());
222 std::string actual; 223 std::string actual;
223 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractString( 224 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractString(
224 browser()->GetWebContentsAt(tab_index)->GetRenderViewHost(), 225 browser()->GetWebContentsAt(tab_index)->GetRenderViewHost(),
225 L"", 226 L"",
226 base::StringPrintf(kGetTextBoxValueJS, id), 227 ASCIIToWide(base::StringPrintf(kGetTextBoxValueJS, id)),
227 &actual)); 228 &actual));
228 ASSERT_EQ(WideToUTF8(value), actual); 229 ASSERT_EQ(WideToUTF8(value), actual);
229 } 230 }
230 231
231 void SetTextBoxValue(int tab_index, const wchar_t* id, 232 void SetTextBoxValue(int tab_index, const char* id,
232 const wchar_t* value) { 233 const char* value) {
233 ASSERT_LT(tab_index, browser()->tab_count()); 234 ASSERT_LT(tab_index, browser()->tab_count());
234 std::string actual; 235 std::string actual;
235 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractString( 236 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractString(
236 browser()->GetWebContentsAt(tab_index)->GetRenderViewHost(), 237 browser()->GetWebContentsAt(tab_index)->GetRenderViewHost(),
237 L"", 238 L"",
238 base::StringPrintf(kSetTextBoxValueJS, id, value), 239 ASCIIToWide(base::StringPrintf(kSetTextBoxValueJS, id, value)),
239 &actual)); 240 &actual));
240 ASSERT_EQ(WideToUTF8(value), actual); 241 ASSERT_STREQ(value, actual.c_str());
241 } 242 }
242 243
243 void StartTest(int tab_index, int result_length) { 244 void StartTest(int tab_index, int result_length) {
244 ASSERT_LT(tab_index, browser()->tab_count()); 245 ASSERT_LT(tab_index, browser()->tab_count());
245 bool actual; 246 bool actual;
246 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( 247 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool(
247 browser()->GetWebContentsAt(tab_index)->GetRenderViewHost(), 248 browser()->GetWebContentsAt(tab_index)->GetRenderViewHost(),
248 L"", base::StringPrintf(kStartTestJS, result_length), &actual)); 249 L"", ASCIIToWide(base::StringPrintf(kStartTestJS, result_length)),
250 &actual));
249 ASSERT_TRUE(actual); 251 ASSERT_TRUE(actual);
250 } 252 }
251 253
252 void TestKeyEvent(int tab_index, const KeyEventTestData& test) { 254 void TestKeyEvent(int tab_index, const KeyEventTestData& test) {
253 ASSERT_LT(tab_index, browser()->tab_count()); 255 ASSERT_LT(tab_index, browser()->tab_count());
254 ASSERT_EQ(tab_index, browser()->active_index()); 256 ASSERT_EQ(tab_index, browser()->active_index());
255 257
256 // Inform our testing web page that we are about to start testing a key 258 // Inform our testing web page that we are about to start testing a key
257 // event. 259 // event.
258 ASSERT_NO_FATAL_FAILURE(StartTest(tab_index, test.result_length)); 260 ASSERT_NO_FATAL_FAILURE(StartTest(tab_index, test.result_length));
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER)); 372 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER));
371 373
372 int tab_index = browser()->active_index(); 374 int tab_index = browser()->active_index();
373 for (size_t i = 0; i < arraysize(kTestNoInput); ++i) { 375 for (size_t i = 0; i < arraysize(kTestNoInput); ++i) {
374 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestNoInput[i])) 376 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestNoInput[i]))
375 << "kTestNoInput[" << i << "] failed:\n" 377 << "kTestNoInput[" << i << "] failed:\n"
376 << GetTestDataDescription(kTestNoInput[i]); 378 << GetTestDataDescription(kTestNoInput[i]);
377 } 379 }
378 380
379 // Input in normal text box. 381 // Input in normal text box.
380 ASSERT_NO_FATAL_FAILURE(SetFocusedElement(tab_index, L"A")); 382 ASSERT_NO_FATAL_FAILURE(SetFocusedElement(tab_index, "A"));
381 for (size_t i = 0; i < arraysize(kTestWithInput); ++i) { 383 for (size_t i = 0; i < arraysize(kTestWithInput); ++i) {
382 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestWithInput[i])) 384 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestWithInput[i]))
383 << "kTestWithInput[" << i << "] in text box failed:\n" 385 << "kTestWithInput[" << i << "] in text box failed:\n"
384 << GetTestDataDescription(kTestWithInput[i]); 386 << GetTestDataDescription(kTestWithInput[i]);
385 } 387 }
386 EXPECT_NO_FATAL_FAILURE(CheckTextBoxValue(tab_index, L"A", L"aA")); 388 EXPECT_NO_FATAL_FAILURE(CheckTextBoxValue(tab_index, "A", L"aA"));
387 389
388 // Input in password box. 390 // Input in password box.
389 ASSERT_NO_FATAL_FAILURE(SetFocusedElement(tab_index, L"B")); 391 ASSERT_NO_FATAL_FAILURE(SetFocusedElement(tab_index, "B"));
390 for (size_t i = 0; i < arraysize(kTestWithInput); ++i) { 392 for (size_t i = 0; i < arraysize(kTestWithInput); ++i) {
391 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestWithInput[i])) 393 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestWithInput[i]))
392 << "kTestWithInput[" << i << "] in password box failed:\n" 394 << "kTestWithInput[" << i << "] in password box failed:\n"
393 << GetTestDataDescription(kTestWithInput[i]); 395 << GetTestDataDescription(kTestWithInput[i]);
394 } 396 }
395 EXPECT_NO_FATAL_FAILURE(CheckTextBoxValue(tab_index, L"B", L"aA")); 397 EXPECT_NO_FATAL_FAILURE(CheckTextBoxValue(tab_index, "B", L"aA"));
396 } 398 }
397 399
398 #if defined(OS_WIN) || defined(OS_LINUX) 400 #if defined(OS_WIN) || defined(OS_LINUX)
399 401
400 #if defined(OS_LINUX) 402 #if defined(OS_LINUX)
401 // http://crbug.com/129235 403 // http://crbug.com/129235
402 #define MAYBE_CtrlKeyEvents FAILS_CtrlKeyEvents 404 #define MAYBE_CtrlKeyEvents FAILS_CtrlKeyEvents
403 #else 405 #else
404 #define MAYBE_CtrlKeyEvents CtrlKeyEvents 406 #define MAYBE_CtrlKeyEvents CtrlKeyEvents
405 #endif 407 #endif
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER)); 620 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER));
619 621
620 int tab_index = browser()->active_index(); 622 int tab_index = browser()->active_index();
621 // Make sure no element is focused. 623 // Make sure no element is focused.
622 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L"")); 624 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L""));
623 // Alt+A should focus the element with accesskey = "A". 625 // Alt+A should focus the element with accesskey = "A".
624 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestAccessA)); 626 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestAccessA));
625 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L"A")); 627 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L"A"));
626 628
627 // Blur the focused element. 629 // Blur the focused element.
628 EXPECT_NO_FATAL_FAILURE(SetFocusedElement(tab_index, L"")); 630 EXPECT_NO_FATAL_FAILURE(SetFocusedElement(tab_index, ""));
629 // Make sure no element is focused. 631 // Make sure no element is focused.
630 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L"")); 632 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L""));
631 633
632 #if !defined(OS_MACOSX) 634 #if !defined(OS_MACOSX)
633 // Alt+D should move the focus to the location entry. 635 // Alt+D should move the focus to the location entry.
634 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestAccessD)); 636 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestAccessD));
635 637
636 // TODO(isherman): This is an experimental change to help diagnose 638 // TODO(isherman): This is an experimental change to help diagnose
637 // http://crbug.com/55713 639 // http://crbug.com/55713
638 ui_test_utils::RunAllPendingInMessageLoop(); 640 ui_test_utils::RunAllPendingInMessageLoop();
(...skipping 15 matching lines...) Expand all
654 656
655 // If the keydown event is suppressed, then Alt+D should be handled as an 657 // If the keydown event is suppressed, then Alt+D should be handled as an
656 // accesskey rather than an accelerator key. Activation of an accesskey is not 658 // accesskey rather than an accelerator key. Activation of an accesskey is not
657 // a part of the default action of the key event, so it should not be 659 // a part of the default action of the key event, so it should not be
658 // suppressed at all. 660 // suppressed at all.
659 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestAccessDSuppress)); 661 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestAccessDSuppress));
660 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER)); 662 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER));
661 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L"D")); 663 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L"D"));
662 664
663 // Blur the focused element. 665 // Blur the focused element.
664 EXPECT_NO_FATAL_FAILURE(SetFocusedElement(tab_index, L"")); 666 EXPECT_NO_FATAL_FAILURE(SetFocusedElement(tab_index, ""));
665 // Make sure no element is focused. 667 // Make sure no element is focused.
666 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L"")); 668 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L""));
667 #if !defined(USE_ASH) 669 #if !defined(USE_ASH)
668 // On Ash, alt-1..9 are assigned as window selection global accelerators, so 670 // On Ash, alt-1..9 are assigned as window selection global accelerators, so
669 // they can not be used as accesskeys. 671 // they can not be used as accesskeys.
670 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestAccess1)); 672 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestAccess1));
671 #if defined(TOOLKIT_GTK) 673 #if defined(TOOLKIT_GTK)
672 // On GTK, alt-0..9 are assigned as tab selection accelerators, so they can 674 // On GTK, alt-0..9 are assigned as tab selection accelerators, so they can
673 // not be used as accesskeys. 675 // not be used as accesskeys.
674 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L"")); 676 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L""));
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
785 ASSERT_TRUE(test_server()->Start()); 787 ASSERT_TRUE(test_server()->Start());
786 788
787 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 789 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
788 GURL url = test_server()->GetURL(kTestingPage); 790 GURL url = test_server()->GetURL(kTestingPage);
789 ui_test_utils::NavigateToURL(browser(), url); 791 ui_test_utils::NavigateToURL(browser(), url);
790 792
791 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); 793 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER));
792 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER)); 794 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER));
793 795
794 int tab_index = browser()->active_index(); 796 int tab_index = browser()->active_index();
795 ASSERT_NO_FATAL_FAILURE(SetFocusedElement(tab_index, L"A")); 797 ASSERT_NO_FATAL_FAILURE(SetFocusedElement(tab_index, "A"));
796 ASSERT_NO_FATAL_FAILURE(SetTextBoxValue(tab_index, L"A", L"Hello")); 798 ASSERT_NO_FATAL_FAILURE(SetTextBoxValue(tab_index, "A", "Hello"));
797 // Move the caret to the beginning of the line. 799 // Move the caret to the beginning of the line.
798 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlA)); 800 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlA));
799 // Forward one character 801 // Forward one character
800 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlF)); 802 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlF));
801 // Delete to the end of the line. 803 // Delete to the end of the line.
802 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlK)); 804 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlK));
803 EXPECT_NO_FATAL_FAILURE(CheckTextBoxValue(tab_index, L"A", L"H")); 805 EXPECT_NO_FATAL_FAILURE(CheckTextBoxValue(tab_index, "A", L"H"));
804 } 806 }
805 #endif 807 #endif
806 808
807 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, PageUpDownKeys) { 809 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, PageUpDownKeys) {
808 static const KeyEventTestData kTestPageUp = { 810 static const KeyEventTestData kTestPageUp = {
809 ui::VKEY_PRIOR, false, false, false, false, 811 ui::VKEY_PRIOR, false, false, false, false,
810 false, false, false, false, 2, 812 false, false, false, false, 2,
811 { "D 33 0 false false false false", 813 { "D 33 0 false false false false",
812 "U 33 0 false false false false" } 814 "U 33 0 false false false false" }
813 }; 815 };
814 816
815 static const KeyEventTestData kTestPageDown = { 817 static const KeyEventTestData kTestPageDown = {
816 ui::VKEY_NEXT, false, false, false, false, 818 ui::VKEY_NEXT, false, false, false, false,
817 false, false, false, false, 2, 819 false, false, false, false, 2,
818 { "D 34 0 false false false false", 820 { "D 34 0 false false false false",
819 "U 34 0 false false false false" } 821 "U 34 0 false false false false" }
820 }; 822 };
821 823
822 ASSERT_TRUE(test_server()->Start()); 824 ASSERT_TRUE(test_server()->Start());
823 825
824 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 826 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
825 GURL url = test_server()->GetURL(kTestingPage); 827 GURL url = test_server()->GetURL(kTestingPage);
826 ui_test_utils::NavigateToURL(browser(), url); 828 ui_test_utils::NavigateToURL(browser(), url);
827 829
828 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); 830 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER));
829 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER)); 831 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER));
830 832
831 int tab_index = browser()->active_index(); 833 int tab_index = browser()->active_index();
832 ASSERT_NO_FATAL_FAILURE(SetFocusedElement(tab_index, L"A")); 834 ASSERT_NO_FATAL_FAILURE(SetFocusedElement(tab_index, "A"));
833 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestPageUp)); 835 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestPageUp));
834 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestPageDown)); 836 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestPageDown));
835 EXPECT_NO_FATAL_FAILURE(CheckTextBoxValue(tab_index, L"A", L"")); 837 EXPECT_NO_FATAL_FAILURE(CheckTextBoxValue(tab_index, "A", L""));
836 } 838 }
837 839
838 #if defined(OS_WIN) 840 #if defined(OS_WIN)
839 // AltKey is enabled only on Windows. See crbug.com/114537. 841 // AltKey is enabled only on Windows. See crbug.com/114537.
840 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, FocusMenuBarByAltKey) { 842 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, FocusMenuBarByAltKey) {
841 static const KeyEventTestData kTestAltKey = { 843 static const KeyEventTestData kTestAltKey = {
842 ui::VKEY_MENU, false, false, false, false, 844 ui::VKEY_MENU, false, false, false, false,
843 false, false, false, false, 2, 845 false, false, false, false, 2,
844 { "D 18 0 false false true false", 846 { "D 18 0 false false true false",
845 "U 18 0 false false true false" } 847 "U 18 0 false false true false" }
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
882 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestAltKeySuppress)); 884 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestAltKeySuppress));
883 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER)); 885 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER));
884 886
885 // Ctrl+Alt should have no effect. 887 // Ctrl+Alt should have no effect.
886 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlAltKey)); 888 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlAltKey));
887 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER)); 889 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER));
888 } 890 }
889 #endif 891 #endif
890 892
891 } // namespace 893 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698