Chromium Code Reviews| Index: chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc |
| diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc |
| index 91b12dd6237d52870b183983672973778281b1cf..76374003629933524efe9430ac580a1ad7833af8 100644 |
| --- a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc |
| +++ b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc |
| @@ -301,7 +301,7 @@ IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, SelectAllOnTabToFocus) { |
| } |
| IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, CloseOmniboxPopupOnTextDrag) { |
| - OmniboxView* omnibox_view = NULL; |
| + OmniboxView* omnibox_view = nullptr; |
| ASSERT_NO_FATAL_FAILURE(GetOmniboxViewForBrowser(browser(), &omnibox_view)); |
| OmniboxViewViews* omnibox_view_views = |
| static_cast<OmniboxViewViews*>(omnibox_view); |
| @@ -311,13 +311,13 @@ IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, CloseOmniboxPopupOnTextDrag) { |
| omnibox_view->model()->popup_model()->autocomplete_controller(); |
| AutocompleteResult& results = autocomplete_controller->result_; |
| ACMatches matches; |
| - AutocompleteMatch match; |
| + AutocompleteMatch match(nullptr, 500, false, |
| + AutocompleteMatchType::HISTORY_TITLE); |
| + match.contents = base::ASCIIToUTF16("http://autocomplete-result/"); |
| + match.contents_class.push_back( |
| + ACMatchClassification(0, ACMatchClassification::URL)); |
| match.destination_url = GURL("http://autocomplete-result/"); |
| match.allowed_to_be_default_match = true; |
| - match.type = AutocompleteMatchType::HISTORY_TITLE; |
| - match.relevance = 500; |
| - matches.push_back(match); |
| - match.destination_url = GURL("http://autocomplete-result2/"); |
| matches.push_back(match); |
| const AutocompleteInput input( |
| base::ASCIIToUTF16("a"), base::string16::npos, std::string(), GURL(), |
| @@ -335,7 +335,7 @@ IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, CloseOmniboxPopupOnTextDrag) { |
| EXPECT_TRUE(omnibox_view->IsSelectAll()); |
| // Simulate a mouse click before dragging the mouse. |
| - gfx::Point point(omnibox_view_views->x(), omnibox_view_views->y()); |
| + gfx::Point point(omnibox_view_views->origin()); |
| ui::MouseEvent pressed(ui::ET_MOUSE_PRESSED, point, point, |
| ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, |
| ui::EF_LEFT_MOUSE_BUTTON); |
| @@ -350,6 +350,32 @@ IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, CloseOmniboxPopupOnTextDrag) { |
| EXPECT_FALSE(omnibox_view->model()->popup_model()->IsOpen()); |
| } |
| +IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, MaintainCursorAfterFocusCycle) { |
| + OmniboxView* omnibox_view = nullptr; |
| + ASSERT_NO_FATAL_FAILURE(GetOmniboxViewForBrowser(browser(), &omnibox_view)); |
| + OmniboxViewViews* omnibox_view_views = |
| + static_cast<OmniboxViewViews*>(omnibox_view); |
| + |
| + omnibox_view_views->SetUserText(base::ASCIIToUTF16("autocomplete-result"), |
| + true); |
| + EXPECT_TRUE(omnibox_view->model()->popup_model()->IsOpen()); |
|
Peter Kasting
2017/04/20 04:14:38
I was thinking about why you even care whether the
Kevin Bailey
2017/04/20 15:13:04
The last one that differentiates the fix is patchs
Peter Kasting
2017/04/20 17:16:07
I think it's OK to clean up that patch and land it
Kevin Bailey
2017/04/20 19:21:38
Ok, brought back as little (I hope) code as necess
|
| + |
| + // Save cursor position, before blur. |
| + size_t prev_start, end; |
| + omnibox_view->GetSelectionBounds(&prev_start, &end); |
| + |
| + chrome::FocusAppMenu(browser()); |
| + EXPECT_FALSE(omnibox_view->model()->popup_model()->IsOpen()); |
| + |
| + // Re-focus. |
| + chrome::FocusLocationBar(browser()); |
| + |
| + // Make sure cursor is restored. |
| + size_t start; |
| + omnibox_view->GetSelectionBounds(&start, &end); |
| + EXPECT_EQ(prev_start, start); |
| +} |
| + |
| IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, BackgroundIsOpaque) { |
| // The omnibox text should be rendered on an opaque background. Otherwise, we |
| // can't use subpixel rendering. |