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

Side by Side Diff: chrome/browser/autocomplete/autocomplete_edit_view_browsertest.cc

Issue 6602070: Port autocomplete_edit_view_browsertest.cc to Mac. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix PrimarySelection test. Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « chrome/browser/autocomplete/autocomplete_edit.cc ('k') | chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698