From 7f7a52c3aa81b71d9fb5b17d79320fe8e0c6ec44 Mon Sep 17 00:00:00 2001 From: Zemiao Zhu Date: Thu, 23 Jul 2020 16:59:06 -0700 Subject: Clear SearchView focus after selecting search history. Bug: 161677790 Test: atest DocumentsUIGoogleTests Change-Id: I0e90e5c1dce0d3395b55f7512545e0e00b810e88 --- .../android/documentsui/queries/SearchFragment.java | 2 +- .../common/com/android/documentsui/bots/SearchBot.java | 8 ++++++++ .../com/android/documentsui/SearchViewUiTest.java | 18 ++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/com/android/documentsui/queries/SearchFragment.java b/src/com/android/documentsui/queries/SearchFragment.java index 7f2e779bb..667dc8e48 100644 --- a/src/com/android/documentsui/queries/SearchFragment.java +++ b/src/com/android/documentsui/queries/SearchFragment.java @@ -150,7 +150,7 @@ public class SearchFragment extends Fragment{ final String item = mHistoryList.get(position); mSearchViewManager.setHistorySearch(); mSearchViewManager.setCurrentSearch(item); - mSearchViewManager.restoreSearch(true); + mSearchViewManager.restoreSearch(/* keepFocus= */ false); } private void dismiss() { diff --git a/tests/common/com/android/documentsui/bots/SearchBot.java b/tests/common/com/android/documentsui/bots/SearchBot.java index 0481aa4fb..13494f00d 100644 --- a/tests/common/com/android/documentsui/bots/SearchBot.java +++ b/tests/common/com/android/documentsui/bots/SearchBot.java @@ -34,6 +34,7 @@ import android.content.Context; import android.support.test.uiautomator.UiDevice; import android.support.test.uiautomator.UiObject; import android.support.test.uiautomator.UiObjectNotFoundException; +import android.support.test.uiautomator.UiSelector; import android.view.View; import androidx.recyclerview.R; @@ -76,6 +77,13 @@ public class SearchBot extends Bots.BaseBot { clear.click(); } + // Click on the search history item with specified queryText, if exists. + public void clickSearchHistory(String queryText) throws UiObjectNotFoundException { + UiObject history = findSearchHistoryView(); + UiSelector historyItemSelector = new UiSelector().text(queryText); + mDevice.findObject(history.getSelector().childSelector(historyItemSelector)).click(); + } + public void setInputText(String query) throws UiObjectNotFoundException { onView(SEARCH_INPUT).perform(typeText(query)); } diff --git a/tests/functional/com/android/documentsui/SearchViewUiTest.java b/tests/functional/com/android/documentsui/SearchViewUiTest.java index 2bda5ec31..04ea87a41 100644 --- a/tests/functional/com/android/documentsui/SearchViewUiTest.java +++ b/tests/functional/com/android/documentsui/SearchViewUiTest.java @@ -244,5 +244,23 @@ public class SearchViewUiTest extends ActivityTest { bots.search.assertInputExists(true); bots.search.assertInputFocused(true); + bots.search.assertSearchHistoryVisible(true); + } + + public void testSearchView_focusClearedAfterSelectingSearchHistory() throws Exception { + String queryText = "history"; + bots.search.clickIcon(); + bots.search.setInputText(queryText); + bots.keyboard.pressEnter(); + device.waitForIdle(); + + bots.search.clickSearchViewClearButton(); + device.waitForIdle(); + bots.search.assertInputFocused(true); + bots.search.assertSearchHistoryVisible(true); + + bots.search.clickSearchHistory(queryText); + bots.search.assertInputFocused(false); + bots.search.assertSearchHistoryVisible(false); } } -- cgit v1.2.3-59-g8ed1b