diff options
author | 2020-07-10 13:07:03 -0700 | |
---|---|---|
committer | 2020-07-23 00:51:19 +0000 | |
commit | ff9e2bc5e05099a4f58ed13407d084d131d81bbb (patch) | |
tree | 1ac2614e793318c8ab97be79161e93bc028752be | |
parent | d1fcbc345ef27132dcb8df189c2deccc96017740 (diff) |
Make sure SearchFragment was dismissed when closing search.
Bug: 160955461
Test: atest DocumentsUIGoogleTests
Change-Id: I431ebfa095b51632eb3a794bb16ec02789cd0aec
(cherry picked from commit 1c8244f8914ae3df40f14f87c7a8ce605707c481)
3 files changed, 38 insertions, 0 deletions
diff --git a/src/com/android/documentsui/queries/SearchViewManager.java b/src/com/android/documentsui/queries/SearchViewManager.java index e94e900e8..a978ceaab 100644 --- a/src/com/android/documentsui/queries/SearchViewManager.java +++ b/src/com/android/documentsui/queries/SearchViewManager.java @@ -420,6 +420,11 @@ public class SearchViewManager implements // Refresh the directory if a search was done if (mCurrentSearch != null || mChipViewManager.hasCheckedItems()) { + // Make sure SearchFragment was dismissed. + if (mFragmentManager != null) { + SearchFragment.dismissFragment(mFragmentManager); + } + // Clear checked chips mChipViewManager.clearCheckedChips(); mCurrentSearch = null; diff --git a/tests/common/com/android/documentsui/bots/SearchBot.java b/tests/common/com/android/documentsui/bots/SearchBot.java index da7dc5481..0481aa4fb 100644 --- a/tests/common/com/android/documentsui/bots/SearchBot.java +++ b/tests/common/com/android/documentsui/bots/SearchBot.java @@ -92,6 +92,18 @@ public class SearchBot extends Bots.BaseBot { } } + public void assertSearchHistoryVisible(boolean visible) { + if (visible) { + assertTrue( + "Search fragment should be shown.", + findSearchHistoryView().exists()); + } else { + assertFalse( + "Search fragment should be dismissed.", + findSearchHistoryView().exists()); + } + } + public void assertInputEquals(String query) throws UiObjectNotFoundException { UiObject textField = findSearchViewTextField(); @@ -117,6 +129,10 @@ public class SearchBot extends Bots.BaseBot { return findObject(mTargetPackage + ":id/option_menu_search"); } + private UiObject findSearchHistoryView() { + return findObject(mTargetPackage + ":id/history_list"); + } + private UiObject findSearchViewTextField() { return findObject(mTargetPackage + ":id/option_menu_search", mTargetPackage + ":id/search_src_text"); diff --git a/tests/functional/com/android/documentsui/SearchViewUiTest.java b/tests/functional/com/android/documentsui/SearchViewUiTest.java index bc08c4984..2bda5ec31 100644 --- a/tests/functional/com/android/documentsui/SearchViewUiTest.java +++ b/tests/functional/com/android/documentsui/SearchViewUiTest.java @@ -100,6 +100,23 @@ public class SearchViewUiTest extends ActivityTest<FilesActivity> { bots.search.assertInputExists(false); } + public void testSearchFragment_DismissedOnCloseAfterCancel() throws Exception { + bots.search.clickIcon(); + bots.search.setInputText("query text"); + + // Cancel search + device.pressBack(); + device.waitForIdle(); + + // Close search + device.pressBack(); + device.waitForIdle(); + + bots.search.assertIconVisible(true); + bots.search.assertInputExists(false); + bots.search.assertSearchHistoryVisible(false); + } + public void testSearchView_ClearsTextOnBack() throws Exception { bots.search.clickIcon(); bots.search.setInputText("file2"); |