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

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