| Index: chrome/browser/autocomplete/autocomplete_edit_view_browsertest.cc
|
| diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_browsertest.cc b/chrome/browser/autocomplete/autocomplete_edit_view_browsertest.cc
|
| index 0b8dfcc8d21f612bab16a92430302e835d9f0f51..7ea6e9991287f4389804bed769d8f27f6b7f4a61 100644
|
| --- a/chrome/browser/autocomplete/autocomplete_edit_view_browsertest.cc
|
| +++ b/chrome/browser/autocomplete/autocomplete_edit_view_browsertest.cc
|
| @@ -65,6 +65,11 @@ const wchar_t kDesiredTLDKeys[] = {
|
| ui::VKEY_B, ui::VKEY_A, ui::VKEY_R, 0
|
| };
|
|
|
| +const char kInlineAutocompleteText[] = "def";
|
| +const wchar_t kInlineAutocompleteTextKeys[] = {
|
| + ui::VKEY_D, ui::VKEY_E, ui::VKEY_F, 0
|
| +};
|
| +
|
| // Hostnames that shall be blocked by host resolver.
|
| const char *kBlockedHostnames[] = {
|
| "foo",
|
| @@ -73,6 +78,8 @@ const char *kBlockedHostnames[] = {
|
| "*.bar.com",
|
| "abc",
|
| "*.abc.com",
|
| + "def",
|
| + "*.def.com",
|
| "history",
|
| "z"
|
| };
|
| @@ -96,7 +103,7 @@ const struct TestHistoryEntry {
|
| {"http://www.bar.com/9", "Page 9", kSearchText, 1, 1, false },
|
|
|
| // To trigger inline autocomplete.
|
| - {"http://www.abc.com", "Page abc", kSearchText, 10000, 10000, true },
|
| + {"http://www.def.com", "Page def", kSearchText, 10000, 10000, true },
|
| };
|
|
|
| #if defined(OS_LINUX)
|
| @@ -129,6 +136,13 @@ class AutocompleteEditViewTest : public InProcessBrowserTest,
|
| set_show_window(true);
|
| }
|
|
|
| + virtual void SetUpOnMainThread() {
|
| + ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
|
| + ASSERT_NO_FATAL_FAILURE(SetupComponents());
|
| + browser()->FocusLocationBar();
|
| + ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR));
|
| + }
|
| +
|
| static void GetAutocompleteEditViewForBrowser(
|
| const Browser* browser,
|
| AutocompleteEditView** edit_view) {
|
| @@ -307,9 +321,6 @@ class AutocompleteEditViewTest : public InProcessBrowserTest,
|
| //
|
| // Flaky on interactive tests (dbg), http://crbug.com/69433
|
| IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, FLAKY_BrowserAccelerators) {
|
| - ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
|
| -
|
| - browser()->FocusLocationBar();
|
| AutocompleteEditView* edit_view = NULL;
|
| ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
|
|
|
| @@ -362,8 +373,6 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, FLAKY_BrowserAccelerators) {
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PopupAccelerators) {
|
| - ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
|
| -
|
| // Create a popup.
|
| Browser* popup = CreateBrowserForPopup(browser()->profile());
|
| AutocompleteEditView* edit_view = NULL;
|
| @@ -411,11 +420,6 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PopupAccelerators) {
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, BackspaceInKeywordMode) {
|
| - ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
|
| -
|
| - ASSERT_NO_FATAL_FAILURE(SetupComponents());
|
| - browser()->FocusLocationBar();
|
| -
|
| AutocompleteEditView* edit_view = NULL;
|
| ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
|
|
|
| @@ -465,9 +469,6 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, BackspaceInKeywordMode) {
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, Escape) {
|
| - ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
|
| -
|
| - ASSERT_NO_FATAL_FAILURE(SetupComponents());
|
| ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIHistoryURL));
|
| browser()->FocusLocationBar();
|
|
|
| @@ -489,11 +490,6 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, Escape) {
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, DesiredTLD) {
|
| - ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
|
| -
|
| - ASSERT_NO_FATAL_FAILURE(SetupComponents());
|
| - browser()->FocusLocationBar();
|
| -
|
| AutocompleteEditView* edit_view = NULL;
|
| ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
|
| AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
|
| @@ -511,11 +507,6 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, DesiredTLD) {
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, AltEnter) {
|
| - ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
|
| -
|
| - ASSERT_NO_FATAL_FAILURE(SetupComponents());
|
| - browser()->FocusLocationBar();
|
| -
|
| AutocompleteEditView* edit_view = NULL;
|
| ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
|
|
|
| @@ -527,12 +518,6 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, AltEnter) {
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, EnterToSearch) {
|
| - ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
|
| -
|
| - ASSERT_NO_FATAL_FAILURE(SetupHostResolver());
|
| - ASSERT_NO_FATAL_FAILURE(SetupSearchEngine());
|
| - browser()->FocusLocationBar();
|
| -
|
| AutocompleteEditView* edit_view = NULL;
|
| ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
|
| AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
|
| @@ -573,11 +558,6 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, EnterToSearch) {
|
| // See http://crbug.com/20934: Omnibox keyboard behavior wrong for
|
| // "See recent pages in history"
|
| IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, EnterToOpenHistoryPage) {
|
| - ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
|
| -
|
| - ASSERT_NO_FATAL_FAILURE(SetupComponents());
|
| - browser()->FocusLocationBar();
|
| -
|
| AutocompleteEditView* edit_view = NULL;
|
| ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
|
| AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
|
| @@ -612,25 +592,20 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, EnterToOpenHistoryPage) {
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, EscapeToDefaultMatch) {
|
| - ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
|
| -
|
| - ASSERT_NO_FATAL_FAILURE(SetupComponents());
|
| - browser()->FocusLocationBar();
|
| -
|
| AutocompleteEditView* edit_view = NULL;
|
| ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
|
| AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
|
| ASSERT_TRUE(popup_model);
|
|
|
| // Input something to trigger inline autocomplete.
|
| - ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys));
|
| + ASSERT_NO_FATAL_FAILURE(SendKeySequence(kInlineAutocompleteTextKeys));
|
| ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
|
| ASSERT_TRUE(popup_model->IsOpen());
|
|
|
| std::wstring old_text = edit_view->GetText();
|
|
|
| // Make sure inline autocomplete is triggerred.
|
| - EXPECT_GT(old_text.length(), arraysize(kSearchText) - 1);
|
| + EXPECT_GT(old_text.length(), arraysize(kInlineAutocompleteText) - 1);
|
|
|
| size_t old_selected_line = popup_model->selected_line();
|
| EXPECT_EQ(0U, old_selected_line);
|
| @@ -653,9 +628,6 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, EscapeToDefaultMatch) {
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, BasicTextOperations) {
|
| - ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
|
| -
|
| - ASSERT_NO_FATAL_FAILURE(SetupComponents());
|
| ui_test_utils::NavigateToURL(browser(), GURL(chrome::kAboutBlankURL));
|
| browser()->FocusLocationBar();
|
|
|
| @@ -713,11 +685,109 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, BasicTextOperations) {
|
| EXPECT_EQ(old_text.size(), end);
|
| }
|
|
|
| +IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, AcceptKeywordBySpace) {
|
| + AutocompleteEditView* edit_view = NULL;
|
| + ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
|
| +
|
| + std::wstring text = UTF8ToWide(kSearchKeyword);
|
| +
|
| + // Trigger keyword hint mode.
|
| + ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys));
|
| + ASSERT_TRUE(edit_view->model()->is_keyword_hint());
|
| + ASSERT_EQ(text, edit_view->model()->keyword());
|
| + ASSERT_EQ(text, edit_view->GetText());
|
| +
|
| + // Trigger keyword mode by space.
|
| + ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false));
|
| + ASSERT_FALSE(edit_view->model()->is_keyword_hint());
|
| + ASSERT_EQ(text, edit_view->model()->keyword());
|
| + ASSERT_TRUE(edit_view->GetText().empty());
|
| +
|
| + // Revert to keyword hint mode.
|
| + edit_view->model()->ClearKeyword(std::wstring());
|
| + ASSERT_TRUE(edit_view->model()->is_keyword_hint());
|
| + ASSERT_EQ(text, edit_view->model()->keyword());
|
| + ASSERT_EQ(text, edit_view->GetText());
|
| +
|
| + // Keyword should also be accepted by typing an ideographic space.
|
| + edit_view->OnBeforePossibleChange();
|
| + edit_view->SetWindowTextAndCaretPos(text + L"\x3000", text.length() + 1);
|
| + edit_view->OnAfterPossibleChange();
|
| + ASSERT_FALSE(edit_view->model()->is_keyword_hint());
|
| + ASSERT_EQ(text, edit_view->model()->keyword());
|
| + ASSERT_TRUE(edit_view->GetText().empty());
|
| +
|
| + // Revert to keyword hint mode.
|
| + edit_view->model()->ClearKeyword(std::wstring());
|
| + ASSERT_TRUE(edit_view->model()->is_keyword_hint());
|
| + ASSERT_EQ(text, edit_view->model()->keyword());
|
| + ASSERT_EQ(text, edit_view->GetText());
|
| +
|
| + // Keyword shouldn't be accepted by pasting.
|
| + // Simulate pasting a whitespace to the end of content.
|
| + edit_view->OnBeforePossibleChange();
|
| + edit_view->model()->OnPaste(false);
|
| + edit_view->SetWindowTextAndCaretPos(text + L" ", text.length() + 1);
|
| + edit_view->OnAfterPossibleChange();
|
| + // Should be still in keyword hint mode.
|
| + ASSERT_TRUE(edit_view->model()->is_keyword_hint());
|
| + ASSERT_EQ(text, edit_view->model()->keyword());
|
| + ASSERT_EQ(text + L" ", edit_view->GetText());
|
| +
|
| + // Keyword shouldn't be accepted by pressing space with a trailing whitespace.
|
| + ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false));
|
| + ASSERT_TRUE(edit_view->model()->is_keyword_hint());
|
| + ASSERT_EQ(text, edit_view->model()->keyword());
|
| + ASSERT_EQ(text + L" ", edit_view->GetText());
|
| +
|
| + // Keyword shouldn't be accepted by deleting the trailing space.
|
| + ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false));
|
| + ASSERT_TRUE(edit_view->model()->is_keyword_hint());
|
| + ASSERT_EQ(text, edit_view->model()->keyword());
|
| + ASSERT_EQ(text + L" ", edit_view->GetText());
|
| +
|
| + // Keyword shouldn't be accepted by pressing space in the middle of content.
|
| + ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, false, false, false));
|
| + ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false));
|
| + ASSERT_TRUE(edit_view->model()->is_keyword_hint());
|
| + ASSERT_EQ(text, edit_view->model()->keyword());
|
| + ASSERT_EQ(text + L" ", edit_view->GetText());
|
| +
|
| + // Keyword shouldn't be accepted by pasting "foo bar".
|
| + edit_view->SetUserText(std::wstring());
|
| + ASSERT_FALSE(edit_view->model()->is_keyword_hint());
|
| + ASSERT_TRUE(edit_view->model()->keyword().empty());
|
| +
|
| + edit_view->OnBeforePossibleChange();
|
| + edit_view->model()->OnPaste(true);
|
| + edit_view->SetWindowTextAndCaretPos(text + L" bar", text.length() + 4);
|
| + edit_view->OnAfterPossibleChange();
|
| + ASSERT_FALSE(edit_view->model()->is_keyword_hint());
|
| + ASSERT_TRUE(edit_view->model()->keyword().empty());
|
| + ASSERT_EQ(text + L" bar", edit_view->GetText());
|
| +
|
| + // Keyword shouldn't be accepted by pressing space with a selected range.
|
| + edit_view->OnBeforePossibleChange();
|
| + edit_view->OnInlineAutocompleteTextMaybeChanged(text + L" ", text.length());
|
| + edit_view->OnAfterPossibleChange();
|
| + ASSERT_TRUE(edit_view->model()->is_keyword_hint());
|
| + ASSERT_EQ(text, edit_view->model()->keyword());
|
| + ASSERT_EQ(text + L" ", edit_view->GetText());
|
| +
|
| + std::wstring::size_type start, end;
|
| + edit_view->GetSelectionBounds(&start, &end);
|
| + ASSERT_NE(start, end);
|
| + ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false));
|
| + ASSERT_TRUE(edit_view->model()->is_keyword_hint());
|
| + ASSERT_EQ(text, edit_view->model()->keyword());
|
| + ASSERT_EQ(text + L" ", edit_view->GetText());
|
| +
|
| + edit_view->GetSelectionBounds(&start, &end);
|
| + ASSERT_EQ(start, end);
|
| +}
|
| +
|
| #if defined(OS_LINUX)
|
| IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, UndoRedoLinux) {
|
| - ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
|
| -
|
| - ASSERT_NO_FATAL_FAILURE(SetupComponents());
|
| ui_test_utils::NavigateToURL(browser(), GURL(chrome::kAboutBlankURL));
|
| browser()->FocusLocationBar();
|
|
|
| @@ -782,9 +852,6 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, UndoRedoLinux) {
|
|
|
| // See http://crbug.com/63860
|
| IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PrimarySelection) {
|
| - ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
|
| -
|
| - browser()->FocusLocationBar();
|
| AutocompleteEditView* edit_view = NULL;
|
| ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
|
| edit_view->SetUserText(L"Hello world");
|
| @@ -811,9 +878,6 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PrimarySelection) {
|
| // See http://crosbug.com/10306
|
| IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest,
|
| BackspaceDeleteHalfWidthKatakana) {
|
| - ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
|
| -
|
| - browser()->FocusLocationBar();
|
| AutocompleteEditView* edit_view = NULL;
|
| ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
|
| // Insert text: ダ
|
| @@ -829,11 +893,6 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest,
|
|
|
| // http://crbug.com/12316
|
| IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PasteReplacingAll) {
|
| - ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
|
| -
|
| - ASSERT_NO_FATAL_FAILURE(SetupComponents());
|
| - browser()->FocusLocationBar();
|
| -
|
| AutocompleteEditView* edit_view = NULL;
|
| ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view));
|
| AutocompletePopupModel* popup_model = edit_view->model()->popup_model();
|
|
|