Dump the DynamicDenylistManager stored data into bugreport

Bug: 306329984
Test: make -j64 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.fuelgauge.datasaver"
Change-Id: If512f561b3b376ea56e0dc78c339bf254ff20060
This commit is contained in:
ykhung
2023-11-24 00:17:03 +08:00
parent 2dfae393c4
commit 072ccdd06a
2 changed files with 59 additions and 0 deletions

View File

@@ -36,6 +36,7 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.net.NetworkPolicyManager;
import android.util.ArraySet;
@@ -48,6 +49,8 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Collections;
import java.util.List;
import java.util.Set;
@@ -67,6 +70,8 @@ public class DynamicDenylistManagerTest {
@Mock
private NetworkPolicyManager mNetworkPolicyManager;
@Mock
private PackageManager mPackageManager;
@Before
public void setUp() {
@@ -357,12 +362,45 @@ public class DynamicDenylistManagerTest {
assertThat(mDynamicDenyListPref.getAll()).isEmpty();
}
@Test
public void dump_dumpExpectedResult() {
initDynamicDenylistManager(EMPTY_ARRAY);
setupPreference(mManualDenyListPref, FAKE_UID_1);
setupPreference(mDynamicDenyListPref, FAKE_UID_2);
final StringWriter stringWriter = new StringWriter();
final PrintWriter printWriter = new PrintWriter(stringWriter);
when(mPackageManager.getNameForUid(FAKE_UID_1_INT)).thenReturn("app1");
when(mPackageManager.getNameForUid(FAKE_UID_2_INT)).thenReturn("app2");
mDynamicDenylistManager.dump(printWriter);
final String dumpResults = stringWriter.toString();
assertThat(dumpResults.contains("ManualDenylist: app1")).isTrue();
assertThat(dumpResults.contains("DynamicDenylist: app2")).isTrue();
}
@Test
public void dump_withEmptySharedPreferences_dumpExpectedResult() {
initDynamicDenylistManager(EMPTY_ARRAY, EMPTY_ARRAY);
mDynamicDenylistManager.clearSharedPreferences();
final StringWriter stringWriter = new StringWriter();
final PrintWriter printWriter = new PrintWriter(stringWriter);
mDynamicDenylistManager.dump(printWriter);
final String dumpResults = stringWriter.toString();
assertThat(dumpResults.contains("ManualDenylist: null")).isTrue();
assertThat(dumpResults.contains("DynamicDenylist: null")).isTrue();
}
private void initDynamicDenylistManager(int[] preload) {
initDynamicDenylistManager(preload, preload);
}
private void initDynamicDenylistManager(int[] preload1, int[] preload2) {
final Context context = spy(RuntimeEnvironment.application.getApplicationContext());
when(context.getApplicationContext()).thenReturn(context);
when(context.getPackageManager()).thenReturn(mPackageManager);
when(mNetworkPolicyManager.getUidsWithPolicy(anyInt()))
.thenReturn(preload1).thenReturn(preload2);
mDynamicDenylistManager = new DynamicDenylistManager(context, mNetworkPolicyManager);