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

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: 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,
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));
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"));
449 #if defined(OS_MACOSX)
450 EXPECT_TRUE(edit_view->IsSelectAll());
451 #else
411 EXPECT_FALSE(edit_view->IsSelectAll()); 452 EXPECT_FALSE(edit_view->IsSelectAll());
453 #endif
Scott Hess - ex-Googler 2011/03/02 19:21:06 Is this expect even reasonable? It seems to be ma
James Su 2011/03/02 22:04:42 Done.
412 popup->FocusLocationBar(); 454 popup->FocusLocationBar();
413 EXPECT_TRUE(edit_view->IsSelectAll()); 455 EXPECT_TRUE(edit_view->IsSelectAll());
414 456
415 // Try editing the location bar text -- should be disallowed. 457 // Try editing the location bar text -- should be disallowed.
416 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_RIGHT, false, 458 ASSERT_NO_FATAL_FAILURE(
417 false, false)); 459 SendKeyForBrowser(popup, ui::VKEY_RIGHT, false, false, false, false));
460 #if defined(OS_MACOSX)
461 EXPECT_TRUE(edit_view->IsSelectAll());
462 #else
418 EXPECT_FALSE(edit_view->IsSelectAll()); 463 EXPECT_FALSE(edit_view->IsSelectAll());
419 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_S, false, false, 464 #endif
420 false)); 465
466 ASSERT_NO_FATAL_FAILURE(
467 SendKeyForBrowser(popup, ui::VKEY_S, false, false, false, false));
421 EXPECT_EQ(ASCIIToUTF16("Hello world"), edit_view->GetText()); 468 EXPECT_EQ(ASCIIToUTF16("Hello world"), edit_view->GetText());
422 469
423 // Try ctrl-x to cut text -- should be disallowed. 470 // Try ctrl-x to cut text -- should be disallowed.
424 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_LEFT, true, true, 471 #if defined(OS_MACOSX)
425 false)); 472 ASSERT_NO_FATAL_FAILURE(
473 SendKeyForBrowser(popup, ui::VKEY_LEFT, false, true, true, false));
474 EXPECT_TRUE(edit_view->IsSelectAll());
475 #else
476 ASSERT_NO_FATAL_FAILURE(
477 SendKeyForBrowser(popup, ui::VKEY_LEFT, true, true, false, false));
426 EXPECT_FALSE(edit_view->IsSelectAll()); 478 EXPECT_FALSE(edit_view->IsSelectAll());
427 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_X, true, false, 479 #endif
428 false)); 480
481 #if defined(OS_MACOSX)
482 ASSERT_NO_FATAL_FAILURE(
483 SendKeyForBrowser(popup, ui::VKEY_X, false, false, false, true));
484 #else
485 ASSERT_NO_FATAL_FAILURE(
486 SendKeyForBrowser(popup, ui::VKEY_X, true, false, false, false));
487 #endif
429 EXPECT_EQ(ASCIIToUTF16("Hello world"), edit_view->GetText()); 488 EXPECT_EQ(ASCIIToUTF16("Hello world"), edit_view->GetText());
430 489
431 #if !defined(OS_CHROMEOS) 490 #if !defined(OS_CHROMEOS) && !defined(OS_MACOSX)
432 // Try alt-f4 to close the popup. 491 // Try alt-f4 to close the popup.
433 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( 492 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
434 popup, ui::VKEY_F4, false, false, true, false, 493 popup, ui::VKEY_F4, false, false, true, false,
435 NotificationType::BROWSER_CLOSED, Source<Browser>(popup))); 494 NotificationType::BROWSER_CLOSED, Source<Browser>(popup)));
436 #endif 495 #endif
437 } 496 }
438 497
439 void BackspaceInKeywordModeTest() { 498 void BackspaceInKeywordModeTest() {
440 AutocompleteEditView* edit_view = NULL; 499 AutocompleteEditView* edit_view = NULL;
441 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); 500 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
442 501
443 // Trigger keyword hint mode. 502 // Trigger keyword hint mode.
444 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); 503 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys));
445 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); 504 ASSERT_TRUE(edit_view->model()->is_keyword_hint());
446 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); 505 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword()));
447 506
448 // Trigger keyword mode. 507 // Trigger keyword mode.
449 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); 508 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false));
450 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); 509 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
451 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); 510 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword()));
452 511
453 // Backspace without search text should bring back keyword hint mode. 512 // Backspace without search text should bring back keyword hint mode.
454 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); 513 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false));
455 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); 514 ASSERT_TRUE(edit_view->model()->is_keyword_hint());
456 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); 515 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword()));
457 516
458 // Trigger keyword mode again. 517 // Trigger keyword mode again.
459 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); 518 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false));
460 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); 519 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
461 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); 520 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword()));
462 521
463 // Input something as search text. 522 // Input something as search text.
464 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); 523 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys));
465 524
466 // Should stay in keyword mode while deleting search text by pressing 525 // Should stay in keyword mode while deleting search text by pressing
467 // backspace. 526 // backspace.
468 for (size_t i = 0; i < arraysize(kSearchText) - 1; ++i) { 527 for (size_t i = 0; i < arraysize(kSearchText) - 1; ++i) {
469 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); 528 ASSERT_NO_FATAL_FAILURE(
529 SendKey(ui::VKEY_BACK, false, false, false, false));
470 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); 530 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
471 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); 531 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword()));
472 } 532 }
473 533
474 // Input something as search text. 534 // Input something as search text.
475 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); 535 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys));
476 536
477 // Move cursor to the beginning of the search text. 537 // Move cursor to the beginning of the search text.
478 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, false, false)); 538 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, false, false, false));
479 // Backspace at the beginning of the search text shall turn off 539 // Backspace at the beginning of the search text shall turn off
480 // the keyword mode. 540 // the keyword mode.
481 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); 541 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false));
482 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); 542 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
483 ASSERT_EQ(string16(), edit_view->model()->keyword()); 543 ASSERT_EQ(string16(), edit_view->model()->keyword());
484 ASSERT_EQ(std::string(kSearchKeyword) + kSearchText, 544 ASSERT_EQ(std::string(kSearchKeyword) + kSearchText,
485 UTF16ToUTF8(edit_view->GetText())); 545 UTF16ToUTF8(edit_view->GetText()));
486 } 546 }
487 547
488 void EscapeTest() { 548 void EscapeTest() {
489 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIHistoryURL)); 549 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIHistoryURL));
490 browser()->FocusLocationBar(); 550 browser()->FocusLocationBar();
491 551
492 AutocompleteEditView* edit_view = NULL; 552 AutocompleteEditView* edit_view = NULL;
493 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); 553 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
494 554
495 string16 old_text = edit_view->GetText(); 555 string16 old_text = edit_view->GetText();
496 EXPECT_FALSE(old_text.empty()); 556 EXPECT_FALSE(old_text.empty());
497 EXPECT_TRUE(edit_view->IsSelectAll()); 557 EXPECT_TRUE(edit_view->IsSelectAll());
498 558
499 // Delete all text in omnibox. 559 // Delete all text in omnibox.
500 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); 560 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false));
501 EXPECT_TRUE(edit_view->GetText().empty()); 561 EXPECT_TRUE(edit_view->GetText().empty());
502 562
503 // Escape shall revert the text in omnibox. 563 // Escape shall revert the text in omnibox.
504 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_ESCAPE, false, false, false)); 564 ASSERT_NO_FATAL_FAILURE(
565 SendKey(ui::VKEY_ESCAPE, false, false, false, false));
505 EXPECT_EQ(old_text, edit_view->GetText()); 566 EXPECT_EQ(old_text, edit_view->GetText());
506 EXPECT_TRUE(edit_view->IsSelectAll()); 567 EXPECT_TRUE(edit_view->IsSelectAll());
507 } 568 }
508 569
509 void DesiredTLDTest() { 570 void DesiredTLDTest() {
510 AutocompleteEditView* edit_view = NULL; 571 AutocompleteEditView* edit_view = NULL;
511 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); 572 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
512 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); 573 AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
513 ASSERT_TRUE(popup_model); 574 ASSERT_TRUE(popup_model);
514 575
515 // Test ctrl-Enter. 576 // Test ctrl-Enter.
516 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kDesiredTLDKeys)); 577 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kDesiredTLDKeys));
517 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); 578 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
518 ASSERT_TRUE(popup_model->IsOpen()); 579 ASSERT_TRUE(popup_model->IsOpen());
519 // ctrl-Enter triggers desired_tld feature, thus www.bar.com shall be 580 // ctrl-Enter triggers desired_tld feature, thus www.bar.com shall be
520 // opened. 581 // opened.
521 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, true, false, false)); 582 ASSERT_NO_FATAL_FAILURE(
583 SendKey(ui::VKEY_RETURN, true, false, false, false));
522 584
523 GURL url = browser()->GetSelectedTabContents()->GetURL(); 585 GURL url = browser()->GetSelectedTabContents()->GetURL();
524 EXPECT_STREQ(kDesiredTLDHostname, url.host().c_str()); 586 EXPECT_STREQ(kDesiredTLDHostname, url.host().c_str());
525 } 587 }
526 588
527 void AltEnterTest() { 589 void AltEnterTest() {
528 AutocompleteEditView* edit_view = NULL; 590 AutocompleteEditView* edit_view = NULL;
529 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); 591 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
530 592
531 edit_view->SetUserText(ASCIIToUTF16(chrome::kChromeUIHistoryURL)); 593 edit_view->SetUserText(ASCIIToUTF16(chrome::kChromeUIHistoryURL));
532 int tab_count = browser()->tab_count(); 594 int tab_count = browser()->tab_count();
533 // alt-Enter opens a new tab. 595 // alt-Enter opens a new tab.
534 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, true)); 596 ASSERT_NO_FATAL_FAILURE(
597 SendKey(ui::VKEY_RETURN, false, false, true, false));
535 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count + 1)); 598 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count + 1));
536 } 599 }
537 600
538 void EnterToSearchTest() { 601 void EnterToSearchTest() {
539 AutocompleteEditView* edit_view = NULL; 602 AutocompleteEditView* edit_view = NULL;
540 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); 603 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
541 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); 604 AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
542 ASSERT_TRUE(popup_model); 605 ASSERT_TRUE(popup_model);
543 606
544 // Test Enter to search. 607 // Test Enter to search.
545 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); 608 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys));
546 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); 609 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
547 ASSERT_TRUE(popup_model->IsOpen()); 610 ASSERT_TRUE(popup_model->IsOpen());
548 611
549 // Check if the default match result is Search Primary Provider. 612 // Check if the default match result is Search Primary Provider.
550 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, 613 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
551 popup_model->result().default_match()->type); 614 popup_model->result().default_match()->type);
552 615
553 // Open the default match. 616 // Open the default match.
554 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, false)); 617 ASSERT_NO_FATAL_FAILURE(
618 SendKey(ui::VKEY_RETURN, false, false, false, false));
555 GURL url = browser()->GetSelectedTabContents()->GetURL(); 619 GURL url = browser()->GetSelectedTabContents()->GetURL();
556 EXPECT_STREQ(kSearchTextURL, url.spec().c_str()); 620 EXPECT_STREQ(kSearchTextURL, url.spec().c_str());
557 621
558 // Test that entering a single character then Enter performs a search. 622 // Test that entering a single character then Enter performs a search.
559 browser()->FocusLocationBar(); 623 browser()->FocusLocationBar();
560 EXPECT_TRUE(edit_view->IsSelectAll()); 624 EXPECT_TRUE(edit_view->IsSelectAll());
561 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchSingleCharKeys)); 625 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchSingleCharKeys));
562 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); 626 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
563 ASSERT_TRUE(popup_model->IsOpen()); 627 ASSERT_TRUE(popup_model->IsOpen());
564 EXPECT_EQ(kSearchSingleChar, UTF16ToUTF8(edit_view->GetText())); 628 EXPECT_EQ(kSearchSingleChar, UTF16ToUTF8(edit_view->GetText()));
565 629
566 // Check if the default match result is Search Primary Provider. 630 // Check if the default match result is Search Primary Provider.
567 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, 631 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
568 popup_model->result().default_match()->type); 632 popup_model->result().default_match()->type);
569 633
570 // Open the default match. 634 // Open the default match.
571 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, false)); 635 ASSERT_NO_FATAL_FAILURE(
636 SendKey(ui::VKEY_RETURN, false, false, false, false));
572 url = browser()->GetSelectedTabContents()->GetURL(); 637 url = browser()->GetSelectedTabContents()->GetURL();
573 EXPECT_STREQ(kSearchSingleCharURL, url.spec().c_str()); 638 EXPECT_STREQ(kSearchSingleCharURL, url.spec().c_str());
574 } 639 }
575 640
576 void EscapeToDefaultMatchTest() { 641 void EscapeToDefaultMatchTest() {
577 AutocompleteEditView* edit_view = NULL; 642 AutocompleteEditView* edit_view = NULL;
578 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); 643 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
579 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); 644 AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
580 ASSERT_TRUE(popup_model); 645 ASSERT_TRUE(popup_model);
581 646
582 // Input something to trigger inline autocomplete. 647 // Input something to trigger inline autocomplete.
583 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kInlineAutocompleteTextKeys)); 648 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kInlineAutocompleteTextKeys));
584 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); 649 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
585 ASSERT_TRUE(popup_model->IsOpen()); 650 ASSERT_TRUE(popup_model->IsOpen());
586 651
587 string16 old_text = edit_view->GetText(); 652 string16 old_text = edit_view->GetText();
588 653
589 // Make sure inline autocomplete is triggerred. 654 // Make sure inline autocomplete is triggerred.
590 EXPECT_GT(old_text.length(), arraysize(kInlineAutocompleteText) - 1); 655 EXPECT_GT(old_text.length(), arraysize(kInlineAutocompleteText) - 1);
591 656
592 size_t old_selected_line = popup_model->selected_line(); 657 size_t old_selected_line = popup_model->selected_line();
593 EXPECT_EQ(0U, old_selected_line); 658 EXPECT_EQ(0U, old_selected_line);
594 659
595 // Move to another line with different text. 660 // Move to another line with different text.
596 size_t size = popup_model->result().size(); 661 size_t size = popup_model->result().size();
597 while (popup_model->selected_line() < size - 1) { 662 while (popup_model->selected_line() < size - 1) {
598 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DOWN, false, false, false)); 663 ASSERT_NO_FATAL_FAILURE(
664 SendKey(ui::VKEY_DOWN, false, false, false, false));
599 ASSERT_NE(old_selected_line, popup_model->selected_line()); 665 ASSERT_NE(old_selected_line, popup_model->selected_line());
600 if (old_text != edit_view->GetText()) 666 if (old_text != edit_view->GetText())
601 break; 667 break;
602 } 668 }
603 669
604 EXPECT_NE(old_text, edit_view->GetText()); 670 EXPECT_NE(old_text, edit_view->GetText());
605 671
606 // Escape shall revert back to the default match item. 672 // Escape shall revert back to the default match item.
607 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_ESCAPE, false, false, false)); 673 ASSERT_NO_FATAL_FAILURE(
674 SendKey(ui::VKEY_ESCAPE, false, false, false, false));
608 EXPECT_EQ(old_text, edit_view->GetText()); 675 EXPECT_EQ(old_text, edit_view->GetText());
609 EXPECT_EQ(old_selected_line, popup_model->selected_line()); 676 EXPECT_EQ(old_selected_line, popup_model->selected_line());
610 } 677 }
611 678
612 void BasicTextOperationsTest() { 679 void BasicTextOperationsTest() {
613 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kAboutBlankURL)); 680 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kAboutBlankURL));
614 browser()->FocusLocationBar(); 681 browser()->FocusLocationBar();
615 682
616 AutocompleteEditView* edit_view = NULL; 683 AutocompleteEditView* edit_view = NULL;
617 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); 684 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
618 685
619 string16 old_text = edit_view->GetText(); 686 string16 old_text = edit_view->GetText();
620 EXPECT_EQ(UTF8ToUTF16(chrome::kAboutBlankURL), old_text); 687 EXPECT_EQ(UTF8ToUTF16(chrome::kAboutBlankURL), old_text);
621 EXPECT_TRUE(edit_view->IsSelectAll()); 688 EXPECT_TRUE(edit_view->IsSelectAll());
622 689
623 string16::size_type start, end; 690 string16::size_type start, end;
624 edit_view->GetSelectionBounds(&start, &end); 691 edit_view->GetSelectionBounds(&start, &end);
625 EXPECT_EQ(0U, start); 692 EXPECT_EQ(0U, start);
626 EXPECT_EQ(old_text.size(), end); 693 EXPECT_EQ(old_text.size(), end);
627 694
628 // Move the cursor to the end. 695 // Move the cursor to the end.
629 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false)); 696 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false, false));
630 EXPECT_FALSE(edit_view->IsSelectAll()); 697 EXPECT_FALSE(edit_view->IsSelectAll());
631 698
632 // Make sure the cursor is placed correctly. 699 // Make sure the cursor is placed correctly.
633 edit_view->GetSelectionBounds(&start, &end); 700 edit_view->GetSelectionBounds(&start, &end);
634 EXPECT_EQ(old_text.size(), start); 701 EXPECT_EQ(old_text.size(), start);
635 EXPECT_EQ(old_text.size(), end); 702 EXPECT_EQ(old_text.size(), end);
636 703
637 // Insert one character at the end. Make sure we won't insert 704 // Insert one character at the end. Make sure we won't insert
638 // anything after the special ZWS mark used in gtk implementation. 705 // anything after the special ZWS mark used in gtk implementation.
639 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_A, false, false, false)); 706 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_A, false, false, false, false));
640 EXPECT_EQ(old_text + char16('a'), edit_view->GetText()); 707 EXPECT_EQ(old_text + char16('a'), edit_view->GetText());
641 708
642 // Delete one character from the end. Make sure we won't delete the special 709 // Delete one character from the end. Make sure we won't delete the special
643 // ZWS mark used in gtk implementation. 710 // ZWS mark used in gtk implementation.
644 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); 711 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false));
645 EXPECT_EQ(old_text, edit_view->GetText()); 712 EXPECT_EQ(old_text, edit_view->GetText());
646 713
647 edit_view->SelectAll(true); 714 edit_view->SelectAll(true);
648 EXPECT_TRUE(edit_view->IsSelectAll()); 715 EXPECT_TRUE(edit_view->IsSelectAll());
649 edit_view->GetSelectionBounds(&start, &end); 716 edit_view->GetSelectionBounds(&start, &end);
650 EXPECT_EQ(0U, start); 717 EXPECT_EQ(0U, start);
651 EXPECT_EQ(old_text.size(), end); 718 EXPECT_EQ(old_text.size(), end);
652 719
653 // Delete the content 720 // Delete the content
654 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DELETE, false, false, false)); 721 ASSERT_NO_FATAL_FAILURE(
722 SendKey(ui::VKEY_DELETE, false, false, false, false));
655 EXPECT_TRUE(edit_view->IsSelectAll()); 723 EXPECT_TRUE(edit_view->IsSelectAll());
656 edit_view->GetSelectionBounds(&start, &end); 724 edit_view->GetSelectionBounds(&start, &end);
657 EXPECT_EQ(0U, start); 725 EXPECT_EQ(0U, start);
658 EXPECT_EQ(0U, end); 726 EXPECT_EQ(0U, end);
659 EXPECT_TRUE(edit_view->GetText().empty()); 727 EXPECT_TRUE(edit_view->GetText().empty());
660 728
661 // Check if RevertAll() can set text and cursor correctly. 729 // Check if RevertAll() can set text and cursor correctly.
662 edit_view->RevertAll(); 730 edit_view->RevertAll();
663 EXPECT_FALSE(edit_view->IsSelectAll()); 731 EXPECT_FALSE(edit_view->IsSelectAll());
664 EXPECT_EQ(old_text, edit_view->GetText()); 732 EXPECT_EQ(old_text, edit_view->GetText());
665 edit_view->GetSelectionBounds(&start, &end); 733 edit_view->GetSelectionBounds(&start, &end);
666 EXPECT_EQ(old_text.size(), start); 734 EXPECT_EQ(old_text.size(), start);
667 EXPECT_EQ(old_text.size(), end); 735 EXPECT_EQ(old_text.size(), end);
668 } 736 }
669 737
670 void AcceptKeywordBySpaceTest() { 738 void AcceptKeywordBySpaceTest() {
671 AutocompleteEditView* edit_view = NULL; 739 AutocompleteEditView* edit_view = NULL;
672 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); 740 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
673 741
674 string16 text = UTF8ToUTF16(kSearchKeyword); 742 string16 text = UTF8ToUTF16(kSearchKeyword);
675 743
676 // Trigger keyword hint mode. 744 // Trigger keyword hint mode.
677 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); 745 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys));
678 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); 746 ASSERT_TRUE(edit_view->model()->is_keyword_hint());
679 ASSERT_EQ(text, edit_view->model()->keyword()); 747 ASSERT_EQ(text, edit_view->model()->keyword());
680 ASSERT_EQ(text, edit_view->GetText()); 748 ASSERT_EQ(text, edit_view->GetText());
681 749
682 // Trigger keyword mode by space. 750 // Trigger keyword mode by space.
683 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); 751 ASSERT_NO_FATAL_FAILURE(
752 SendKey(ui::VKEY_SPACE, false, false, false, false));
684 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); 753 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
685 ASSERT_EQ(text, edit_view->model()->keyword()); 754 ASSERT_EQ(text, edit_view->model()->keyword());
686 ASSERT_TRUE(edit_view->GetText().empty()); 755 ASSERT_TRUE(edit_view->GetText().empty());
687 756
688 // Revert to keyword hint mode. 757 // Revert to keyword hint mode.
689 edit_view->model()->ClearKeyword(string16()); 758 edit_view->model()->ClearKeyword(string16());
690 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); 759 ASSERT_TRUE(edit_view->model()->is_keyword_hint());
691 ASSERT_EQ(text, edit_view->model()->keyword()); 760 ASSERT_EQ(text, edit_view->model()->keyword());
692 ASSERT_EQ(text, edit_view->GetText()); 761 ASSERT_EQ(text, edit_view->GetText());
693 762
(...skipping 18 matching lines...) Expand all
712 edit_view->model()->on_paste(); 781 edit_view->model()->on_paste();
713 edit_view->SetWindowTextAndCaretPos(text + char16(' '), text.length() + 1); 782 edit_view->SetWindowTextAndCaretPos(text + char16(' '), text.length() + 1);
714 edit_view->OnAfterPossibleChange(); 783 edit_view->OnAfterPossibleChange();
715 // Should be still in keyword hint mode. 784 // Should be still in keyword hint mode.
716 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); 785 ASSERT_TRUE(edit_view->model()->is_keyword_hint());
717 ASSERT_EQ(text, edit_view->model()->keyword()); 786 ASSERT_EQ(text, edit_view->model()->keyword());
718 ASSERT_EQ(text + char16(' '), edit_view->GetText()); 787 ASSERT_EQ(text + char16(' '), edit_view->GetText());
719 788
720 // Keyword shouldn't be accepted by pressing space with a trailing 789 // Keyword shouldn't be accepted by pressing space with a trailing
721 // whitespace. 790 // whitespace.
722 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); 791 ASSERT_NO_FATAL_FAILURE(
792 SendKey(ui::VKEY_SPACE, false, false, false, false));
723 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); 793 ASSERT_TRUE(edit_view->model()->is_keyword_hint());
724 ASSERT_EQ(text, edit_view->model()->keyword()); 794 ASSERT_EQ(text, edit_view->model()->keyword());
725 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); 795 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText());
726 796
727 // Keyword shouldn't be accepted by deleting the trailing space. 797 // Keyword shouldn't be accepted by deleting the trailing space.
728 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); 798 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false));
729 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); 799 ASSERT_TRUE(edit_view->model()->is_keyword_hint());
730 ASSERT_EQ(text, edit_view->model()->keyword()); 800 ASSERT_EQ(text, edit_view->model()->keyword());
731 ASSERT_EQ(text + char16(' '), edit_view->GetText()); 801 ASSERT_EQ(text + char16(' '), edit_view->GetText());
732 802
733 // Keyword shouldn't be accepted by pressing space in the middle 803 // Keyword shouldn't be accepted by pressing space in the middle
734 // of content. 804 // of content.
735 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, false, false, false)); 805 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, false, false, false, false));
736 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); 806 ASSERT_NO_FATAL_FAILURE(
807 SendKey(ui::VKEY_SPACE, false, false, false, false));
737 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); 808 ASSERT_TRUE(edit_view->model()->is_keyword_hint());
738 ASSERT_EQ(text, edit_view->model()->keyword()); 809 ASSERT_EQ(text, edit_view->model()->keyword());
739 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); 810 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText());
740 811
741 // Keyword shouldn't be accepted by pasting "foo bar". 812 // Keyword shouldn't be accepted by pasting "foo bar".
742 edit_view->SetUserText(string16()); 813 edit_view->SetUserText(string16());
743 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); 814 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
744 ASSERT_TRUE(edit_view->model()->keyword().empty()); 815 ASSERT_TRUE(edit_view->model()->keyword().empty());
745 816
746 edit_view->OnBeforePossibleChange(); 817 edit_view->OnBeforePossibleChange();
(...skipping 11 matching lines...) Expand all
758 edit_view->OnInlineAutocompleteTextMaybeChanged( 829 edit_view->OnInlineAutocompleteTextMaybeChanged(
759 text + ASCIIToUTF16(" "), text.length()); 830 text + ASCIIToUTF16(" "), text.length());
760 edit_view->OnAfterPossibleChange(); 831 edit_view->OnAfterPossibleChange();
761 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); 832 ASSERT_TRUE(edit_view->model()->is_keyword_hint());
762 ASSERT_EQ(text, edit_view->model()->keyword()); 833 ASSERT_EQ(text, edit_view->model()->keyword());
763 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); 834 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText());
764 835
765 string16::size_type start, end; 836 string16::size_type start, end;
766 edit_view->GetSelectionBounds(&start, &end); 837 edit_view->GetSelectionBounds(&start, &end);
767 ASSERT_NE(start, end); 838 ASSERT_NE(start, end);
768 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); 839 ASSERT_NO_FATAL_FAILURE(
840 SendKey(ui::VKEY_SPACE, false, false, false, false));
769 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); 841 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
770 ASSERT_EQ(text, edit_view->model()->keyword()); 842 ASSERT_EQ(text, edit_view->model()->keyword());
771 ASSERT_EQ(string16(), edit_view->GetText()); 843 ASSERT_EQ(string16(), edit_view->GetText());
772 844
773 edit_view->SetUserText(string16()); 845 edit_view->SetUserText(string16());
774 846
775 // Space should accept keyword even when inline autocomplete is available. 847 // Space should accept keyword even when inline autocomplete is available.
776 const TestHistoryEntry kHistoryFoobar = { 848 const TestHistoryEntry kHistoryFoobar = {
777 "http://www.foobar.com", "Page foobar", kSearchText, 10000, 10000, true 849 "http://www.foobar.com", "Page foobar", kSearchText, 10000, 10000, true
778 }; 850 };
779 851
780 // Add a history entry to trigger inline autocomplete when typing "foo". 852 // Add a history entry to trigger inline autocomplete when typing "foo".
781 ASSERT_NO_FATAL_FAILURE( 853 ASSERT_NO_FATAL_FAILURE(
782 AddHistoryEntry(kHistoryFoobar, Time::Now() - TimeDelta::FromHours(1))); 854 AddHistoryEntry(kHistoryFoobar, Time::Now() - TimeDelta::FromHours(1)));
783 855
784 // Type "foo" to trigger inline autocomplete. 856 // Type "foo" to trigger inline autocomplete.
785 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); 857 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys));
786 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); 858 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
787 ASSERT_TRUE(edit_view->model()->popup_model()->IsOpen()); 859 ASSERT_TRUE(edit_view->model()->popup_model()->IsOpen());
788 ASSERT_NE(text, edit_view->GetText()); 860 ASSERT_NE(text, edit_view->GetText());
789 861
790 // Keyword hint shouldn't be visible. 862 // Keyword hint shouldn't be visible.
791 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); 863 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
792 ASSERT_TRUE(edit_view->model()->keyword().empty()); 864 ASSERT_TRUE(edit_view->model()->keyword().empty());
793 865
794 // Trigger keyword mode by space. 866 // Trigger keyword mode by space.
795 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); 867 ASSERT_NO_FATAL_FAILURE(
868 SendKey(ui::VKEY_SPACE, false, false, false, false));
796 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); 869 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
797 ASSERT_EQ(text, edit_view->model()->keyword()); 870 ASSERT_EQ(text, edit_view->model()->keyword());
798 ASSERT_TRUE(edit_view->GetText().empty()); 871 ASSERT_TRUE(edit_view->GetText().empty());
799 } 872 }
800 873
801 void NonSubstitutingKeywordTest() { 874 void NonSubstitutingKeywordTest() {
802 AutocompleteEditView* edit_view = NULL; 875 AutocompleteEditView* edit_view = NULL;
803 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); 876 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
804 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); 877 AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
805 ASSERT_TRUE(popup_model); 878 ASSERT_TRUE(popup_model);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
865 ASSERT_TRUE(popup_model); 938 ASSERT_TRUE(popup_model);
866 939
867 string16 old_text = edit_view->GetText(); 940 string16 old_text = edit_view->GetText();
868 941
869 // Input something that can match history items. 942 // Input something that can match history items.
870 edit_view->SetUserText(ASCIIToUTF16("bar")); 943 edit_view->SetUserText(ASCIIToUTF16("bar"));
871 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); 944 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
872 ASSERT_TRUE(popup_model->IsOpen()); 945 ASSERT_TRUE(popup_model->IsOpen());
873 946
874 // Delete the inline autocomplete part. 947 // Delete the inline autocomplete part.
875 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DELETE, false, false, false)); 948 ASSERT_NO_FATAL_FAILURE(
949 SendKey(ui::VKEY_DELETE, false, false, false, false));
876 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); 950 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
877 ASSERT_TRUE(popup_model->IsOpen()); 951 ASSERT_TRUE(popup_model->IsOpen());
878 ASSERT_GE(popup_model->result().size(), 3U); 952 ASSERT_GE(popup_model->result().size(), 3U);
879 953
880 string16 user_text = edit_view->GetText(); 954 string16 user_text = edit_view->GetText();
881 ASSERT_EQ(ASCIIToUTF16("bar"), user_text); 955 ASSERT_EQ(ASCIIToUTF16("bar"), user_text);
882 edit_view->SelectAll(true); 956 edit_view->SelectAll(true);
883 ASSERT_TRUE(edit_view->IsSelectAll()); 957 ASSERT_TRUE(edit_view->IsSelectAll());
884 958
885 // The first item should be the default match. 959 // 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()); 1022 ASSERT_TRUE(edit_view->IsSelectAll());
949 } 1023 }
950 1024
951 void TabMoveCursorToEndTest() { 1025 void TabMoveCursorToEndTest() {
952 AutocompleteEditView* edit_view = NULL; 1026 AutocompleteEditView* edit_view = NULL;
953 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); 1027 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
954 1028
955 edit_view->SetUserText(ASCIIToUTF16("Hello world")); 1029 edit_view->SetUserText(ASCIIToUTF16("Hello world"));
956 1030
957 // Move cursor to the beginning. 1031 // Move cursor to the beginning.
958 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, false, false)); 1032 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, false, false, false));
959 1033
960 string16::size_type start, end; 1034 string16::size_type start, end;
961 edit_view->GetSelectionBounds(&start, &end); 1035 edit_view->GetSelectionBounds(&start, &end);
962 EXPECT_EQ(0U, start); 1036 EXPECT_EQ(0U, start);
963 EXPECT_EQ(0U, end); 1037 EXPECT_EQ(0U, end);
964 1038
965 // Pressing tab should move cursor to the end. 1039 // Pressing tab should move cursor to the end.
966 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); 1040 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false));
967 1041
968 edit_view->GetSelectionBounds(&start, &end); 1042 edit_view->GetSelectionBounds(&start, &end);
969 EXPECT_EQ(edit_view->GetText().size(), start); 1043 EXPECT_EQ(edit_view->GetText().size(), start);
970 EXPECT_EQ(edit_view->GetText().size(), end); 1044 EXPECT_EQ(edit_view->GetText().size(), end);
971 1045
972 // The location bar should still have focus. 1046 // The location bar should still have focus.
973 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); 1047 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR));
974 1048
975 // Select all text. 1049 // Select all text.
976 edit_view->SelectAll(true); 1050 edit_view->SelectAll(true);
977 EXPECT_TRUE(edit_view->IsSelectAll()); 1051 EXPECT_TRUE(edit_view->IsSelectAll());
978 edit_view->GetSelectionBounds(&start, &end); 1052 edit_view->GetSelectionBounds(&start, &end);
979 EXPECT_EQ(0U, start); 1053 EXPECT_EQ(0U, start);
980 EXPECT_EQ(edit_view->GetText().size(), end); 1054 EXPECT_EQ(edit_view->GetText().size(), end);
981 1055
982 // Pressing tab should move cursor to the end. 1056 // Pressing tab should move cursor to the end.
983 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); 1057 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false));
984 1058
985 edit_view->GetSelectionBounds(&start, &end); 1059 edit_view->GetSelectionBounds(&start, &end);
986 EXPECT_EQ(edit_view->GetText().size(), start); 1060 EXPECT_EQ(edit_view->GetText().size(), start);
987 EXPECT_EQ(edit_view->GetText().size(), end); 1061 EXPECT_EQ(edit_view->GetText().size(), end);
988 1062
989 // The location bar should still have focus. 1063 // The location bar should still have focus.
990 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); 1064 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR));
991 1065
992 // Pressing tab when cursor is at the end should change focus. 1066 // Pressing tab when cursor is at the end should change focus.
993 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); 1067 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false));
994 1068
995 ASSERT_FALSE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); 1069 ASSERT_FALSE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR));
996 } 1070 }
997 1071
998 void PersistKeywordModeOnTabSwitch() { 1072 void PersistKeywordModeOnTabSwitch() {
999 AutocompleteEditView* edit_view = NULL; 1073 AutocompleteEditView* edit_view = NULL;
1000 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); 1074 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
1001 1075
1002 // Trigger keyword hint mode. 1076 // Trigger keyword hint mode.
1003 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); 1077 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys));
1004 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); 1078 ASSERT_TRUE(edit_view->model()->is_keyword_hint());
1005 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); 1079 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword()));
1006 1080
1007 // Trigger keyword mode. 1081 // Trigger keyword mode.
1008 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); 1082 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false));
1009 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); 1083 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
1010 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); 1084 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword()));
1011 1085
1012 // Input something as search text. 1086 // Input something as search text.
1013 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); 1087 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys));
1014 1088
1015 // Create a new tab. 1089 // Create a new tab.
1016 browser()->NewTab(); 1090 browser()->NewTab();
1017 1091
1018 // Switch back to the first tab. 1092 // Switch back to the first tab.
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
1129 browser()->FocusLocationBar(); 1203 browser()->FocusLocationBar();
1130 1204
1131 AutocompleteEditView* edit_view = NULL; 1205 AutocompleteEditView* edit_view = NULL;
1132 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); 1206 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
1133 1207
1134 string16 old_text = edit_view->GetText(); 1208 string16 old_text = edit_view->GetText();
1135 EXPECT_EQ(UTF8ToUTF16(chrome::kAboutBlankURL), old_text); 1209 EXPECT_EQ(UTF8ToUTF16(chrome::kAboutBlankURL), old_text);
1136 EXPECT_TRUE(edit_view->IsSelectAll()); 1210 EXPECT_TRUE(edit_view->IsSelectAll());
1137 1211
1138 // Undo should clear the omnibox. 1212 // Undo should clear the omnibox.
1139 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); 1213 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false, false));
1140 EXPECT_TRUE(edit_view->GetText().empty()); 1214 EXPECT_TRUE(edit_view->GetText().empty());
1141 1215
1142 // Nothing should happen if undo again. 1216 // Nothing should happen if undo again.
1143 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); 1217 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false, false));
1144 EXPECT_TRUE(edit_view->GetText().empty()); 1218 EXPECT_TRUE(edit_view->GetText().empty());
1145 1219
1146 // Redo should restore the original text. 1220 // Redo should restore the original text.
1147 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, true, false)); 1221 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, true, false, false));
1148 EXPECT_EQ(old_text, edit_view->GetText()); 1222 EXPECT_EQ(old_text, edit_view->GetText());
1149 1223
1150 // Looks like the undo manager doesn't support restoring selection. 1224 // Looks like the undo manager doesn't support restoring selection.
1151 EXPECT_FALSE(edit_view->IsSelectAll()); 1225 EXPECT_FALSE(edit_view->IsSelectAll());
1152 1226
1153 // The cursor should be at the end. 1227 // The cursor should be at the end.
1154 string16::size_type start, end; 1228 string16::size_type start, end;
1155 edit_view->GetSelectionBounds(&start, &end); 1229 edit_view->GetSelectionBounds(&start, &end);
1156 EXPECT_EQ(old_text.size(), start); 1230 EXPECT_EQ(old_text.size(), start);
1157 EXPECT_EQ(old_text.size(), end); 1231 EXPECT_EQ(old_text.size(), end);
1158 1232
1159 // Delete two characters. 1233 // Delete two characters.
1160 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); 1234 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false));
1161 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); 1235 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()); 1236 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText());
1163 1237
1164 // Undo delete. 1238 // Undo delete.
1165 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); 1239 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false, false));
1166 EXPECT_EQ(old_text, edit_view->GetText()); 1240 EXPECT_EQ(old_text, edit_view->GetText());
1167 1241
1168 // Redo delete. 1242 // Redo delete.
1169 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, true, false)); 1243 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()); 1244 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText());
1171 1245
1172 // Delete everything. 1246 // Delete everything.
1173 edit_view->SelectAll(true); 1247 edit_view->SelectAll(true);
1174 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); 1248 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false));
1175 EXPECT_TRUE(edit_view->GetText().empty()); 1249 EXPECT_TRUE(edit_view->GetText().empty());
1176 1250
1177 // Undo delete everything. 1251 // Undo delete everything.
1178 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); 1252 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()); 1253 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText());
1180 1254
1181 // Undo delete two characters. 1255 // Undo delete two characters.
1182 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); 1256 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false, false));
1183 EXPECT_EQ(old_text, edit_view->GetText()); 1257 EXPECT_EQ(old_text, edit_view->GetText());
1184 1258
1185 // Undo again. 1259 // Undo again.
1186 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); 1260 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false, false));
1187 EXPECT_TRUE(edit_view->GetText().empty()); 1261 EXPECT_TRUE(edit_view->GetText().empty());
1188 } 1262 }
1189 1263
1190 // See http://crbug.com/63860 1264 // See http://crbug.com/63860
1191 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PrimarySelection) { 1265 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PrimarySelection) {
1192 AutocompleteEditView* edit_view = NULL; 1266 AutocompleteEditView* edit_view = NULL;
1193 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); 1267 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
1194 edit_view->SetUserText(ASCIIToUTF16("Hello world")); 1268 edit_view->SetUserText(ASCIIToUTF16("Hello world"));
1195 EXPECT_FALSE(edit_view->IsSelectAll()); 1269 EXPECT_FALSE(edit_view->IsSelectAll());
1196 1270
1197 // Move the cursor to the end. 1271 // Move the cursor to the end.
1198 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false)); 1272 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false, false));
1199 1273
1200 // Select all text by pressing Shift+Home 1274 // Select all text by pressing Shift+Home
1201 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, true, false)); 1275 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, true, false, false));
1202 EXPECT_TRUE(edit_view->IsSelectAll()); 1276 EXPECT_TRUE(edit_view->IsSelectAll());
1203 1277
1204 // The selected content should be saved to the PRIMARY clipboard. 1278 // The selected content should be saved to the PRIMARY clipboard.
1205 EXPECT_EQ("Hello world", GetPrimarySelectionText()); 1279 EXPECT_EQ("Hello world", GetPrimarySelectionText());
1206 1280
1207 // Move the cursor to the end. 1281 // Move the cursor to the end.
1208 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false)); 1282 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false, false));
1209 EXPECT_FALSE(edit_view->IsSelectAll()); 1283 EXPECT_FALSE(edit_view->IsSelectAll());
1210 1284
1211 // The content in the PRIMARY clipboard should not be cleared. 1285 // The content in the PRIMARY clipboard should not be cleared.
1212 EXPECT_EQ("Hello world", GetPrimarySelectionText()); 1286 EXPECT_EQ("Hello world", GetPrimarySelectionText());
1213 } 1287 }
1214 1288
1215 // See http://crosbug.com/10306 1289 // See http://crosbug.com/10306
1216 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, 1290 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest,
1217 BackspaceDeleteHalfWidthKatakana) { 1291 BackspaceDeleteHalfWidthKatakana) {
1218 AutocompleteEditView* edit_view = NULL; 1292 AutocompleteEditView* edit_view = NULL;
1219 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); 1293 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
1220 // Insert text: ダ 1294 // Insert text: ダ
1221 edit_view->SetUserText(UTF8ToUTF16("\357\276\200\357\276\236")); 1295 edit_view->SetUserText(UTF8ToUTF16("\357\276\200\357\276\236"));
1222 1296
1223 // Move the cursor to the end. 1297 // Move the cursor to the end.
1224 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false)); 1298 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false, false));
1225 1299
1226 // Backspace should delete one character. 1300 // Backspace should delete one character.
1227 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); 1301 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false));
1228 EXPECT_EQ(UTF8ToUTF16("\357\276\200"), edit_view->GetText()); 1302 EXPECT_EQ(UTF8ToUTF16("\357\276\200"), edit_view->GetText());
1229 } 1303 }
1230 1304
1231 // http://crbug.com/12316 1305 // http://crbug.com/12316
1232 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PasteReplacingAll) { 1306 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PasteReplacingAll) {
1233 AutocompleteEditView* edit_view = NULL; 1307 AutocompleteEditView* edit_view = NULL;
1234 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); 1308 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
1235 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); 1309 AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
1236 ASSERT_TRUE(popup_model); 1310 ASSERT_TRUE(popup_model);
1237 1311
1238 SetClipboardText(kSearchText); 1312 SetClipboardText(kSearchText);
1239 1313
1240 // Paste text. 1314 // Paste text.
1241 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_V, true, false, false)); 1315 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_V, true, false, false, false));
1242 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); 1316 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
1243 ASSERT_TRUE(popup_model->IsOpen()); 1317 ASSERT_TRUE(popup_model->IsOpen());
1244 1318
1245 // Inline autocomplete shouldn't be triggered. 1319 // Inline autocomplete shouldn't be triggered.
1246 ASSERT_EQ(ASCIIToUTF16("abc"), edit_view->GetText()); 1320 ASSERT_EQ(ASCIIToUTF16("abc"), edit_view->GetText());
1247 } 1321 }
1248 #endif 1322 #endif
1249 1323
1250 #if defined(TOOLKIT_VIEWS) 1324 #if defined(TOOLKIT_VIEWS)
1251 class AutocompleteEditViewViewsTest : public AutocompleteEditViewTest { 1325 class AutocompleteEditViewViewsTest : public AutocompleteEditViewTest {
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
1316 PersistKeywordModeOnTabSwitch) { 1390 PersistKeywordModeOnTabSwitch) {
1317 PersistKeywordModeOnTabSwitch(); 1391 PersistKeywordModeOnTabSwitch();
1318 } 1392 }
1319 1393
1320 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, 1394 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest,
1321 CtrlKeyPressedWithInlineAutocompleteTest) { 1395 CtrlKeyPressedWithInlineAutocompleteTest) {
1322 CtrlKeyPressedWithInlineAutocompleteTest(); 1396 CtrlKeyPressedWithInlineAutocompleteTest();
1323 } 1397 }
1324 1398
1325 #endif 1399 #endif
OLDNEW
« no previous file with comments | « chrome/browser/autocomplete/autocomplete_edit.cc ('k') | chrome/browser/autocomplete/autocomplete_edit_view_mac.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698