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

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

Issue 6245003: Views-implementation of AutocompleteEditView (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: " Created 9 years, 11 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 20 matching lines...) Expand all
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/event.h" 34 #include "views/event.h"
35 35
36 #if defined(OS_LINUX) 36 #if defined(OS_LINUX)
37 #include <gdk/gdk.h> 37 #include <gdk/gdk.h>
38 #include <gtk/gtk.h> 38 #include <gtk/gtk.h>
39 #endif 39 #endif
40 40
41 #if defined(TOOLKIT_VIEWS)
42 #include "views/controls/textfield/native_textfield_views.h"
43 #endif
44
41 using base::Time; 45 using base::Time;
42 using base::TimeDelta; 46 using base::TimeDelta;
43 47
44 namespace { 48 namespace {
45 49
46 const char kSearchKeyword[] = "foo"; 50 const char kSearchKeyword[] = "foo";
47 const wchar_t kSearchKeywordKeys[] = { 51 const wchar_t kSearchKeywordKeys[] = {
48 ui::VKEY_F, ui::VKEY_O, ui::VKEY_O, 0 52 ui::VKEY_F, ui::VKEY_O, ui::VKEY_O, 0
49 }; 53 };
50 const char kSearchURL[] = "http://www.foo.com/search?q={searchTerms}"; 54 const char kSearchURL[] = "http://www.foo.com/search?q={searchTerms}";
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 case NotificationType::TEMPLATE_URL_MODEL_LOADED: 297 case NotificationType::TEMPLATE_URL_MODEL_LOADED:
294 case NotificationType::AUTOCOMPLETE_CONTROLLER_RESULT_UPDATED: 298 case NotificationType::AUTOCOMPLETE_CONTROLLER_RESULT_UPDATED:
295 case NotificationType::HISTORY_LOADED: 299 case NotificationType::HISTORY_LOADED:
296 case NotificationType::BOOKMARK_MODEL_LOADED: 300 case NotificationType::BOOKMARK_MODEL_LOADED:
297 break; 301 break;
298 default: 302 default:
299 FAIL() << "Unexpected notification type"; 303 FAIL() << "Unexpected notification type";
300 } 304 }
301 MessageLoopForUI::current()->Quit(); 305 MessageLoopForUI::current()->Quit();
302 } 306 }
307
308 // Actual Test methods
309 void BrowserAcceleratorsTest() {
310 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
311
312 browser()->FocusLocationBar();
313 AutocompleteEditView* edit_view = NULL;
314 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
315
316 int tab_count = browser()->tab_count();
317
318 // Create a new Tab.
319 browser()->NewTab();
320 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count + 1));
321
322 // Select the first Tab.
323 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_1, true, false, false));
324 ASSERT_EQ(0, browser()->selected_index());
325
326 browser()->FocusLocationBar();
327
328 // Select the second Tab.
329 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_2, true, false, false));
330 ASSERT_EQ(1, browser()->selected_index());
331
332 browser()->FocusLocationBar();
333
334 // Try ctrl-w to close a Tab.
335 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_W, true, false, false));
336 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count));
337
338 // Try ctrl-l to focus location bar.
339 edit_view->SetUserText(L"Hello world");
340 EXPECT_FALSE(edit_view->IsSelectAll());
341 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_L, true, false, false));
342 EXPECT_TRUE(edit_view->IsSelectAll());
343
344 // Try editing the location bar text.
345 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RIGHT, false, false, false));
346 EXPECT_FALSE(edit_view->IsSelectAll());
347 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_S, false, false, false));
348 EXPECT_EQ(L"Hello worlds", edit_view->GetText());
349
350 // Try ctrl-x to cut text.
351 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, true, true, false));
352 EXPECT_FALSE(edit_view->IsSelectAll());
353 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_X, true, false, false));
354 EXPECT_EQ(L"Hello ", edit_view->GetText());
355
356 #if !defined(OS_CHROMEOS)
357 // Try alt-f4 to close the browser.
358 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
359 browser(), ui::VKEY_F4, false, false, true, false,
360 NotificationType::BROWSER_CLOSED, Source<Browser>(browser())));
361 #endif
362 }
363
364 void PopupAcceleratorsTest() {
365 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
366
367 // Create a popup.
368 Browser* popup = CreateBrowserForPopup(browser()->profile());
369 AutocompleteEditView* edit_view = NULL;
370 ASSERT_NO_FATAL_FAILURE(
371 GetAutocompleteEditViewForBrowser(popup, &edit_view));
372 popup->FocusLocationBar();
373 EXPECT_TRUE(edit_view->IsSelectAll());
374
375 // Try ctrl-w to close the popup.
376 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
377 popup, ui::VKEY_W, true, false, false, false,
378 NotificationType::BROWSER_CLOSED, Source<Browser>(popup)));
379
380 // Create another popup.
381 popup = CreateBrowserForPopup(browser()->profile());
382 ASSERT_NO_FATAL_FAILURE(
383 GetAutocompleteEditViewForBrowser(popup, &edit_view));
384
385 // Set the edit text to "Hello world".
386 edit_view->SetUserText(L"Hello world");
387 EXPECT_FALSE(edit_view->IsSelectAll());
388 popup->FocusLocationBar();
389 EXPECT_TRUE(edit_view->IsSelectAll());
390
391 // Try editing the location bar text -- should be disallowed.
392 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_RIGHT, false,
393 false, false));
394 EXPECT_FALSE(edit_view->IsSelectAll());
395 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_S, false, false,
396 false));
397 EXPECT_EQ(L"Hello world", edit_view->GetText());
398
399 // Try ctrl-x to cut text -- should be disallowed.
400 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_LEFT, true, true,
401 false));
402 EXPECT_FALSE(edit_view->IsSelectAll());
403 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_X, true, false,
404 false));
405 EXPECT_EQ(L"Hello world", edit_view->GetText());
406
407 #if !defined(OS_CHROMEOS)
408 // Try alt-f4 to close the popup.
409 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
410 popup, ui::VKEY_F4, false, false, true, false,
411 NotificationType::BROWSER_CLOSED, Source<Browser>(popup)));
412 #endif
413 }
414
415 void BackspaceInKeywordModeTest() {
416 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
417
418 ASSERT_NO_FATAL_FAILURE(SetupComponents());
419 browser()->FocusLocationBar();
420
421 AutocompleteEditView* edit_view = NULL;
422 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
423
424 // Trigger keyword hint mode.
425 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys));
426 ASSERT_TRUE(edit_view->model()->is_keyword_hint());
427 ASSERT_EQ(kSearchKeyword, WideToUTF8(edit_view->model()->keyword()));
428
429 // Trigger keyword mode.
430 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false));
431 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
432 ASSERT_EQ(kSearchKeyword, WideToUTF8(edit_view->model()->keyword()));
433
434 // Backspace without search text should bring back keyword hint mode.
435 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false));
436 ASSERT_TRUE(edit_view->model()->is_keyword_hint());
437 ASSERT_EQ(kSearchKeyword, WideToUTF8(edit_view->model()->keyword()));
438
439 // Trigger keyword mode again.
440 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false));
441 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
442 ASSERT_EQ(kSearchKeyword, WideToUTF8(edit_view->model()->keyword()));
443
444 // Input something as search text.
445 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys));
446
447 // Should stay in keyword mode while deleting search text by pressing
448 // backspace.
449 for (size_t i = 0; i < arraysize(kSearchText) - 1; ++i) {
450 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false));
451 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
452 ASSERT_EQ(kSearchKeyword, WideToUTF8(edit_view->model()->keyword()));
453 }
454
455 // Input something as search text.
456 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys));
457
458 // Move cursor to the beginning of the search text.
459 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, false, false));
460 // Backspace at the beginning of the search text shall turn off
461 // the keyword mode.
462 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false));
463 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
464 ASSERT_EQ(std::string(), WideToUTF8(edit_view->model()->keyword()));
465 ASSERT_EQ(std::string(kSearchKeyword) + kSearchText,
466 WideToUTF8(edit_view->GetText()));
467 }
468
469 void EscapeTest() {
470 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
471
472 ASSERT_NO_FATAL_FAILURE(SetupComponents());
473 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIHistoryURL));
474 browser()->FocusLocationBar();
475
476 AutocompleteEditView* edit_view = NULL;
477 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
478
479 std::wstring old_text = edit_view->GetText();
480 EXPECT_FALSE(old_text.empty());
481 EXPECT_TRUE(edit_view->IsSelectAll());
482
483 // Delete all text in omnibox.
484 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false));
485 EXPECT_TRUE(edit_view->GetText().empty());
486
487 // Escape shall revert the text in omnibox.
488 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_ESCAPE, false, false, false));
489 EXPECT_EQ(old_text, edit_view->GetText());
490 EXPECT_TRUE(edit_view->IsSelectAll());
491 }
492
493 void DesiredTLDTest() {
494 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
495
496 ASSERT_NO_FATAL_FAILURE(SetupComponents());
497 browser()->FocusLocationBar();
498
499 AutocompleteEditView* edit_view = NULL;
500 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
501 AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
502 ASSERT_TRUE(popup_model);
503
504 // Test ctrl-Enter.
505 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kDesiredTLDKeys));
506 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
507 ASSERT_TRUE(popup_model->IsOpen());
508 // ctrl-Enter triggers desired_tld feature, thus www.bar.com shall
509 // be opened.
510 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, true, false, false));
511
512 GURL url = browser()->GetSelectedTabContents()->GetURL();
513 EXPECT_STREQ(kDesiredTLDHostname, url.host().c_str());
514 }
515
516 void AltEnterTest() {
517 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
518
519 ASSERT_NO_FATAL_FAILURE(SetupComponents());
520 browser()->FocusLocationBar();
521
522 AutocompleteEditView* edit_view = NULL;
523 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
524
525 edit_view->SetUserText(ASCIIToWide(chrome::kChromeUIHistoryURL));
526 int tab_count = browser()->tab_count();
527 // alt-Enter opens a new tab.
528 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, true));
529 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count + 1));
530 }
531
532 void EnterToSearchTest() {
533 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
534
535 ASSERT_NO_FATAL_FAILURE(SetupHostResolver());
536 ASSERT_NO_FATAL_FAILURE(SetupSearchEngine());
537 browser()->FocusLocationBar();
538
539 AutocompleteEditView* edit_view = NULL;
540 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
541 AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
542 ASSERT_TRUE(popup_model);
543
544 // Test Enter to search.
545 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys));
546 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
547 ASSERT_TRUE(popup_model->IsOpen());
548
549 // Check if the default match result is Search Primary Provider.
550 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
551 popup_model->result().default_match()->type);
552
553 // Open the default match.
554 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, false));
555 GURL url = browser()->GetSelectedTabContents()->GetURL();
556 EXPECT_STREQ(kSearchTextURL, url.spec().c_str());
557
558 // Test that entering a single character then Enter performs a search.
559 browser()->FocusLocationBar();
560 EXPECT_TRUE(edit_view->IsSelectAll());
561 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchSingleCharKeys));
562 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
563 ASSERT_TRUE(popup_model->IsOpen());
564 EXPECT_EQ(kSearchSingleChar, WideToUTF8(edit_view->GetText()));
565
566 // Check if the default match result is Search Primary Provider.
567 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
568 popup_model->result().default_match()->type);
569
570 // Open the default match.
571 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, false));
572 url = browser()->GetSelectedTabContents()->GetURL();
573 EXPECT_STREQ(kSearchSingleCharURL, url.spec().c_str());
574 }
575
576 void EnterToOpenHistoryPageTest() {
577 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
578
579 ASSERT_NO_FATAL_FAILURE(SetupComponents());
580 browser()->FocusLocationBar();
581
582 AutocompleteEditView* edit_view = NULL;
583 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
584 AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
585 ASSERT_TRUE(popup_model);
586
587 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys));
588 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
589 ASSERT_TRUE(popup_model->IsOpen());
590 EXPECT_EQ(0U, popup_model->selected_line());
591
592 // Move to the history page item.
593 size_t size = popup_model->result().size();
594 while (true) {
595 if (popup_model->result().match_at(popup_model->selected_line()).type ==
596 AutocompleteMatch::OPEN_HISTORY_PAGE)
597 break;
598 size_t old_selected_line = popup_model->selected_line();
599 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DOWN, false, false, false));
600 ASSERT_EQ(old_selected_line + 1, popup_model->selected_line());
601 if (popup_model->selected_line() == size - 1)
602 break;
603 }
604
605 // Make sure the history page item is selected.
606 ASSERT_EQ(
607 AutocompleteMatch::OPEN_HISTORY_PAGE,
608 popup_model->result().match_at(popup_model->selected_line()).type);
609
610 // Open the history page item.
611 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, false));
612 GURL url = browser()->GetSelectedTabContents()->GetURL();
613 EXPECT_STREQ(kHistoryPageURL, url.spec().c_str());
614 }
615
616 void EscapeToDefaultMatchTest() {
617 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
618
619 ASSERT_NO_FATAL_FAILURE(SetupComponents());
620 browser()->FocusLocationBar();
621
622 AutocompleteEditView* edit_view = NULL;
623 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
624 AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
625 ASSERT_TRUE(popup_model);
626
627 // Input something to trigger inline autocomplete.
628 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys));
629 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
630 ASSERT_TRUE(popup_model->IsOpen());
631
632 std::wstring old_text = edit_view->GetText();
633
634 // Make sure inline autocomplete is triggerred.
635 EXPECT_GT(old_text.length(), arraysize(kSearchText) - 1);
636
637 size_t old_selected_line = popup_model->selected_line();
638 EXPECT_EQ(0U, old_selected_line);
639
640 // Move to another line with different text.
641 size_t size = popup_model->result().size();
642 while (popup_model->selected_line() < size - 1) {
643 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DOWN, false, false, false));
644 ASSERT_NE(old_selected_line, popup_model->selected_line());
645 if (old_text != edit_view->GetText())
646 break;
647 }
648
649 EXPECT_NE(old_text, edit_view->GetText());
650
651 // Escape shall revert back to the default match item.
652 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_ESCAPE, false, false, false));
653 EXPECT_EQ(old_text, edit_view->GetText());
654 EXPECT_EQ(old_selected_line, popup_model->selected_line());
655 }
656
657 void BasicTextOperationsTest() {
658 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
659
660 ASSERT_NO_FATAL_FAILURE(SetupComponents());
661 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kAboutBlankURL));
662 browser()->FocusLocationBar();
663
664 AutocompleteEditView* edit_view = NULL;
665 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
666
667 std::wstring old_text = edit_view->GetText();
668 EXPECT_EQ(UTF8ToWide(chrome::kAboutBlankURL), old_text);
669 EXPECT_TRUE(edit_view->IsSelectAll());
670
671 std::wstring::size_type start, end;
672 edit_view->GetSelectionBounds(&start, &end);
673 EXPECT_EQ(0U, start);
674 EXPECT_EQ(old_text.size(), end);
675
676 // Move the cursor to the end.
677 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false));
678 EXPECT_FALSE(edit_view->IsSelectAll());
679
680 // Make sure the cursor is placed correctly.
681 edit_view->GetSelectionBounds(&start, &end);
682 EXPECT_EQ(old_text.size(), start);
683 EXPECT_EQ(old_text.size(), end);
684
685 // Insert one character at the end. Make sure we won't insert anything after
686 // the special ZWS mark used in gtk implementation.
687 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_A, false, false, false));
688 EXPECT_EQ(old_text + L"a", edit_view->GetText());
689
690 // Delete one character from the end. Make sure we won't delete the special
691 // ZWS mark used in gtk implementation.
692 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false));
693 EXPECT_EQ(old_text, edit_view->GetText());
694
695 edit_view->SelectAll(true);
696 EXPECT_TRUE(edit_view->IsSelectAll());
697 edit_view->GetSelectionBounds(&start, &end);
698 EXPECT_EQ(0U, start);
699 EXPECT_EQ(old_text.size(), end);
700
701 // Delete the content
702 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DELETE, false, false, false));
703 EXPECT_TRUE(edit_view->IsSelectAll());
704 edit_view->GetSelectionBounds(&start, &end);
705 EXPECT_EQ(0U, start);
706 EXPECT_EQ(0U, end);
707 EXPECT_TRUE(edit_view->GetText().empty());
708
709 // Check if RevertAll() can set text and cursor correctly.
710 edit_view->RevertAll();
711 EXPECT_FALSE(edit_view->IsSelectAll());
712 EXPECT_EQ(old_text, edit_view->GetText());
713 edit_view->GetSelectionBounds(&start, &end);
714 EXPECT_EQ(old_text.size(), start);
715 EXPECT_EQ(old_text.size(), end);
716 }
303 }; 717 };
304 718
305 // Test if ctrl-* accelerators are workable in omnibox. 719 // Test if ctrl-* accelerators are workable in omnibox.
306 // See http://crbug.com/19193: omnibox blocks ctrl-* commands 720 // See http://crbug.com/19193: omnibox blocks ctrl-* commands
307 // 721 //
308 // Flaky on interactive tests (dbg), http://crbug.com/69433 722 // Flaky on interactive tests (dbg), http://crbug.com/69433
309 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, FLAKY_BrowserAccelerators) { 723 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, FLAKY_BrowserAccelerators) {
310 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 724 BrowserAcceleratorsTest();
311
312 browser()->FocusLocationBar();
313 AutocompleteEditView* edit_view = NULL;
314 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
315
316 int tab_count = browser()->tab_count();
317
318 // Create a new Tab.
319 browser()->NewTab();
320 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count + 1));
321
322 // Select the first Tab.
323 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_1, true, false, false));
324 ASSERT_EQ(0, browser()->selected_index());
325
326 browser()->FocusLocationBar();
327
328 // Select the second Tab.
329 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_2, true, false, false));
330 ASSERT_EQ(1, browser()->selected_index());
331
332 browser()->FocusLocationBar();
333
334 // Try ctrl-w to close a Tab.
335 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_W, true, false, false));
336 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count));
337
338 // Try ctrl-l to focus location bar.
339 edit_view->SetUserText(L"Hello world");
340 EXPECT_FALSE(edit_view->IsSelectAll());
341 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_L, true, false, false));
342 EXPECT_TRUE(edit_view->IsSelectAll());
343
344 // Try editing the location bar text.
345 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RIGHT, false, false, false));
346 EXPECT_FALSE(edit_view->IsSelectAll());
347 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_S, false, false, false));
348 EXPECT_EQ(L"Hello worlds", edit_view->GetText());
349
350 // Try ctrl-x to cut text.
351 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, true, true, false));
352 EXPECT_FALSE(edit_view->IsSelectAll());
353 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_X, true, false, false));
354 EXPECT_EQ(L"Hello ", edit_view->GetText());
355
356 #if !defined(OS_CHROMEOS)
357 // Try alt-f4 to close the browser.
358 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
359 browser(), ui::VKEY_F4, false, false, true, false,
360 NotificationType::BROWSER_CLOSED, Source<Browser>(browser())));
361 #endif
362 } 725 }
363 726
364 // Flakily fails and times out on Win only. http://crbug.com/69941 727 // Flakily fails and times out on Win only. http://crbug.com/69941
365 #if defined(OS_WIN) 728 #if defined(OS_WIN)
366 #define MAYBE_PopupAccelerators DISABLED_PopupAccelerators 729 #define MAYBE_PopupAccelerators DISABLED_PopupAccelerators
367 #else 730 #else
368 #define MAYBE_PopupAccelerators PopupAccelerators 731 #define MAYBE_PopupAccelerators PopupAccelerators
369 #endif 732 #endif
370 733
371 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, MAYBE_PopupAccelerators) { 734 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, MAYBE_PopupAccelerators) {
372 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 735 PopupAcceleratorsTest();
373
374 // Create a popup.
375 Browser* popup = CreateBrowserForPopup(browser()->profile());
376 AutocompleteEditView* edit_view = NULL;
377 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditViewForBrowser(popup, &edit_view));
378 popup->FocusLocationBar();
379 EXPECT_TRUE(edit_view->IsSelectAll());
380
381 // Try ctrl-w to close the popup.
382 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
383 popup, ui::VKEY_W, true, false, false, false,
384 NotificationType::BROWSER_CLOSED, Source<Browser>(popup)));
385
386 // Create another popup.
387 popup = CreateBrowserForPopup(browser()->profile());
388 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditViewForBrowser(popup, &edit_view));
389
390 // Set the edit text to "Hello world".
391 edit_view->SetUserText(L"Hello world");
392 EXPECT_FALSE(edit_view->IsSelectAll());
393 popup->FocusLocationBar();
394 EXPECT_TRUE(edit_view->IsSelectAll());
395
396 // Try editing the location bar text -- should be disallowed.
397 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_RIGHT, false,
398 false, false));
399 EXPECT_FALSE(edit_view->IsSelectAll());
400 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_S, false, false,
401 false));
402 EXPECT_EQ(L"Hello world", edit_view->GetText());
403
404 // Try ctrl-x to cut text -- should be disallowed.
405 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_LEFT, true, true,
406 false));
407 EXPECT_FALSE(edit_view->IsSelectAll());
408 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_X, true, false,
409 false));
410 EXPECT_EQ(L"Hello world", edit_view->GetText());
411
412 #if !defined(OS_CHROMEOS)
413 // Try alt-f4 to close the popup.
414 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
415 popup, ui::VKEY_F4, false, false, true, false,
416 NotificationType::BROWSER_CLOSED, Source<Browser>(popup)));
417 #endif
418 } 736 }
419 737
420 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, BackspaceInKeywordMode) { 738 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, BackspaceInKeywordMode) {
421 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 739 BackspaceInKeywordModeTest();
422
423 ASSERT_NO_FATAL_FAILURE(SetupComponents());
424 browser()->FocusLocationBar();
425
426 AutocompleteEditView* edit_view = NULL;
427 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
428
429 // Trigger keyword hint mode.
430 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys));
431 ASSERT_TRUE(edit_view->model()->is_keyword_hint());
432 ASSERT_EQ(kSearchKeyword, WideToUTF8(edit_view->model()->keyword()));
433
434 // Trigger keyword mode.
435 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false));
436 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
437 ASSERT_EQ(kSearchKeyword, WideToUTF8(edit_view->model()->keyword()));
438
439 // Backspace without search text should bring back keyword hint mode.
440 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false));
441 ASSERT_TRUE(edit_view->model()->is_keyword_hint());
442 ASSERT_EQ(kSearchKeyword, WideToUTF8(edit_view->model()->keyword()));
443
444 // Trigger keyword mode again.
445 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false));
446 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
447 ASSERT_EQ(kSearchKeyword, WideToUTF8(edit_view->model()->keyword()));
448
449 // Input something as search text.
450 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys));
451
452 // Should stay in keyword mode while deleting search text by pressing
453 // backspace.
454 for (size_t i = 0; i < arraysize(kSearchText) - 1; ++i) {
455 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false));
456 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
457 ASSERT_EQ(kSearchKeyword, WideToUTF8(edit_view->model()->keyword()));
458 }
459
460 // Input something as search text.
461 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys));
462
463 // Move cursor to the beginning of the search text.
464 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, false, false));
465 // Backspace at the beginning of the search text shall turn off
466 // the keyword mode.
467 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false));
468 ASSERT_FALSE(edit_view->model()->is_keyword_hint());
469 ASSERT_EQ(std::string(), WideToUTF8(edit_view->model()->keyword()));
470 ASSERT_EQ(std::string(kSearchKeyword) + kSearchText,
471 WideToUTF8(edit_view->GetText()));
472 } 740 }
473 741
474 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, Escape) { 742 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, Escape) {
475 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 743 EscapeTest();
476
477 ASSERT_NO_FATAL_FAILURE(SetupComponents());
478 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIHistoryURL));
479 browser()->FocusLocationBar();
480
481 AutocompleteEditView* edit_view = NULL;
482 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
483
484 std::wstring old_text = edit_view->GetText();
485 EXPECT_FALSE(old_text.empty());
486 EXPECT_TRUE(edit_view->IsSelectAll());
487
488 // Delete all text in omnibox.
489 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false));
490 EXPECT_TRUE(edit_view->GetText().empty());
491
492 // Escape shall revert the text in omnibox.
493 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_ESCAPE, false, false, false));
494 EXPECT_EQ(old_text, edit_view->GetText());
495 EXPECT_TRUE(edit_view->IsSelectAll());
496 } 744 }
497 745
498 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, DesiredTLD) { 746 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, DesiredTLD) {
499 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 747 DesiredTLDTest();
500
501 ASSERT_NO_FATAL_FAILURE(SetupComponents());
502 browser()->FocusLocationBar();
503
504 AutocompleteEditView* edit_view = NULL;
505 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
506 AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
507 ASSERT_TRUE(popup_model);
508
509 // Test ctrl-Enter.
510 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kDesiredTLDKeys));
511 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
512 ASSERT_TRUE(popup_model->IsOpen());
513 // ctrl-Enter triggers desired_tld feature, thus www.bar.com shall be opened.
514 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, true, false, false));
515
516 GURL url = browser()->GetSelectedTabContents()->GetURL();
517 EXPECT_STREQ(kDesiredTLDHostname, url.host().c_str());
518 } 748 }
519 749
520 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, AltEnter) { 750 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, AltEnter) {
521 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 751 AltEnterTest();
522
523 ASSERT_NO_FATAL_FAILURE(SetupComponents());
524 browser()->FocusLocationBar();
525
526 AutocompleteEditView* edit_view = NULL;
527 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
528
529 edit_view->SetUserText(ASCIIToWide(chrome::kChromeUIHistoryURL));
530 int tab_count = browser()->tab_count();
531 // alt-Enter opens a new tab.
532 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, true));
533 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count + 1));
534 } 752 }
535 753
536 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, EnterToSearch) { 754 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, EnterToSearch) {
537 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 755 EnterToSearchTest();
538
539 ASSERT_NO_FATAL_FAILURE(SetupHostResolver());
540 ASSERT_NO_FATAL_FAILURE(SetupSearchEngine());
541 browser()->FocusLocationBar();
542
543 AutocompleteEditView* edit_view = NULL;
544 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
545 AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
546 ASSERT_TRUE(popup_model);
547
548 // Test Enter to search.
549 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys));
550 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
551 ASSERT_TRUE(popup_model->IsOpen());
552
553 // Check if the default match result is Search Primary Provider.
554 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
555 popup_model->result().default_match()->type);
556
557 // Open the default match.
558 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, false));
559 GURL url = browser()->GetSelectedTabContents()->GetURL();
560 EXPECT_STREQ(kSearchTextURL, url.spec().c_str());
561
562 // Test that entering a single character then Enter performs a search.
563 browser()->FocusLocationBar();
564 EXPECT_TRUE(edit_view->IsSelectAll());
565 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchSingleCharKeys));
566 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
567 ASSERT_TRUE(popup_model->IsOpen());
568 EXPECT_EQ(kSearchSingleChar, WideToUTF8(edit_view->GetText()));
569
570 // Check if the default match result is Search Primary Provider.
571 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
572 popup_model->result().default_match()->type);
573
574 // Open the default match.
575 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, false));
576 url = browser()->GetSelectedTabContents()->GetURL();
577 EXPECT_STREQ(kSearchSingleCharURL, url.spec().c_str());
578 } 756 }
579 757
580 // See http://crbug.com/20934: Omnibox keyboard behavior wrong for 758 // See http://crbug.com/20934: Omnibox keyboard behavior wrong for
581 // "See recent pages in history" 759 // "See recent pages in history"
582 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, EnterToOpenHistoryPage) { 760 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, EnterToOpenHistoryPage) {
583 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 761 EnterToOpenHistoryPageTest();
584
585 ASSERT_NO_FATAL_FAILURE(SetupComponents());
586 browser()->FocusLocationBar();
587
588 AutocompleteEditView* edit_view = NULL;
589 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
590 AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
591 ASSERT_TRUE(popup_model);
592
593 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys));
594 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
595 ASSERT_TRUE(popup_model->IsOpen());
596 EXPECT_EQ(0U, popup_model->selected_line());
597
598 // Move to the history page item.
599 size_t size = popup_model->result().size();
600 while (true) {
601 if (popup_model->result().match_at(popup_model->selected_line()).type ==
602 AutocompleteMatch::OPEN_HISTORY_PAGE)
603 break;
604 size_t old_selected_line = popup_model->selected_line();
605 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DOWN, false, false, false));
606 ASSERT_EQ(old_selected_line + 1, popup_model->selected_line());
607 if (popup_model->selected_line() == size - 1)
608 break;
609 }
610
611 // Make sure the history page item is selected.
612 ASSERT_EQ(AutocompleteMatch::OPEN_HISTORY_PAGE,
613 popup_model->result().match_at(popup_model->selected_line()).type);
614
615 // Open the history page item.
616 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, false));
617 GURL url = browser()->GetSelectedTabContents()->GetURL();
618 EXPECT_STREQ(kHistoryPageURL, url.spec().c_str());
619 } 762 }
620 763
621 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, EscapeToDefaultMatch) { 764 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, EscapeToDefaultMatch) {
622 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 765 EscapeToDefaultMatchTest();
623
624 ASSERT_NO_FATAL_FAILURE(SetupComponents());
625 browser()->FocusLocationBar();
626
627 AutocompleteEditView* edit_view = NULL;
628 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
629 AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
630 ASSERT_TRUE(popup_model);
631
632 // Input something to trigger inline autocomplete.
633 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys));
634 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
635 ASSERT_TRUE(popup_model->IsOpen());
636
637 std::wstring old_text = edit_view->GetText();
638
639 // Make sure inline autocomplete is triggerred.
640 EXPECT_GT(old_text.length(), arraysize(kSearchText) - 1);
641
642 size_t old_selected_line = popup_model->selected_line();
643 EXPECT_EQ(0U, old_selected_line);
644
645 // Move to another line with different text.
646 size_t size = popup_model->result().size();
647 while (popup_model->selected_line() < size - 1) {
648 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DOWN, false, false, false));
649 ASSERT_NE(old_selected_line, popup_model->selected_line());
650 if (old_text != edit_view->GetText())
651 break;
652 }
653
654 EXPECT_NE(old_text, edit_view->GetText());
655
656 // Escape shall revert back to the default match item.
657 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_ESCAPE, false, false, false));
658 EXPECT_EQ(old_text, edit_view->GetText());
659 EXPECT_EQ(old_selected_line, popup_model->selected_line());
660 } 766 }
661 767
662 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, BasicTextOperations) { 768 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, BasicTextOperations) {
663 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 769 BasicTextOperationsTest();
664
665 ASSERT_NO_FATAL_FAILURE(SetupComponents());
666 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kAboutBlankURL));
667 browser()->FocusLocationBar();
668
669 AutocompleteEditView* edit_view = NULL;
670 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
671
672 std::wstring old_text = edit_view->GetText();
673 EXPECT_EQ(UTF8ToWide(chrome::kAboutBlankURL), old_text);
674 EXPECT_TRUE(edit_view->IsSelectAll());
675
676 std::wstring::size_type start, end;
677 edit_view->GetSelectionBounds(&start, &end);
678 EXPECT_EQ(0U, start);
679 EXPECT_EQ(old_text.size(), end);
680
681 // Move the cursor to the end.
682 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false));
683 EXPECT_FALSE(edit_view->IsSelectAll());
684
685 // Make sure the cursor is placed correctly.
686 edit_view->GetSelectionBounds(&start, &end);
687 EXPECT_EQ(old_text.size(), start);
688 EXPECT_EQ(old_text.size(), end);
689
690 // Insert one character at the end. Make sure we won't insert anything after
691 // the special ZWS mark used in gtk implementation.
692 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_A, false, false, false));
693 EXPECT_EQ(old_text + L"a", edit_view->GetText());
694
695 // Delete one character from the end. Make sure we won't delete the special
696 // ZWS mark used in gtk implementation.
697 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false));
698 EXPECT_EQ(old_text, edit_view->GetText());
699
700 edit_view->SelectAll(true);
701 EXPECT_TRUE(edit_view->IsSelectAll());
702 edit_view->GetSelectionBounds(&start, &end);
703 EXPECT_EQ(0U, start);
704 EXPECT_EQ(old_text.size(), end);
705
706 // Delete the content
707 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DELETE, false, false, false));
708 EXPECT_TRUE(edit_view->IsSelectAll());
709 edit_view->GetSelectionBounds(&start, &end);
710 EXPECT_EQ(0U, start);
711 EXPECT_EQ(0U, end);
712 EXPECT_TRUE(edit_view->GetText().empty());
713
714 // Check if RevertAll() can set text and cursor correctly.
715 edit_view->RevertAll();
716 EXPECT_FALSE(edit_view->IsSelectAll());
717 EXPECT_EQ(old_text, edit_view->GetText());
718 edit_view->GetSelectionBounds(&start, &end);
719 EXPECT_EQ(old_text.size(), start);
720 EXPECT_EQ(old_text.size(), end);
721 } 770 }
722 771
723 #if defined(OS_LINUX) 772 #if defined(OS_LINUX)
773 // TODO(oshima): enable these tests for views-implmentation when
774 // these featuers are supported.
775
724 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, UndoRedoLinux) { 776 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, UndoRedoLinux) {
725 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 777 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
726 778
727 ASSERT_NO_FATAL_FAILURE(SetupComponents()); 779 ASSERT_NO_FATAL_FAILURE(SetupComponents());
728 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kAboutBlankURL)); 780 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kAboutBlankURL));
729 browser()->FocusLocationBar(); 781 browser()->FocusLocationBar();
730 782
731 AutocompleteEditView* edit_view = NULL; 783 AutocompleteEditView* edit_view = NULL;
732 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); 784 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
733 785
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
850 902
851 // Paste text. 903 // Paste text.
852 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_V, true, false, false)); 904 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_V, true, false, false));
853 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); 905 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
854 ASSERT_TRUE(popup_model->IsOpen()); 906 ASSERT_TRUE(popup_model->IsOpen());
855 907
856 // Inline autocomplete shouldn't be triggered. 908 // Inline autocomplete shouldn't be triggered.
857 ASSERT_EQ(L"abc", edit_view->GetText()); 909 ASSERT_EQ(L"abc", edit_view->GetText());
858 } 910 }
859 #endif 911 #endif
912
913 #if defined(TOOLKIT_VIEWS)
914 class AutocompleteEditViewViewsTest : public AutocompleteEditViewTest {
915 public:
916 AutocompleteEditViewViewsTest() {
917 views::NativeTextfieldViews::SetEnableTextfieldViews(true);
918 }
919 };
920
921 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest,
922 FLAKY_BrowserAccelerators) {
923 BrowserAcceleratorsTest();
924 }
925
926 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, MAYBE_PopupAccelerators) {
927 PopupAcceleratorsTest();
928 }
929
930 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, BackspaceInKeywordMode) {
931 BackspaceInKeywordModeTest();
932 }
933
934 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, Escape) {
935 EscapeTest();
936 }
937
938 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, DesiredTLD) {
939 DesiredTLDTest();
940 }
941
942 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, AltEnter) {
943 AltEnterTest();
944 }
945
946 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, EnterToSearch) {
947 EnterToSearchTest();
948 }
949
950 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, EnterToOpenHistoryPage) {
951 EnterToOpenHistoryPageTest();
952 }
953
954 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, EscapeToDefaultMatch) {
955 EscapeToDefaultMatchTest();
956 }
957
958 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, BasicTextOperations) {
959 BasicTextOperationsTest();
960 }
961
962 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698