summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Zemiao Zhu <zemiao@google.com> 2020-07-10 13:07:03 -0700
committer Zemiao Zhu <zemiao@google.com> 2020-07-23 00:51:19 +0000
commitff9e2bc5e05099a4f58ed13407d084d131d81bbb (patch)
tree1ac2614e793318c8ab97be79161e93bc028752be
parentd1fcbc345ef27132dcb8df189c2deccc96017740 (diff)
Make sure SearchFragment was dismissed when closing search.
Bug: 160955461 Test: atest DocumentsUIGoogleTests Change-Id: I431ebfa095b51632eb3a794bb16ec02789cd0aec (cherry picked from commit 1c8244f8914ae3df40f14f87c7a8ce605707c481)
-rw-r--r--src/com/android/documentsui/queries/SearchViewManager.java5
-rw-r--r--tests/common/com/android/documentsui/bots/SearchBot.java16
-rw-r--r--tests/functional/com/android/documentsui/SearchViewUiTest.java17
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");