Display recents when search fragment open.

Bug: 27391895
Test: make RunSettingsRoboTests
Change-Id: I62cfa35af96babf85a795910aa76dc774e2b80f2
This commit is contained in:
Fan Zhang
2017-03-13 18:09:29 -07:00
parent ae4d32e2ab
commit 199b0fd697
6 changed files with 137 additions and 55 deletions

View File

@@ -17,12 +17,11 @@
package com.android.settings.search2;
import android.app.LoaderManager;
import android.content.Context;
import android.content.Loader;
import android.os.Bundle;
import android.view.View;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.SettingsRobolectricTestRunner;
@@ -39,10 +38,12 @@ import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.util.ActivityController;
import org.robolectric.util.ReflectionHelpers;
import java.util.List;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyList;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
@@ -186,20 +187,23 @@ public class SearchFragmentTest {
ActivityController<SearchActivity> activityController =
Robolectric.buildActivity(SearchActivity.class);
activityController.setup();
SearchFragment fragment = (SearchFragment) activityController.get().getFragmentManager()
.findFragmentById(R.id.main_content);
fragment.onQueryTextChange("");
activityController.get().onBackPressed();
activityController.pause().stop().destroy();
SearchFragment fragment = spy((SearchFragment) activityController.get().getFragmentManager()
.findFragmentById(R.id.main_content));
final SearchResultsAdapter adapter = mock(SearchResultsAdapter.class);
ReflectionHelpers.setField(fragment, "mSearchAdapter", adapter);
verify(mFeatureFactory.searchFeatureProvider, never())
.getDatabaseSearchLoader(any(Context.class), anyString());
verify(mFeatureFactory.searchFeatureProvider, never())
.getInstalledAppSearchLoader(any(Context.class), anyString());
// Saved query loaded 2 times: fragment start, and query change to empty.
verify(mFeatureFactory.searchFeatureProvider, times(2))
verify(mFeatureFactory.searchFeatureProvider)
.getSavedQueryLoader(any(Context.class));
fragment.onLoadFinished(mSavedQueryLoader, null /* data */);
verify(adapter).displaySavedQuery(anyList());
}
@Test
@@ -225,7 +229,6 @@ public class SearchFragmentTest {
@Test
public void syncLoaders_MergeWhenAllLoadersDone() {
when(mFeatureFactory.searchFeatureProvider
.getDatabaseSearchLoader(any(Context.class), anyString()))
.thenReturn(new MockDBLoader(RuntimeEnvironment.application));
@@ -236,6 +239,7 @@ public class SearchFragmentTest {
ActivityController<SearchActivity> activityController =
Robolectric.buildActivity(SearchActivity.class);
activityController.setup();
SearchFragment fragment = (SearchFragment) spy(activityController.get().getFragmentManager()
.findFragmentById(R.id.main_content));