| 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 be700cbbf3457c9a87f8113c2b647f2cb8aa4b5f..247ef03f16be9525de744134f7ddb3e2d4dc1445 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));
|
|
|
| @@ -367,10 +378,7 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, FLAKY_BrowserAccelerators) {
|
| #else
|
| #define MAYBE_PopupAccelerators PopupAccelerators
|
| #endif
|
| -
|
| IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, MAYBE_PopupAccelerators) {
|
| - ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
|
| -
|
| // Create a popup.
|
| Browser* popup = CreateBrowserForPopup(browser()->profile());
|
| AutocompleteEditView* edit_view = NULL;
|
| @@ -418,11 +426,6 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, MAYBE_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));
|
|
|
| @@ -472,9 +475,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();
|
|
|
| @@ -496,11 +496,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();
|
| @@ -518,11 +513,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));
|
|
|
| @@ -534,12 +524,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();
|
| @@ -578,25 +562,20 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, EnterToSearch) {
|
| }
|
|
|
| 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);
|
| @@ -619,9 +598,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();
|
|
|
| @@ -679,11 +655,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()->on_paste();
|
| + 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()->on_paste();
|
| + 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();
|
|
|
| @@ -748,9 +822,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");
|
| @@ -777,9 +848,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: ダ
|
| @@ -795,11 +863,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();
|
|
|