OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <stdio.h> | 5 #include <stdio.h> |
6 | 6 |
7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
8 #include "base/string16.h" | 8 #include "base/string16.h" |
9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
10 #include "base/time.h" | 10 #include "base/time.h" |
(...skipping 12 matching lines...) Expand all Loading... |
23 #include "chrome/browser/search_engines/template_url_model.h" | 23 #include "chrome/browser/search_engines/template_url_model.h" |
24 #include "chrome/browser/tab_contents/tab_contents.h" | 24 #include "chrome/browser/tab_contents/tab_contents.h" |
25 #include "chrome/browser/ui/browser.h" | 25 #include "chrome/browser/ui/browser.h" |
26 #include "chrome/browser/ui/omnibox/location_bar.h" | 26 #include "chrome/browser/ui/omnibox/location_bar.h" |
27 #include "chrome/common/chrome_paths.h" | 27 #include "chrome/common/chrome_paths.h" |
28 #include "chrome/common/notification_service.h" | 28 #include "chrome/common/notification_service.h" |
29 #include "chrome/common/url_constants.h" | 29 #include "chrome/common/url_constants.h" |
30 #include "chrome/test/in_process_browser_test.h" | 30 #include "chrome/test/in_process_browser_test.h" |
31 #include "chrome/test/ui_test_utils.h" | 31 #include "chrome/test/ui_test_utils.h" |
32 #include "net/base/mock_host_resolver.h" | 32 #include "net/base/mock_host_resolver.h" |
| 33 #include "ui/base/events.h" |
33 #include "ui/base/keycodes/keyboard_codes.h" | 34 #include "ui/base/keycodes/keyboard_codes.h" |
34 #include "views/events/event.h" | |
35 | 35 |
36 #if defined(OS_LINUX) | 36 #if defined(OS_LINUX) |
37 #include <gdk/gdk.h> | 37 #include <gdk/gdk.h> |
38 #include <gtk/gtk.h> | 38 #include <gtk/gtk.h> |
39 #endif | 39 #endif |
40 | 40 |
41 #if defined(TOOLKIT_VIEWS) | 41 #if defined(TOOLKIT_VIEWS) |
42 #include "views/controls/textfield/native_textfield_views.h" | 42 #include "views/controls/textfield/native_textfield_views.h" |
| 43 #include "views/events/event.h" |
43 #endif | 44 #endif |
44 | 45 |
45 using base::Time; | 46 using base::Time; |
46 using base::TimeDelta; | 47 using base::TimeDelta; |
47 | 48 |
48 namespace { | 49 namespace { |
49 | 50 |
50 const char kSearchKeyword[] = "foo"; | 51 const char kSearchKeyword[] = "foo"; |
51 const wchar_t kSearchKeywordKeys[] = { | 52 const wchar_t kSearchKeywordKeys[] = { |
52 ui::VKEY_F, ui::VKEY_O, ui::VKEY_O, 0 | 53 ui::VKEY_F, ui::VKEY_O, ui::VKEY_O, 0 |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
124 | 125 |
125 // Stores the given text to clipboard. | 126 // Stores the given text to clipboard. |
126 void SetClipboardText(const char* text) { | 127 void SetClipboardText(const char* text) { |
127 GtkClipboard* clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD); | 128 GtkClipboard* clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD); |
128 DCHECK(clipboard); | 129 DCHECK(clipboard); |
129 | 130 |
130 gtk_clipboard_set_text(clipboard, text, -1); | 131 gtk_clipboard_set_text(clipboard, text, -1); |
131 } | 132 } |
132 #endif | 133 #endif |
133 | 134 |
| 135 #if defined(OS_MACOSX) |
| 136 const int kCtrlOrCmdMask = ui::EF_COMMAND_DOWN; |
| 137 #else |
| 138 const int kCtrlOrCmdMask = ui::EF_CONTROL_DOWN; |
| 139 #endif |
| 140 |
134 } // namespace | 141 } // namespace |
135 | 142 |
136 class AutocompleteEditViewTest : public InProcessBrowserTest, | 143 class AutocompleteEditViewTest : public InProcessBrowserTest, |
137 public NotificationObserver { | 144 public NotificationObserver { |
138 protected: | 145 protected: |
139 AutocompleteEditViewTest() { | 146 AutocompleteEditViewTest() { |
140 set_show_window(true); | 147 set_show_window(true); |
141 } | 148 } |
142 | 149 |
143 virtual void SetUpOnMainThread() { | 150 virtual void SetUpOnMainThread() { |
(...skipping 18 matching lines...) Expand all Loading... |
162 *edit_view = loc_bar->location_entry(); | 169 *edit_view = loc_bar->location_entry(); |
163 ASSERT_TRUE(*edit_view); | 170 ASSERT_TRUE(*edit_view); |
164 } | 171 } |
165 | 172 |
166 void GetAutocompleteEditView(AutocompleteEditView** edit_view) { | 173 void GetAutocompleteEditView(AutocompleteEditView** edit_view) { |
167 GetAutocompleteEditViewForBrowser(browser(), edit_view); | 174 GetAutocompleteEditViewForBrowser(browser(), edit_view); |
168 } | 175 } |
169 | 176 |
170 static void SendKeyForBrowser(const Browser* browser, | 177 static void SendKeyForBrowser(const Browser* browser, |
171 ui::KeyboardCode key, | 178 ui::KeyboardCode key, |
172 bool control, | 179 int modifiers) { |
173 bool shift, | |
174 bool alt) { | |
175 ASSERT_TRUE(ui_test_utils::SendKeyPressSync( | 180 ASSERT_TRUE(ui_test_utils::SendKeyPressSync( |
176 browser, key, control, shift, alt, false /* command */)); | 181 browser, key, |
| 182 (modifiers & ui::EF_CONTROL_DOWN) != 0, |
| 183 (modifiers & ui::EF_SHIFT_DOWN) != 0, |
| 184 (modifiers & ui::EF_ALT_DOWN) != 0, |
| 185 (modifiers & ui::EF_COMMAND_DOWN) != 0)); |
177 } | 186 } |
178 | 187 |
179 void SendKey(ui::KeyboardCode key, bool control, bool shift, bool alt) { | 188 void SendKey(ui::KeyboardCode key, int modifiers) { |
180 SendKeyForBrowser(browser(), key, control, shift, alt); | 189 SendKeyForBrowser(browser(), key, modifiers); |
181 } | 190 } |
182 | 191 |
183 void SendKeySequence(const wchar_t* keys) { | 192 void SendKeySequence(const wchar_t* keys) { |
184 for (; *keys; ++keys) | 193 for (; *keys; ++keys) |
185 ASSERT_NO_FATAL_FAILURE(SendKey(static_cast<ui::KeyboardCode>(*keys), | 194 ASSERT_NO_FATAL_FAILURE(SendKey(static_cast<ui::KeyboardCode>(*keys), 0)); |
186 false, false, false)); | 195 } |
| 196 |
| 197 bool SendKeyAndWait(const Browser* browser, |
| 198 ui::KeyboardCode key, |
| 199 int modifiers, |
| 200 NotificationType type, |
| 201 const NotificationSource& source) WARN_UNUSED_RESULT { |
| 202 return ui_test_utils::SendKeyPressAndWait( |
| 203 browser, key, |
| 204 (modifiers & ui::EF_CONTROL_DOWN) != 0, |
| 205 (modifiers & ui::EF_SHIFT_DOWN) != 0, |
| 206 (modifiers & ui::EF_ALT_DOWN) != 0, |
| 207 (modifiers & ui::EF_COMMAND_DOWN) != 0, |
| 208 type, source); |
187 } | 209 } |
188 | 210 |
189 void WaitForTabOpenOrCloseForBrowser(const Browser* browser, | 211 void WaitForTabOpenOrCloseForBrowser(const Browser* browser, |
190 int expected_tab_count) { | 212 int expected_tab_count) { |
191 int tab_count = browser->tab_count(); | 213 int tab_count = browser->tab_count(); |
192 if (tab_count == expected_tab_count) | 214 if (tab_count == expected_tab_count) |
193 return; | 215 return; |
194 | 216 |
195 NotificationRegistrar registrar; | 217 NotificationRegistrar registrar; |
196 registrar.Add(this, | 218 registrar.Add(this, |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
339 AutocompleteEditView* edit_view = NULL; | 361 AutocompleteEditView* edit_view = NULL; |
340 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 362 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
341 | 363 |
342 int tab_count = browser()->tab_count(); | 364 int tab_count = browser()->tab_count(); |
343 | 365 |
344 // Create a new Tab. | 366 // Create a new Tab. |
345 browser()->NewTab(); | 367 browser()->NewTab(); |
346 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count + 1)); | 368 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count + 1)); |
347 | 369 |
348 // Select the first Tab. | 370 // Select the first Tab. |
349 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_1, true, false, false)); | 371 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_1, kCtrlOrCmdMask)); |
350 ASSERT_EQ(0, browser()->selected_index()); | 372 ASSERT_EQ(0, browser()->selected_index()); |
351 | 373 |
352 browser()->FocusLocationBar(); | 374 browser()->FocusLocationBar(); |
353 | 375 |
354 // Select the second Tab. | 376 // Select the second Tab. |
355 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_2, true, false, false)); | 377 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_2, kCtrlOrCmdMask)); |
356 ASSERT_EQ(1, browser()->selected_index()); | 378 ASSERT_EQ(1, browser()->selected_index()); |
357 | 379 |
358 browser()->FocusLocationBar(); | 380 browser()->FocusLocationBar(); |
359 | 381 |
360 // Try ctrl-w to close a Tab. | 382 // Try ctrl-w to close a Tab. |
361 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_W, true, false, false)); | 383 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_W, kCtrlOrCmdMask)); |
362 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count)); | 384 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count)); |
363 | 385 |
364 // Try ctrl-l to focus location bar. | 386 // Try ctrl-l to focus location bar. |
365 edit_view->SetUserText(ASCIIToUTF16("Hello world")); | 387 edit_view->SetUserText(ASCIIToUTF16("Hello world")); |
366 EXPECT_FALSE(edit_view->IsSelectAll()); | 388 EXPECT_FALSE(edit_view->IsSelectAll()); |
367 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_L, true, false, false)); | 389 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_L, kCtrlOrCmdMask)); |
368 EXPECT_TRUE(edit_view->IsSelectAll()); | 390 EXPECT_TRUE(edit_view->IsSelectAll()); |
369 | 391 |
370 // Try editing the location bar text. | 392 // Try editing the location bar text. |
371 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RIGHT, false, false, false)); | 393 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RIGHT, 0)); |
372 EXPECT_FALSE(edit_view->IsSelectAll()); | 394 EXPECT_FALSE(edit_view->IsSelectAll()); |
373 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_S, false, false, false)); | 395 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_S, 0)); |
374 EXPECT_EQ(ASCIIToUTF16("Hello worlds"), edit_view->GetText()); | 396 EXPECT_EQ(ASCIIToUTF16("Hello worlds"), edit_view->GetText()); |
375 | 397 |
376 // Try ctrl-x to cut text. | 398 // Try ctrl-x to cut text. |
377 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, true, true, false)); | 399 #if defined(OS_MACOSX) |
| 400 // Mac uses alt-left/right to select a word. |
| 401 ASSERT_NO_FATAL_FAILURE( |
| 402 SendKey(ui::VKEY_LEFT, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN)); |
| 403 #else |
| 404 ASSERT_NO_FATAL_FAILURE( |
| 405 SendKey(ui::VKEY_LEFT, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN)); |
| 406 #endif |
378 EXPECT_FALSE(edit_view->IsSelectAll()); | 407 EXPECT_FALSE(edit_view->IsSelectAll()); |
379 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_X, true, false, false)); | 408 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_X, kCtrlOrCmdMask)); |
380 EXPECT_EQ(ASCIIToUTF16("Hello "), edit_view->GetText()); | 409 EXPECT_EQ(ASCIIToUTF16("Hello "), edit_view->GetText()); |
381 | 410 |
382 #if !defined(OS_CHROMEOS) | 411 #if !defined(OS_CHROMEOS) && !defined(OS_MACOSX) |
383 // Try alt-f4 to close the browser. | 412 // Try alt-f4 to close the browser. |
384 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( | 413 ASSERT_TRUE(SendKeyAndWait( |
385 browser(), ui::VKEY_F4, false, false, true, false, | 414 browser(), ui::VKEY_F4, ui::EF_ALT_DOWN, |
386 NotificationType::BROWSER_CLOSED, Source<Browser>(browser()))); | 415 NotificationType::BROWSER_CLOSED, Source<Browser>(browser()))); |
387 #endif | 416 #endif |
388 } | 417 } |
389 | 418 |
390 void PopupAcceleratorsTest() { | 419 void PopupAcceleratorsTest() { |
391 // Create a popup. | 420 // Create a popup. |
392 Browser* popup = CreateBrowserForPopup(browser()->profile()); | 421 Browser* popup = CreateBrowserForPopup(browser()->profile()); |
| 422 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(popup)); |
393 AutocompleteEditView* edit_view = NULL; | 423 AutocompleteEditView* edit_view = NULL; |
394 ASSERT_NO_FATAL_FAILURE( | 424 ASSERT_NO_FATAL_FAILURE( |
395 GetAutocompleteEditViewForBrowser(popup, &edit_view)); | 425 GetAutocompleteEditViewForBrowser(popup, &edit_view)); |
396 popup->FocusLocationBar(); | 426 popup->FocusLocationBar(); |
397 EXPECT_TRUE(edit_view->IsSelectAll()); | 427 EXPECT_TRUE(edit_view->IsSelectAll()); |
398 | 428 |
| 429 #if !defined(OS_MACOSX) |
399 // Try ctrl-w to close the popup. | 430 // Try ctrl-w to close the popup. |
400 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( | 431 // This piece of code doesn't work on Mac, because the Browser object won't |
401 popup, ui::VKEY_W, true, false, false, false, | 432 // be destroyed before finishing the current message loop iteration, thus |
| 433 // No BROWSER_CLOSED notification will be sent. |
| 434 ASSERT_TRUE(SendKeyAndWait( |
| 435 popup, ui::VKEY_W, ui::EF_CONTROL_DOWN, |
402 NotificationType::BROWSER_CLOSED, Source<Browser>(popup))); | 436 NotificationType::BROWSER_CLOSED, Source<Browser>(popup))); |
403 | 437 |
404 // Create another popup. | 438 // Create another popup. |
405 popup = CreateBrowserForPopup(browser()->profile()); | 439 popup = CreateBrowserForPopup(browser()->profile()); |
| 440 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(popup)); |
406 ASSERT_NO_FATAL_FAILURE( | 441 ASSERT_NO_FATAL_FAILURE( |
407 GetAutocompleteEditViewForBrowser(popup, &edit_view)); | 442 GetAutocompleteEditViewForBrowser(popup, &edit_view)); |
| 443 #endif |
408 | 444 |
409 // Set the edit text to "Hello world". | 445 // Set the edit text to "Hello world". |
410 edit_view->SetUserText(ASCIIToUTF16("Hello world")); | 446 edit_view->SetUserText(ASCIIToUTF16("Hello world")); |
411 EXPECT_FALSE(edit_view->IsSelectAll()); | |
412 popup->FocusLocationBar(); | 447 popup->FocusLocationBar(); |
413 EXPECT_TRUE(edit_view->IsSelectAll()); | 448 EXPECT_TRUE(edit_view->IsSelectAll()); |
414 | 449 |
415 // Try editing the location bar text -- should be disallowed. | 450 // Try editing the location bar text -- should be disallowed. |
416 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_RIGHT, false, | 451 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_S, 0)); |
417 false, false)); | |
418 EXPECT_FALSE(edit_view->IsSelectAll()); | |
419 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_S, false, false, | |
420 false)); | |
421 EXPECT_EQ(ASCIIToUTF16("Hello world"), edit_view->GetText()); | 452 EXPECT_EQ(ASCIIToUTF16("Hello world"), edit_view->GetText()); |
| 453 EXPECT_TRUE(edit_view->IsSelectAll()); |
422 | 454 |
423 // Try ctrl-x to cut text -- should be disallowed. | 455 ASSERT_NO_FATAL_FAILURE( |
424 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_LEFT, true, true, | 456 SendKeyForBrowser(popup, ui::VKEY_X, kCtrlOrCmdMask)); |
425 false)); | |
426 EXPECT_FALSE(edit_view->IsSelectAll()); | |
427 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_X, true, false, | |
428 false)); | |
429 EXPECT_EQ(ASCIIToUTF16("Hello world"), edit_view->GetText()); | 457 EXPECT_EQ(ASCIIToUTF16("Hello world"), edit_view->GetText()); |
| 458 EXPECT_TRUE(edit_view->IsSelectAll()); |
430 | 459 |
431 #if !defined(OS_CHROMEOS) | 460 #if !defined(OS_CHROMEOS) && !defined(OS_MACOSX) |
432 // Try alt-f4 to close the popup. | 461 // Try alt-f4 to close the popup. |
433 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( | 462 ASSERT_TRUE(SendKeyAndWait( |
434 popup, ui::VKEY_F4, false, false, true, false, | 463 popup, ui::VKEY_F4, ui::EF_ALT_DOWN, |
435 NotificationType::BROWSER_CLOSED, Source<Browser>(popup))); | 464 NotificationType::BROWSER_CLOSED, Source<Browser>(popup))); |
436 #endif | 465 #endif |
437 } | 466 } |
438 | 467 |
439 void BackspaceInKeywordModeTest() { | 468 void BackspaceInKeywordModeTest() { |
440 AutocompleteEditView* edit_view = NULL; | 469 AutocompleteEditView* edit_view = NULL; |
441 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 470 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
442 | 471 |
443 // Trigger keyword hint mode. | 472 // Trigger keyword hint mode. |
444 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); | 473 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); |
445 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 474 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
446 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 475 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
447 | 476 |
448 // Trigger keyword mode. | 477 // Trigger keyword mode. |
449 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 478 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, 0)); |
450 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 479 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
451 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 480 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
452 | 481 |
453 // Backspace without search text should bring back keyword hint mode. | 482 // Backspace without search text should bring back keyword hint mode. |
454 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 483 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, 0)); |
455 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 484 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
456 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 485 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
457 | 486 |
458 // Trigger keyword mode again. | 487 // Trigger keyword mode again. |
459 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 488 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, 0)); |
460 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 489 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
461 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 490 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
462 | 491 |
463 // Input something as search text. | 492 // Input something as search text. |
464 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); | 493 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); |
465 | 494 |
466 // Should stay in keyword mode while deleting search text by pressing | 495 // Should stay in keyword mode while deleting search text by pressing |
467 // backspace. | 496 // backspace. |
468 for (size_t i = 0; i < arraysize(kSearchText) - 1; ++i) { | 497 for (size_t i = 0; i < arraysize(kSearchText) - 1; ++i) { |
469 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 498 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, 0)); |
470 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 499 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
471 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 500 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
472 } | 501 } |
473 | 502 |
474 // Input something as search text. | 503 // Input something as search text. |
475 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); | 504 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); |
476 | 505 |
477 // Move cursor to the beginning of the search text. | 506 // Move cursor to the beginning of the search text. |
478 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, false, false)); | 507 #if defined(OS_MACOSX) |
| 508 // Home doesn't work on Mac trybot. |
| 509 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_A, ui::EF_CONTROL_DOWN)); |
| 510 #else |
| 511 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, 0)); |
| 512 #endif |
479 // Backspace at the beginning of the search text shall turn off | 513 // Backspace at the beginning of the search text shall turn off |
480 // the keyword mode. | 514 // the keyword mode. |
481 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 515 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, 0)); |
482 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 516 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
483 ASSERT_EQ(string16(), edit_view->model()->keyword()); | 517 ASSERT_EQ(string16(), edit_view->model()->keyword()); |
484 ASSERT_EQ(std::string(kSearchKeyword) + kSearchText, | 518 ASSERT_EQ(std::string(kSearchKeyword) + kSearchText, |
485 UTF16ToUTF8(edit_view->GetText())); | 519 UTF16ToUTF8(edit_view->GetText())); |
486 } | 520 } |
487 | 521 |
488 void EscapeTest() { | 522 void EscapeTest() { |
489 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIHistoryURL)); | 523 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIHistoryURL)); |
490 browser()->FocusLocationBar(); | 524 browser()->FocusLocationBar(); |
491 | 525 |
492 AutocompleteEditView* edit_view = NULL; | 526 AutocompleteEditView* edit_view = NULL; |
493 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 527 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
494 | 528 |
495 string16 old_text = edit_view->GetText(); | 529 string16 old_text = edit_view->GetText(); |
496 EXPECT_FALSE(old_text.empty()); | 530 EXPECT_FALSE(old_text.empty()); |
497 EXPECT_TRUE(edit_view->IsSelectAll()); | 531 EXPECT_TRUE(edit_view->IsSelectAll()); |
498 | 532 |
499 // Delete all text in omnibox. | 533 // Delete all text in omnibox. |
500 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 534 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, 0)); |
501 EXPECT_TRUE(edit_view->GetText().empty()); | 535 EXPECT_TRUE(edit_view->GetText().empty()); |
502 | 536 |
503 // Escape shall revert the text in omnibox. | 537 // Escape shall revert the text in omnibox. |
504 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_ESCAPE, false, false, false)); | 538 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_ESCAPE, 0)); |
505 EXPECT_EQ(old_text, edit_view->GetText()); | 539 EXPECT_EQ(old_text, edit_view->GetText()); |
506 EXPECT_TRUE(edit_view->IsSelectAll()); | 540 EXPECT_TRUE(edit_view->IsSelectAll()); |
507 } | 541 } |
508 | 542 |
509 void DesiredTLDTest() { | 543 void DesiredTLDTest() { |
510 AutocompleteEditView* edit_view = NULL; | 544 AutocompleteEditView* edit_view = NULL; |
511 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 545 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
512 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); | 546 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); |
513 ASSERT_TRUE(popup_model); | 547 ASSERT_TRUE(popup_model); |
514 | 548 |
515 // Test ctrl-Enter. | 549 // Test ctrl-Enter. |
516 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kDesiredTLDKeys)); | 550 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kDesiredTLDKeys)); |
517 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 551 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
518 ASSERT_TRUE(popup_model->IsOpen()); | 552 ASSERT_TRUE(popup_model->IsOpen()); |
519 // ctrl-Enter triggers desired_tld feature, thus www.bar.com shall be | 553 // ctrl-Enter triggers desired_tld feature, thus www.bar.com shall be |
520 // opened. | 554 // opened. |
521 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, true, false, false)); | 555 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, ui::EF_CONTROL_DOWN)); |
522 | 556 |
523 GURL url = browser()->GetSelectedTabContents()->GetURL(); | 557 GURL url = browser()->GetSelectedTabContents()->GetURL(); |
524 EXPECT_STREQ(kDesiredTLDHostname, url.host().c_str()); | 558 EXPECT_STREQ(kDesiredTLDHostname, url.host().c_str()); |
525 } | 559 } |
526 | 560 |
527 void AltEnterTest() { | 561 void AltEnterTest() { |
528 AutocompleteEditView* edit_view = NULL; | 562 AutocompleteEditView* edit_view = NULL; |
529 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 563 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
530 | 564 |
531 edit_view->SetUserText(ASCIIToUTF16(chrome::kChromeUIHistoryURL)); | 565 edit_view->SetUserText(ASCIIToUTF16(chrome::kChromeUIHistoryURL)); |
532 int tab_count = browser()->tab_count(); | 566 int tab_count = browser()->tab_count(); |
533 // alt-Enter opens a new tab. | 567 // alt-Enter opens a new tab. |
534 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, true)); | 568 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, ui::EF_ALT_DOWN)); |
535 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count + 1)); | 569 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count + 1)); |
536 } | 570 } |
537 | 571 |
538 void EnterToSearchTest() { | 572 void EnterToSearchTest() { |
539 AutocompleteEditView* edit_view = NULL; | 573 AutocompleteEditView* edit_view = NULL; |
540 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 574 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
541 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); | 575 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); |
542 ASSERT_TRUE(popup_model); | 576 ASSERT_TRUE(popup_model); |
543 | 577 |
544 // Test Enter to search. | 578 // Test Enter to search. |
545 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); | 579 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); |
546 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 580 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
547 ASSERT_TRUE(popup_model->IsOpen()); | 581 ASSERT_TRUE(popup_model->IsOpen()); |
548 | 582 |
549 // Check if the default match result is Search Primary Provider. | 583 // Check if the default match result is Search Primary Provider. |
550 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, | 584 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, |
551 popup_model->result().default_match()->type); | 585 popup_model->result().default_match()->type); |
552 | 586 |
553 // Open the default match. | 587 // Open the default match. |
554 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, false)); | 588 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, 0)); |
555 GURL url = browser()->GetSelectedTabContents()->GetURL(); | 589 GURL url = browser()->GetSelectedTabContents()->GetURL(); |
556 EXPECT_STREQ(kSearchTextURL, url.spec().c_str()); | 590 EXPECT_STREQ(kSearchTextURL, url.spec().c_str()); |
557 | 591 |
558 // Test that entering a single character then Enter performs a search. | 592 // Test that entering a single character then Enter performs a search. |
559 browser()->FocusLocationBar(); | 593 browser()->FocusLocationBar(); |
560 EXPECT_TRUE(edit_view->IsSelectAll()); | 594 EXPECT_TRUE(edit_view->IsSelectAll()); |
561 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchSingleCharKeys)); | 595 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchSingleCharKeys)); |
562 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 596 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
563 ASSERT_TRUE(popup_model->IsOpen()); | 597 ASSERT_TRUE(popup_model->IsOpen()); |
564 EXPECT_EQ(kSearchSingleChar, UTF16ToUTF8(edit_view->GetText())); | 598 EXPECT_EQ(kSearchSingleChar, UTF16ToUTF8(edit_view->GetText())); |
565 | 599 |
566 // Check if the default match result is Search Primary Provider. | 600 // Check if the default match result is Search Primary Provider. |
567 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, | 601 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, |
568 popup_model->result().default_match()->type); | 602 popup_model->result().default_match()->type); |
569 | 603 |
570 // Open the default match. | 604 // Open the default match. |
571 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, false)); | 605 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, 0)); |
572 url = browser()->GetSelectedTabContents()->GetURL(); | 606 url = browser()->GetSelectedTabContents()->GetURL(); |
573 EXPECT_STREQ(kSearchSingleCharURL, url.spec().c_str()); | 607 EXPECT_STREQ(kSearchSingleCharURL, url.spec().c_str()); |
574 } | 608 } |
575 | 609 |
576 void EscapeToDefaultMatchTest() { | 610 void EscapeToDefaultMatchTest() { |
577 AutocompleteEditView* edit_view = NULL; | 611 AutocompleteEditView* edit_view = NULL; |
578 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 612 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
579 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); | 613 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); |
580 ASSERT_TRUE(popup_model); | 614 ASSERT_TRUE(popup_model); |
581 | 615 |
582 // Input something to trigger inline autocomplete. | 616 // Input something to trigger inline autocomplete. |
583 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kInlineAutocompleteTextKeys)); | 617 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kInlineAutocompleteTextKeys)); |
584 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 618 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
585 ASSERT_TRUE(popup_model->IsOpen()); | 619 ASSERT_TRUE(popup_model->IsOpen()); |
586 | 620 |
587 string16 old_text = edit_view->GetText(); | 621 string16 old_text = edit_view->GetText(); |
588 | 622 |
589 // Make sure inline autocomplete is triggerred. | 623 // Make sure inline autocomplete is triggerred. |
590 EXPECT_GT(old_text.length(), arraysize(kInlineAutocompleteText) - 1); | 624 EXPECT_GT(old_text.length(), arraysize(kInlineAutocompleteText) - 1); |
591 | 625 |
592 size_t old_selected_line = popup_model->selected_line(); | 626 size_t old_selected_line = popup_model->selected_line(); |
593 EXPECT_EQ(0U, old_selected_line); | 627 EXPECT_EQ(0U, old_selected_line); |
594 | 628 |
595 // Move to another line with different text. | 629 // Move to another line with different text. |
596 size_t size = popup_model->result().size(); | 630 size_t size = popup_model->result().size(); |
597 while (popup_model->selected_line() < size - 1) { | 631 while (popup_model->selected_line() < size - 1) { |
598 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DOWN, false, false, false)); | 632 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DOWN, 0)); |
599 ASSERT_NE(old_selected_line, popup_model->selected_line()); | 633 ASSERT_NE(old_selected_line, popup_model->selected_line()); |
600 if (old_text != edit_view->GetText()) | 634 if (old_text != edit_view->GetText()) |
601 break; | 635 break; |
602 } | 636 } |
603 | 637 |
604 EXPECT_NE(old_text, edit_view->GetText()); | 638 EXPECT_NE(old_text, edit_view->GetText()); |
605 | 639 |
606 // Escape shall revert back to the default match item. | 640 // Escape shall revert back to the default match item. |
607 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_ESCAPE, false, false, false)); | 641 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_ESCAPE, 0)); |
608 EXPECT_EQ(old_text, edit_view->GetText()); | 642 EXPECT_EQ(old_text, edit_view->GetText()); |
609 EXPECT_EQ(old_selected_line, popup_model->selected_line()); | 643 EXPECT_EQ(old_selected_line, popup_model->selected_line()); |
610 } | 644 } |
611 | 645 |
612 void BasicTextOperationsTest() { | 646 void BasicTextOperationsTest() { |
613 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kAboutBlankURL)); | 647 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kAboutBlankURL)); |
614 browser()->FocusLocationBar(); | 648 browser()->FocusLocationBar(); |
615 | 649 |
616 AutocompleteEditView* edit_view = NULL; | 650 AutocompleteEditView* edit_view = NULL; |
617 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 651 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
618 | 652 |
619 string16 old_text = edit_view->GetText(); | 653 string16 old_text = edit_view->GetText(); |
620 EXPECT_EQ(UTF8ToUTF16(chrome::kAboutBlankURL), old_text); | 654 EXPECT_EQ(UTF8ToUTF16(chrome::kAboutBlankURL), old_text); |
621 EXPECT_TRUE(edit_view->IsSelectAll()); | 655 EXPECT_TRUE(edit_view->IsSelectAll()); |
622 | 656 |
623 string16::size_type start, end; | 657 string16::size_type start, end; |
624 edit_view->GetSelectionBounds(&start, &end); | 658 edit_view->GetSelectionBounds(&start, &end); |
625 EXPECT_EQ(0U, start); | 659 EXPECT_EQ(0U, start); |
626 EXPECT_EQ(old_text.size(), end); | 660 EXPECT_EQ(old_text.size(), end); |
627 | 661 |
628 // Move the cursor to the end. | 662 // Move the cursor to the end. |
629 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false)); | 663 #if defined(OS_MACOSX) |
| 664 // End doesn't work on Mac trybot. |
| 665 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_E, ui::EF_CONTROL_DOWN)); |
| 666 #else |
| 667 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, 0)); |
| 668 #endif |
630 EXPECT_FALSE(edit_view->IsSelectAll()); | 669 EXPECT_FALSE(edit_view->IsSelectAll()); |
631 | 670 |
632 // Make sure the cursor is placed correctly. | 671 // Make sure the cursor is placed correctly. |
633 edit_view->GetSelectionBounds(&start, &end); | 672 edit_view->GetSelectionBounds(&start, &end); |
634 EXPECT_EQ(old_text.size(), start); | 673 EXPECT_EQ(old_text.size(), start); |
635 EXPECT_EQ(old_text.size(), end); | 674 EXPECT_EQ(old_text.size(), end); |
636 | 675 |
637 // Insert one character at the end. Make sure we won't insert | 676 // Insert one character at the end. Make sure we won't insert |
638 // anything after the special ZWS mark used in gtk implementation. | 677 // anything after the special ZWS mark used in gtk implementation. |
639 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_A, false, false, false)); | 678 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_A, 0)); |
640 EXPECT_EQ(old_text + char16('a'), edit_view->GetText()); | 679 EXPECT_EQ(old_text + char16('a'), edit_view->GetText()); |
641 | 680 |
642 // Delete one character from the end. Make sure we won't delete the special | 681 // Delete one character from the end. Make sure we won't delete the special |
643 // ZWS mark used in gtk implementation. | 682 // ZWS mark used in gtk implementation. |
644 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 683 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, 0)); |
645 EXPECT_EQ(old_text, edit_view->GetText()); | 684 EXPECT_EQ(old_text, edit_view->GetText()); |
646 | 685 |
647 edit_view->SelectAll(true); | 686 edit_view->SelectAll(true); |
648 EXPECT_TRUE(edit_view->IsSelectAll()); | 687 EXPECT_TRUE(edit_view->IsSelectAll()); |
649 edit_view->GetSelectionBounds(&start, &end); | 688 edit_view->GetSelectionBounds(&start, &end); |
650 EXPECT_EQ(0U, start); | 689 EXPECT_EQ(0U, start); |
651 EXPECT_EQ(old_text.size(), end); | 690 EXPECT_EQ(old_text.size(), end); |
652 | 691 |
653 // Delete the content | 692 // Delete the content |
654 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DELETE, false, false, false)); | 693 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DELETE, 0)); |
655 EXPECT_TRUE(edit_view->IsSelectAll()); | 694 EXPECT_TRUE(edit_view->IsSelectAll()); |
656 edit_view->GetSelectionBounds(&start, &end); | 695 edit_view->GetSelectionBounds(&start, &end); |
657 EXPECT_EQ(0U, start); | 696 EXPECT_EQ(0U, start); |
658 EXPECT_EQ(0U, end); | 697 EXPECT_EQ(0U, end); |
659 EXPECT_TRUE(edit_view->GetText().empty()); | 698 EXPECT_TRUE(edit_view->GetText().empty()); |
660 | 699 |
661 // Check if RevertAll() can set text and cursor correctly. | 700 // Check if RevertAll() can set text and cursor correctly. |
662 edit_view->RevertAll(); | 701 edit_view->RevertAll(); |
663 EXPECT_FALSE(edit_view->IsSelectAll()); | 702 EXPECT_FALSE(edit_view->IsSelectAll()); |
664 EXPECT_EQ(old_text, edit_view->GetText()); | 703 EXPECT_EQ(old_text, edit_view->GetText()); |
665 edit_view->GetSelectionBounds(&start, &end); | 704 edit_view->GetSelectionBounds(&start, &end); |
666 EXPECT_EQ(old_text.size(), start); | 705 EXPECT_EQ(old_text.size(), start); |
667 EXPECT_EQ(old_text.size(), end); | 706 EXPECT_EQ(old_text.size(), end); |
668 } | 707 } |
669 | 708 |
670 void AcceptKeywordBySpaceTest() { | 709 void AcceptKeywordBySpaceTest() { |
671 AutocompleteEditView* edit_view = NULL; | 710 AutocompleteEditView* edit_view = NULL; |
672 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 711 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
673 | 712 |
674 string16 text = UTF8ToUTF16(kSearchKeyword); | 713 string16 text = UTF8ToUTF16(kSearchKeyword); |
675 | 714 |
676 // Trigger keyword hint mode. | 715 // Trigger keyword hint mode. |
677 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); | 716 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); |
678 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 717 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
679 ASSERT_EQ(text, edit_view->model()->keyword()); | 718 ASSERT_EQ(text, edit_view->model()->keyword()); |
680 ASSERT_EQ(text, edit_view->GetText()); | 719 ASSERT_EQ(text, edit_view->GetText()); |
681 | 720 |
682 // Trigger keyword mode by space. | 721 // Trigger keyword mode by space. |
683 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); | 722 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, 0)); |
684 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 723 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
685 ASSERT_EQ(text, edit_view->model()->keyword()); | 724 ASSERT_EQ(text, edit_view->model()->keyword()); |
686 ASSERT_TRUE(edit_view->GetText().empty()); | 725 ASSERT_TRUE(edit_view->GetText().empty()); |
687 | 726 |
688 // Revert to keyword hint mode. | 727 // Revert to keyword hint mode. |
689 edit_view->model()->ClearKeyword(string16()); | 728 edit_view->model()->ClearKeyword(string16()); |
690 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 729 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
691 ASSERT_EQ(text, edit_view->model()->keyword()); | 730 ASSERT_EQ(text, edit_view->model()->keyword()); |
692 ASSERT_EQ(text, edit_view->GetText()); | 731 ASSERT_EQ(text, edit_view->GetText()); |
693 | 732 |
(...skipping 18 matching lines...) Expand all Loading... |
712 edit_view->model()->on_paste(); | 751 edit_view->model()->on_paste(); |
713 edit_view->SetWindowTextAndCaretPos(text + char16(' '), text.length() + 1); | 752 edit_view->SetWindowTextAndCaretPos(text + char16(' '), text.length() + 1); |
714 edit_view->OnAfterPossibleChange(); | 753 edit_view->OnAfterPossibleChange(); |
715 // Should be still in keyword hint mode. | 754 // Should be still in keyword hint mode. |
716 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 755 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
717 ASSERT_EQ(text, edit_view->model()->keyword()); | 756 ASSERT_EQ(text, edit_view->model()->keyword()); |
718 ASSERT_EQ(text + char16(' '), edit_view->GetText()); | 757 ASSERT_EQ(text + char16(' '), edit_view->GetText()); |
719 | 758 |
720 // Keyword shouldn't be accepted by pressing space with a trailing | 759 // Keyword shouldn't be accepted by pressing space with a trailing |
721 // whitespace. | 760 // whitespace. |
722 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); | 761 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, 0)); |
723 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 762 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
724 ASSERT_EQ(text, edit_view->model()->keyword()); | 763 ASSERT_EQ(text, edit_view->model()->keyword()); |
725 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); | 764 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); |
726 | 765 |
727 // Keyword shouldn't be accepted by deleting the trailing space. | 766 // Keyword shouldn't be accepted by deleting the trailing space. |
728 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 767 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, 0)); |
729 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 768 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
730 ASSERT_EQ(text, edit_view->model()->keyword()); | 769 ASSERT_EQ(text, edit_view->model()->keyword()); |
731 ASSERT_EQ(text + char16(' '), edit_view->GetText()); | 770 ASSERT_EQ(text + char16(' '), edit_view->GetText()); |
732 | 771 |
733 // Keyword shouldn't be accepted by pressing space in the middle | 772 // Keyword shouldn't be accepted by pressing space in the middle |
734 // of content. | 773 // of content. |
735 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, false, false, false)); | 774 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, 0)); |
736 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); | 775 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, 0)); |
737 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 776 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
738 ASSERT_EQ(text, edit_view->model()->keyword()); | 777 ASSERT_EQ(text, edit_view->model()->keyword()); |
739 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); | 778 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); |
740 | 779 |
741 // Keyword shouldn't be accepted by pasting "foo bar". | 780 // Keyword shouldn't be accepted by pasting "foo bar". |
742 edit_view->SetUserText(string16()); | 781 edit_view->SetUserText(string16()); |
743 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 782 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
744 ASSERT_TRUE(edit_view->model()->keyword().empty()); | 783 ASSERT_TRUE(edit_view->model()->keyword().empty()); |
745 | 784 |
746 edit_view->OnBeforePossibleChange(); | 785 edit_view->OnBeforePossibleChange(); |
(...skipping 11 matching lines...) Expand all Loading... |
758 edit_view->OnInlineAutocompleteTextMaybeChanged( | 797 edit_view->OnInlineAutocompleteTextMaybeChanged( |
759 text + ASCIIToUTF16(" "), text.length()); | 798 text + ASCIIToUTF16(" "), text.length()); |
760 edit_view->OnAfterPossibleChange(); | 799 edit_view->OnAfterPossibleChange(); |
761 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 800 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
762 ASSERT_EQ(text, edit_view->model()->keyword()); | 801 ASSERT_EQ(text, edit_view->model()->keyword()); |
763 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); | 802 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); |
764 | 803 |
765 string16::size_type start, end; | 804 string16::size_type start, end; |
766 edit_view->GetSelectionBounds(&start, &end); | 805 edit_view->GetSelectionBounds(&start, &end); |
767 ASSERT_NE(start, end); | 806 ASSERT_NE(start, end); |
768 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); | 807 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, 0)); |
769 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 808 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
770 ASSERT_EQ(text, edit_view->model()->keyword()); | 809 ASSERT_EQ(text, edit_view->model()->keyword()); |
771 ASSERT_EQ(string16(), edit_view->GetText()); | 810 ASSERT_EQ(string16(), edit_view->GetText()); |
772 | 811 |
773 edit_view->SetUserText(string16()); | 812 edit_view->SetUserText(string16()); |
774 | 813 |
775 // Space should accept keyword even when inline autocomplete is available. | 814 // Space should accept keyword even when inline autocomplete is available. |
776 const TestHistoryEntry kHistoryFoobar = { | 815 const TestHistoryEntry kHistoryFoobar = { |
777 "http://www.foobar.com", "Page foobar", kSearchText, 10000, 10000, true | 816 "http://www.foobar.com", "Page foobar", kSearchText, 10000, 10000, true |
778 }; | 817 }; |
779 | 818 |
780 // Add a history entry to trigger inline autocomplete when typing "foo". | 819 // Add a history entry to trigger inline autocomplete when typing "foo". |
781 ASSERT_NO_FATAL_FAILURE( | 820 ASSERT_NO_FATAL_FAILURE( |
782 AddHistoryEntry(kHistoryFoobar, Time::Now() - TimeDelta::FromHours(1))); | 821 AddHistoryEntry(kHistoryFoobar, Time::Now() - TimeDelta::FromHours(1))); |
783 | 822 |
784 // Type "foo" to trigger inline autocomplete. | 823 // Type "foo" to trigger inline autocomplete. |
785 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); | 824 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); |
786 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 825 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
787 ASSERT_TRUE(edit_view->model()->popup_model()->IsOpen()); | 826 ASSERT_TRUE(edit_view->model()->popup_model()->IsOpen()); |
788 ASSERT_NE(text, edit_view->GetText()); | 827 ASSERT_NE(text, edit_view->GetText()); |
789 | 828 |
790 // Keyword hint shouldn't be visible. | 829 // Keyword hint shouldn't be visible. |
791 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 830 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
792 ASSERT_TRUE(edit_view->model()->keyword().empty()); | 831 ASSERT_TRUE(edit_view->model()->keyword().empty()); |
793 | 832 |
794 // Trigger keyword mode by space. | 833 // Trigger keyword mode by space. |
795 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); | 834 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, 0)); |
796 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 835 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
797 ASSERT_EQ(text, edit_view->model()->keyword()); | 836 ASSERT_EQ(text, edit_view->model()->keyword()); |
798 ASSERT_TRUE(edit_view->GetText().empty()); | 837 ASSERT_TRUE(edit_view->GetText().empty()); |
799 } | 838 } |
800 | 839 |
801 void NonSubstitutingKeywordTest() { | 840 void NonSubstitutingKeywordTest() { |
802 AutocompleteEditView* edit_view = NULL; | 841 AutocompleteEditView* edit_view = NULL; |
803 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 842 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
804 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); | 843 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); |
805 ASSERT_TRUE(popup_model); | 844 ASSERT_TRUE(popup_model); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
865 ASSERT_TRUE(popup_model); | 904 ASSERT_TRUE(popup_model); |
866 | 905 |
867 string16 old_text = edit_view->GetText(); | 906 string16 old_text = edit_view->GetText(); |
868 | 907 |
869 // Input something that can match history items. | 908 // Input something that can match history items. |
870 edit_view->SetUserText(ASCIIToUTF16("bar")); | 909 edit_view->SetUserText(ASCIIToUTF16("bar")); |
871 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 910 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
872 ASSERT_TRUE(popup_model->IsOpen()); | 911 ASSERT_TRUE(popup_model->IsOpen()); |
873 | 912 |
874 // Delete the inline autocomplete part. | 913 // Delete the inline autocomplete part. |
875 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DELETE, false, false, false)); | 914 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DELETE, 0)); |
876 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 915 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
877 ASSERT_TRUE(popup_model->IsOpen()); | 916 ASSERT_TRUE(popup_model->IsOpen()); |
878 ASSERT_GE(popup_model->result().size(), 3U); | 917 ASSERT_GE(popup_model->result().size(), 3U); |
879 | 918 |
880 string16 user_text = edit_view->GetText(); | 919 string16 user_text = edit_view->GetText(); |
881 ASSERT_EQ(ASCIIToUTF16("bar"), user_text); | 920 ASSERT_EQ(ASCIIToUTF16("bar"), user_text); |
882 edit_view->SelectAll(true); | 921 edit_view->SelectAll(true); |
883 ASSERT_TRUE(edit_view->IsSelectAll()); | 922 ASSERT_TRUE(edit_view->IsSelectAll()); |
884 | 923 |
885 // The first item should be the default match. | 924 // The first item should be the default match. |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
948 ASSERT_TRUE(edit_view->IsSelectAll()); | 987 ASSERT_TRUE(edit_view->IsSelectAll()); |
949 } | 988 } |
950 | 989 |
951 void TabMoveCursorToEndTest() { | 990 void TabMoveCursorToEndTest() { |
952 AutocompleteEditView* edit_view = NULL; | 991 AutocompleteEditView* edit_view = NULL; |
953 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 992 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
954 | 993 |
955 edit_view->SetUserText(ASCIIToUTF16("Hello world")); | 994 edit_view->SetUserText(ASCIIToUTF16("Hello world")); |
956 | 995 |
957 // Move cursor to the beginning. | 996 // Move cursor to the beginning. |
958 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, false, false)); | 997 #if defined(OS_MACOSX) |
| 998 // Home doesn't work on Mac trybot. |
| 999 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_A, ui::EF_CONTROL_DOWN)); |
| 1000 #else |
| 1001 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, 0)); |
| 1002 #endif |
959 | 1003 |
960 string16::size_type start, end; | 1004 string16::size_type start, end; |
961 edit_view->GetSelectionBounds(&start, &end); | 1005 edit_view->GetSelectionBounds(&start, &end); |
962 EXPECT_EQ(0U, start); | 1006 EXPECT_EQ(0U, start); |
963 EXPECT_EQ(0U, end); | 1007 EXPECT_EQ(0U, end); |
964 | 1008 |
965 // Pressing tab should move cursor to the end. | 1009 // Pressing tab should move cursor to the end. |
966 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 1010 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, 0)); |
967 | 1011 |
968 edit_view->GetSelectionBounds(&start, &end); | 1012 edit_view->GetSelectionBounds(&start, &end); |
969 EXPECT_EQ(edit_view->GetText().size(), start); | 1013 EXPECT_EQ(edit_view->GetText().size(), start); |
970 EXPECT_EQ(edit_view->GetText().size(), end); | 1014 EXPECT_EQ(edit_view->GetText().size(), end); |
971 | 1015 |
972 // The location bar should still have focus. | 1016 // The location bar should still have focus. |
973 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); | 1017 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); |
974 | 1018 |
975 // Select all text. | 1019 // Select all text. |
976 edit_view->SelectAll(true); | 1020 edit_view->SelectAll(true); |
977 EXPECT_TRUE(edit_view->IsSelectAll()); | 1021 EXPECT_TRUE(edit_view->IsSelectAll()); |
978 edit_view->GetSelectionBounds(&start, &end); | 1022 edit_view->GetSelectionBounds(&start, &end); |
979 EXPECT_EQ(0U, start); | 1023 EXPECT_EQ(0U, start); |
980 EXPECT_EQ(edit_view->GetText().size(), end); | 1024 EXPECT_EQ(edit_view->GetText().size(), end); |
981 | 1025 |
982 // Pressing tab should move cursor to the end. | 1026 // Pressing tab should move cursor to the end. |
983 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 1027 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, 0)); |
984 | 1028 |
985 edit_view->GetSelectionBounds(&start, &end); | 1029 edit_view->GetSelectionBounds(&start, &end); |
986 EXPECT_EQ(edit_view->GetText().size(), start); | 1030 EXPECT_EQ(edit_view->GetText().size(), start); |
987 EXPECT_EQ(edit_view->GetText().size(), end); | 1031 EXPECT_EQ(edit_view->GetText().size(), end); |
988 | 1032 |
989 // The location bar should still have focus. | 1033 // The location bar should still have focus. |
990 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); | 1034 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); |
991 | 1035 |
992 // Pressing tab when cursor is at the end should change focus. | 1036 // Pressing tab when cursor is at the end should change focus. |
993 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 1037 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, 0)); |
994 | 1038 |
995 ASSERT_FALSE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); | 1039 ASSERT_FALSE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); |
996 } | 1040 } |
997 | 1041 |
998 void PersistKeywordModeOnTabSwitch() { | 1042 void PersistKeywordModeOnTabSwitch() { |
999 AutocompleteEditView* edit_view = NULL; | 1043 AutocompleteEditView* edit_view = NULL; |
1000 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 1044 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
1001 | 1045 |
1002 // Trigger keyword hint mode. | 1046 // Trigger keyword hint mode. |
1003 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); | 1047 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); |
1004 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 1048 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
1005 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 1049 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
1006 | 1050 |
1007 // Trigger keyword mode. | 1051 // Trigger keyword mode. |
1008 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 1052 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, 0)); |
1009 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 1053 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
1010 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 1054 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
1011 | 1055 |
1012 // Input something as search text. | 1056 // Input something as search text. |
1013 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); | 1057 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); |
1014 | 1058 |
1015 // Create a new tab. | 1059 // Create a new tab. |
1016 browser()->NewTab(); | 1060 browser()->NewTab(); |
1017 | 1061 |
1018 // Switch back to the first tab. | 1062 // Switch back to the first tab. |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1129 browser()->FocusLocationBar(); | 1173 browser()->FocusLocationBar(); |
1130 | 1174 |
1131 AutocompleteEditView* edit_view = NULL; | 1175 AutocompleteEditView* edit_view = NULL; |
1132 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 1176 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
1133 | 1177 |
1134 string16 old_text = edit_view->GetText(); | 1178 string16 old_text = edit_view->GetText(); |
1135 EXPECT_EQ(UTF8ToUTF16(chrome::kAboutBlankURL), old_text); | 1179 EXPECT_EQ(UTF8ToUTF16(chrome::kAboutBlankURL), old_text); |
1136 EXPECT_TRUE(edit_view->IsSelectAll()); | 1180 EXPECT_TRUE(edit_view->IsSelectAll()); |
1137 | 1181 |
1138 // Undo should clear the omnibox. | 1182 // Undo should clear the omnibox. |
1139 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1183 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, ui::EF_CONTROL_DOWN)); |
1140 EXPECT_TRUE(edit_view->GetText().empty()); | 1184 EXPECT_TRUE(edit_view->GetText().empty()); |
1141 | 1185 |
1142 // Nothing should happen if undo again. | 1186 // Nothing should happen if undo again. |
1143 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1187 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, ui::EF_CONTROL_DOWN)); |
1144 EXPECT_TRUE(edit_view->GetText().empty()); | 1188 EXPECT_TRUE(edit_view->GetText().empty()); |
1145 | 1189 |
1146 // Redo should restore the original text. | 1190 // Redo should restore the original text. |
1147 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, true, false)); | 1191 ASSERT_NO_FATAL_FAILURE( |
| 1192 SendKey(ui::VKEY_Z, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN)); |
1148 EXPECT_EQ(old_text, edit_view->GetText()); | 1193 EXPECT_EQ(old_text, edit_view->GetText()); |
1149 | 1194 |
1150 // Looks like the undo manager doesn't support restoring selection. | 1195 // Looks like the undo manager doesn't support restoring selection. |
1151 EXPECT_FALSE(edit_view->IsSelectAll()); | 1196 EXPECT_FALSE(edit_view->IsSelectAll()); |
1152 | 1197 |
1153 // The cursor should be at the end. | 1198 // The cursor should be at the end. |
1154 string16::size_type start, end; | 1199 string16::size_type start, end; |
1155 edit_view->GetSelectionBounds(&start, &end); | 1200 edit_view->GetSelectionBounds(&start, &end); |
1156 EXPECT_EQ(old_text.size(), start); | 1201 EXPECT_EQ(old_text.size(), start); |
1157 EXPECT_EQ(old_text.size(), end); | 1202 EXPECT_EQ(old_text.size(), end); |
1158 | 1203 |
1159 // Delete two characters. | 1204 // Delete two characters. |
1160 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 1205 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, 0)); |
1161 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 1206 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, 0)); |
1162 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText()); | 1207 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText()); |
1163 | 1208 |
1164 // Undo delete. | 1209 // Undo delete. |
1165 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1210 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, ui::EF_CONTROL_DOWN)); |
1166 EXPECT_EQ(old_text, edit_view->GetText()); | 1211 EXPECT_EQ(old_text, edit_view->GetText()); |
1167 | 1212 |
1168 // Redo delete. | 1213 // Redo delete. |
1169 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, true, false)); | 1214 ASSERT_NO_FATAL_FAILURE( |
| 1215 SendKey(ui::VKEY_Z, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN)); |
1170 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText()); | 1216 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText()); |
1171 | 1217 |
1172 // Delete everything. | 1218 // Delete everything. |
1173 edit_view->SelectAll(true); | 1219 edit_view->SelectAll(true); |
1174 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 1220 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, 0)); |
1175 EXPECT_TRUE(edit_view->GetText().empty()); | 1221 EXPECT_TRUE(edit_view->GetText().empty()); |
1176 | 1222 |
1177 // Undo delete everything. | 1223 // Undo delete everything. |
1178 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1224 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, ui::EF_CONTROL_DOWN)); |
1179 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText()); | 1225 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText()); |
1180 | 1226 |
1181 // Undo delete two characters. | 1227 // Undo delete two characters. |
1182 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1228 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, ui::EF_CONTROL_DOWN)); |
1183 EXPECT_EQ(old_text, edit_view->GetText()); | 1229 EXPECT_EQ(old_text, edit_view->GetText()); |
1184 | 1230 |
1185 // Undo again. | 1231 // Undo again. |
1186 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1232 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, ui::EF_CONTROL_DOWN)); |
1187 EXPECT_TRUE(edit_view->GetText().empty()); | 1233 EXPECT_TRUE(edit_view->GetText().empty()); |
1188 } | 1234 } |
1189 | 1235 |
1190 // See http://crbug.com/63860 | 1236 // See http://crbug.com/63860 |
1191 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PrimarySelection) { | 1237 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PrimarySelection) { |
1192 AutocompleteEditView* edit_view = NULL; | 1238 AutocompleteEditView* edit_view = NULL; |
1193 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 1239 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
1194 edit_view->SetUserText(ASCIIToUTF16("Hello world")); | 1240 edit_view->SetUserText(ASCIIToUTF16("Hello world")); |
1195 EXPECT_FALSE(edit_view->IsSelectAll()); | 1241 EXPECT_FALSE(edit_view->IsSelectAll()); |
1196 | 1242 |
1197 // Move the cursor to the end. | 1243 // Move the cursor to the end. |
1198 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false)); | 1244 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, 0)); |
1199 | 1245 |
1200 // Select all text by pressing Shift+Home | 1246 // Select all text by pressing Shift+Home |
1201 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, true, false)); | 1247 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, ui::EF_SHIFT_DOWN)); |
1202 EXPECT_TRUE(edit_view->IsSelectAll()); | 1248 EXPECT_TRUE(edit_view->IsSelectAll()); |
1203 | 1249 |
1204 // The selected content should be saved to the PRIMARY clipboard. | 1250 // The selected content should be saved to the PRIMARY clipboard. |
1205 EXPECT_EQ("Hello world", GetPrimarySelectionText()); | 1251 EXPECT_EQ("Hello world", GetPrimarySelectionText()); |
1206 | 1252 |
1207 // Move the cursor to the end. | 1253 // Move the cursor to the end. |
1208 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false)); | 1254 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, 0)); |
1209 EXPECT_FALSE(edit_view->IsSelectAll()); | 1255 EXPECT_FALSE(edit_view->IsSelectAll()); |
1210 | 1256 |
1211 // The content in the PRIMARY clipboard should not be cleared. | 1257 // The content in the PRIMARY clipboard should not be cleared. |
1212 EXPECT_EQ("Hello world", GetPrimarySelectionText()); | 1258 EXPECT_EQ("Hello world", GetPrimarySelectionText()); |
1213 } | 1259 } |
1214 | 1260 |
1215 // See http://crosbug.com/10306 | 1261 // See http://crosbug.com/10306 |
1216 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, | 1262 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, |
1217 BackspaceDeleteHalfWidthKatakana) { | 1263 BackspaceDeleteHalfWidthKatakana) { |
1218 AutocompleteEditView* edit_view = NULL; | 1264 AutocompleteEditView* edit_view = NULL; |
1219 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 1265 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
1220 // Insert text: ダ | 1266 // Insert text: ダ |
1221 edit_view->SetUserText(UTF8ToUTF16("\357\276\200\357\276\236")); | 1267 edit_view->SetUserText(UTF8ToUTF16("\357\276\200\357\276\236")); |
1222 | 1268 |
1223 // Move the cursor to the end. | 1269 // Move the cursor to the end. |
1224 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false)); | 1270 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, 0)); |
1225 | 1271 |
1226 // Backspace should delete one character. | 1272 // Backspace should delete one character. |
1227 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 1273 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, 0)); |
1228 EXPECT_EQ(UTF8ToUTF16("\357\276\200"), edit_view->GetText()); | 1274 EXPECT_EQ(UTF8ToUTF16("\357\276\200"), edit_view->GetText()); |
1229 } | 1275 } |
1230 | 1276 |
1231 // http://crbug.com/12316 | 1277 // http://crbug.com/12316 |
1232 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PasteReplacingAll) { | 1278 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PasteReplacingAll) { |
1233 AutocompleteEditView* edit_view = NULL; | 1279 AutocompleteEditView* edit_view = NULL; |
1234 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 1280 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
1235 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); | 1281 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); |
1236 ASSERT_TRUE(popup_model); | 1282 ASSERT_TRUE(popup_model); |
1237 | 1283 |
1238 SetClipboardText(kSearchText); | 1284 SetClipboardText(kSearchText); |
1239 | 1285 |
1240 // Paste text. | 1286 // Paste text. |
1241 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_V, true, false, false)); | 1287 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_V, ui::EF_CONTROL_DOWN)); |
1242 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 1288 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
1243 ASSERT_TRUE(popup_model->IsOpen()); | 1289 ASSERT_TRUE(popup_model->IsOpen()); |
1244 | 1290 |
1245 // Inline autocomplete shouldn't be triggered. | 1291 // Inline autocomplete shouldn't be triggered. |
1246 ASSERT_EQ(ASCIIToUTF16("abc"), edit_view->GetText()); | 1292 ASSERT_EQ(ASCIIToUTF16("abc"), edit_view->GetText()); |
1247 } | 1293 } |
1248 #endif | 1294 #endif |
1249 | 1295 |
1250 #if defined(TOOLKIT_VIEWS) | 1296 #if defined(TOOLKIT_VIEWS) |
1251 class AutocompleteEditViewViewsTest : public AutocompleteEditViewTest { | 1297 class AutocompleteEditViewViewsTest : public AutocompleteEditViewTest { |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1316 PersistKeywordModeOnTabSwitch) { | 1362 PersistKeywordModeOnTabSwitch) { |
1317 PersistKeywordModeOnTabSwitch(); | 1363 PersistKeywordModeOnTabSwitch(); |
1318 } | 1364 } |
1319 | 1365 |
1320 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, | 1366 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, |
1321 CtrlKeyPressedWithInlineAutocompleteTest) { | 1367 CtrlKeyPressedWithInlineAutocompleteTest) { |
1322 CtrlKeyPressedWithInlineAutocompleteTest(); | 1368 CtrlKeyPressedWithInlineAutocompleteTest(); |
1323 } | 1369 } |
1324 | 1370 |
1325 #endif | 1371 #endif |
OLD | NEW |