Merge "Use the new loader to show app data usage summary."

This commit is contained in:
TreeHugger Robot
2018-10-03 01:30:40 +00:00
committed by Android (Google) Code Review
7 changed files with 84 additions and 51 deletions

View File

@@ -115,6 +115,7 @@ public class AppDataUsagePreferenceControllerTest {
@Test
public void onPause_shouldDestroyDataLoader() {
ReflectionHelpers.setField(mController, "mStatsSession", mock(INetworkStatsSession.class));
doReturn(mLoaderManager).when(mFragment).getLoaderManager();
mController.onPause();

View File

@@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
@@ -31,18 +32,20 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.net.ConnectivityManager;
import android.net.INetworkStatsSession;
import android.os.Bundle;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.datausage.AppDataUsage;
import com.android.settings.core.FeatureFlags;
import com.android.settings.datausage.AppDataUsageV2;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mock;import android.net.INetworkStatsSession;
import android.util.FeatureFlagUtils;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.util.ReflectionHelpers;
@@ -67,6 +70,7 @@ public class AppDataUsagePreferenceControllerV2Test {
mContext = spy(RuntimeEnvironment.application.getApplicationContext());
mController = spy(new AppDataUsagePreferenceControllerV2(mContext, "test_key"));
mController.setParentFragment(mFragment);
FeatureFlagUtils.setEnabled(mContext, FeatureFlags.DATA_USAGE_V2, true);
}
@Test
@@ -86,7 +90,8 @@ public class AppDataUsagePreferenceControllerV2Test {
}
@Test
public void onResume_noSession_shouldNotRestartDataLoader() {
public void onResume_notAvailable_shouldNotRestartDataLoader() {
FeatureFlagUtils.setEnabled(mContext, FeatureFlags.DATA_USAGE_V2, false);
doReturn(mLoaderManager).when(mFragment).getLoaderManager();
mController.onResume();
@@ -96,25 +101,26 @@ public class AppDataUsagePreferenceControllerV2Test {
}
@Test
public void onResume_hasSession_shouldRestartDataLoader() {
public void onResume_isAvailable_shouldRestartDataLoader() {
final ConnectivityManager connectivityManager = mock(ConnectivityManager.class);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
.thenReturn(connectivityManager);
when(connectivityManager.isNetworkSupported(anyInt())).thenReturn(true);
doReturn(mLoaderManager).when(mFragment).getLoaderManager();
ReflectionHelpers.setField(mController, "mStatsSession", mock(INetworkStatsSession.class));
doReturn(BasePreferenceController.AVAILABLE).when(mController).getAvailabilityStatus();
final AppEntry appEntry = mock(AppEntry.class);
appEntry.info = new ApplicationInfo();
when(mFragment.getAppEntry()).thenReturn(appEntry);
mController.onResume();
verify(mLoaderManager).restartLoader(
eq(AppInfoDashboardFragment.LOADER_CHART_DATA), any(Bundle.class), eq(mController));
verify(mLoaderManager).restartLoader(eq(AppInfoDashboardFragment.LOADER_CHART_DATA),
nullable(Bundle.class), eq(mController));
}
@Test
public void onPause_shouldDestroyDataLoader() {
doReturn(BasePreferenceController.AVAILABLE).when(mController).getAvailabilityStatus();
doReturn(mLoaderManager).when(mFragment).getLoaderManager();
mController.onPause();
@@ -124,7 +130,7 @@ public class AppDataUsagePreferenceControllerV2Test {
@Test
public void getDetailFragmentClass_shouldReturnAppDataUsage() {
assertThat(mController.getDetailFragmentClass()).isEqualTo(AppDataUsage.class);
assertThat(mController.getDetailFragmentClass()).isEqualTo(AppDataUsageV2.class);
}
@Test