Commit 665126c3 authored by Rachel Wong's avatar Rachel Wong Committed by Commit Bot

Clear result selection when the search box resets.

This is intended to allow selection to remain on the selected action if
the launcher is updated with new results.

Bug: 1114969
Change-Id: I25f7153da7cdf25d4f9ccdf70e0f3ac85036911e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2348244
Commit-Queue: Rachel Wong <wrong@chromium.org>
Reviewed-by: default avatarToni Baržić <tbarzic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#797560}
parent 2e2085fb
......@@ -564,6 +564,9 @@ void SearchBoxView::ClearSearchAndDeactivateSearchBox() {
view_delegate_->LogSearchAbandonHistogram();
contents_view_->search_results_page_view()
->result_selection_controller()
->ClearSelection();
ClearSearch();
SetSearchBoxActive(false, ui::ET_UNKNOWN);
}
......
......@@ -569,6 +569,59 @@ TEST_F(SearchBoxViewTest,
EXPECT_EQ(base::ASCIIToUTF16("test"), selection->result()->title());
}
// Tests that the default selection is reset after resetting and reactivating
// the search box.
TEST_F(SearchBoxViewTest, ResetSelectionAfterResettingSearchBox) {
SetSearchBoxActive(true, ui::ET_UNKNOWN);
CreateSearchResult(ash::SearchResultDisplayType::kList, 0.7,
base::ASCIIToUTF16("test1"), base::string16());
CreateSearchResult(ash::SearchResultDisplayType::kList, 0.5,
base::ASCIIToUTF16("test2"), base::string16());
base::RunLoop().RunUntilIdle();
SearchResultPageView* const result_page_view =
view()->contents_view()->search_results_page_view();
// Selection should rest on the first result, which is default.
const SearchResultBaseView* selection =
result_page_view->result_selection_controller()->selected_result();
EXPECT_EQ(result_page_view->first_result_view(), selection);
ASSERT_TRUE(selection->result());
EXPECT_EQ(base::ASCIIToUTF16("test1"), selection->result()->title());
EXPECT_TRUE(selection->is_default_result());
// Navigate down then up. The first result should no longer be default.
KeyPress(ui::VKEY_DOWN);
KeyPress(ui::VKEY_UP);
selection =
result_page_view->result_selection_controller()->selected_result();
ASSERT_TRUE(selection->result());
EXPECT_EQ(base::ASCIIToUTF16("test1"), selection->result()->title());
EXPECT_FALSE(selection->is_default_result());
// Navigate down to the second result.
KeyPress(ui::VKEY_DOWN);
selection =
result_page_view->result_selection_controller()->selected_result();
ASSERT_TRUE(selection->result());
EXPECT_EQ(base::ASCIIToUTF16("test2"), selection->result()->title());
// Reset the search box.
view()->ClearSearchAndDeactivateSearchBox();
SetSearchBoxActive(true, ui::ET_UNKNOWN);
result_page_view->OnSearchResultContainerResultsChanged();
// Selection should again rest on the first result, which is default.
selection =
result_page_view->result_selection_controller()->selected_result();
EXPECT_EQ(result_page_view->first_result_view(), selection);
ASSERT_TRUE(selection->result());
EXPECT_EQ(base::ASCIIToUTF16("test1"), selection->result()->title());
EXPECT_TRUE(selection->is_default_result());
}
TEST_F(SearchBoxViewTest, NewSearchQueryActionRecordedWhenUserType) {
base::UserActionTester user_action_tester;
// User starts to type a character in search box.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment