Unregister all the receivers during test teardown.

Bug: 253696106
Test: atest services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java
Change-Id: I15eb40a92790373182e79bdd15bf01d66520d1bf
This commit is contained in:
Sudheer Shanka
2022-10-20 14:59:46 -07:00
parent 2630937cd0
commit 31b33be1d9

View File

@@ -113,8 +113,10 @@ import android.app.NotificationManager;
import android.app.usage.NetworkStats;
import android.app.usage.NetworkStatsManager;
import android.app.usage.UsageStatsManagerInternal;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.ApplicationInfo;
import android.content.pm.IPackageManager;
import android.content.pm.PackageInfo;
@@ -134,6 +136,7 @@ import android.net.NetworkTemplate;
import android.net.TelephonyNetworkSpecifier;
import android.net.wifi.WifiInfo;
import android.os.Binder;
import android.os.Build;
import android.os.Handler;
import android.os.INetworkManagementService;
import android.os.PersistableBundle;
@@ -152,6 +155,7 @@ import android.telephony.TelephonyManager;
import android.test.suitebuilder.annotation.MediumTest;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.DataUnit;
import android.util.Log;
import android.util.Pair;
@@ -171,11 +175,12 @@ import com.android.server.LocalServices;
import com.android.server.pm.pkg.AndroidPackage;
import com.android.server.usage.AppStandbyInternal;
import libcore.io.Streams;
import com.google.common.util.concurrent.AbstractFuture;
import libcore.io.Streams;
import org.junit.After;
import org.junit.Assume;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -286,6 +291,8 @@ public class NetworkPolicyManagerServiceTest {
private NetworkPolicyListenerAnswer mPolicyListener;
private NetworkPolicyManagerService mService;
private final ArraySet<BroadcastReceiver> mRegisteredReceivers = new ArraySet<>();
/**
* In some of the tests while initializing NetworkPolicyManagerService,
* ACTION_RESTRICT_BACKGROUND_CHANGED is broadcasted. This is for capturing that broadcast.
@@ -437,6 +444,21 @@ public class NetworkPolicyManagerServiceTest {
public void enforceCallingOrSelfPermission(String permission, String message) {
// Assume that we're AID_SYSTEM
}
@Override
public Intent registerReceiver(BroadcastReceiver receiver,
IntentFilter filter, String broadcastPermission, Handler scheduler) {
mRegisteredReceivers.add(receiver);
return super.registerReceiver(receiver, filter, broadcastPermission, scheduler);
}
@Override
public Intent registerReceiverForAllUsers(BroadcastReceiver receiver,
IntentFilter filter, String broadcastPermission, Handler scheduler) {
mRegisteredReceivers.add(receiver);
return super.registerReceiverForAllUsers(receiver, filter, broadcastPermission,
scheduler);
}
};
setNetpolicyXml(context);
@@ -557,6 +579,13 @@ public class NetworkPolicyManagerServiceTest {
RecurrenceRule.sClock = Clock.systemDefaultZone();
}
@After
public void unregisterReceivers() throws Exception {
for (BroadcastReceiver receiver : mRegisteredReceivers) {
mServiceContext.unregisterReceiver(receiver);
}
}
@Test
public void testTurnRestrictBackgroundOn() throws Exception {
assertRestrictBackgroundOff();
@@ -2033,6 +2062,9 @@ public class NetworkPolicyManagerServiceTest {
@Test
public void testNormalizeTemplate_duplicatedMergedImsiList() {
// This test leads to a Log.wtf, so skip it on eng builds. Otherwise, Log.wtf() would
// result in this process getting killed.
Assume.assumeFalse(Build.IS_ENG);
final NetworkTemplate template = new NetworkTemplate.Builder(MATCH_CARRIER)
.setSubscriberIds(Set.of(TEST_IMSI)).build();
final String[] mergedImsiGroup = new String[] {TEST_IMSI, TEST_IMSI};