Merge "Add optional feedback button for settings search"

This commit is contained in:
Matthew Fritze
2017-03-13 19:39:49 +00:00
committed by Android (Google) Code Review
11 changed files with 237 additions and 22 deletions

View File

@@ -60,7 +60,7 @@ import static org.mockito.Mockito.doReturn;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class SearchAdapterTest {
public class SearchResultsAdapterTest {
@Mock
private SearchFragment mFragment;
@@ -114,7 +114,7 @@ public class SearchAdapterTest {
InstalledAppResultLoader.class.getName());
mAdapter.addResultsToMap(getDummyDbResults(),
DatabaseResultLoader.class.getName());
mAdapter.mergeResults();
int count = mAdapter.mergeResults();
List<SearchResult> results = mAdapter.getSearchResults();
assertThat(results.get(0).title).isEqualTo("alpha");
@@ -123,6 +123,7 @@ public class SearchAdapterTest {
assertThat(results.get(3).title).isEqualTo("bravo");
assertThat(results.get(4).title).isEqualTo("appCharlie");
assertThat(results.get(5).title).isEqualTo("Charlie");
assertThat(count).isEqualTo(6);
}
private List<SearchResult> getDummyDbResults() {

View File

@@ -67,7 +67,6 @@ public class DatabaseResultLoaderTest {
private final String summaryOne = "summaryOne";
private final String summaryTwo = "summaryTwo";
private final String summaryThree = "summaryThree";
private final String summaryFour = "summaryFour";
SQLiteDatabase mDb;

View File

@@ -16,10 +16,13 @@
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;
@@ -42,6 +45,7 @@ import java.util.List;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
@@ -241,4 +245,52 @@ public class SearchFragmentTest {
verify(fragment, times(2)).onLoadFinished(any(Loader.class), any(List.class));
}
@Test
public void whenNoQuery_HideFeedbackIsCalled() {
when(mFeatureFactory.searchFeatureProvider
.getDatabaseSearchLoader(any(Context.class), anyString()))
.thenReturn(new MockDBLoader(RuntimeEnvironment.application));
when(mFeatureFactory.searchFeatureProvider
.getInstalledAppSearchLoader(any(Context.class), anyString()))
.thenReturn(new MockAppLoader(RuntimeEnvironment.application));
ActivityController<SearchActivity> activityController =
Robolectric.buildActivity(SearchActivity.class);
activityController.setup();
SearchFragment fragment = (SearchFragment) spy(activityController.get().getFragmentManager()
.findFragmentById(R.id.main_content));
when(fragment.getLoaderManager()).thenReturn(mock(LoaderManager.class));
fragment.onQueryTextChange("");
Robolectric.flushForegroundThreadScheduler();
verify(mFeatureFactory.searchFeatureProvider).hideFeedbackButton();
}
@Test
public void onLoadFinished_ShowsFeedback() {
when(mFeatureFactory.searchFeatureProvider
.getDatabaseSearchLoader(any(Context.class), anyString()))
.thenReturn(new MockDBLoader(RuntimeEnvironment.application));
when(mFeatureFactory.searchFeatureProvider
.getInstalledAppSearchLoader(any(Context.class), anyString()))
.thenReturn(new MockAppLoader(RuntimeEnvironment.application));
ActivityController<SearchActivity> activityController =
Robolectric.buildActivity(SearchActivity.class);
activityController.setup();
SearchFragment fragment = (SearchFragment) spy(activityController.get().getFragmentManager()
.findFragmentById(R.id.main_content));
fragment.onQueryTextChange("non-empty");
Robolectric.flushForegroundThreadScheduler();
verify(mFeatureFactory.searchFeatureProvider).showFeedbackButton(any(SearchFragment.class),
any(View.class));
}
}