Merge "Use spy in PermissionMonitorTest." am: e666ae6ee5 am: 57b23ac131
am: d783fb242b
Change-Id: I1478b9c2bb12b6bfd161be99c5faa7aec76d9a7f
This commit is contained in:
@@ -165,7 +165,7 @@ public class PermissionMonitor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
int getDeviceFirstSdkInt() {
|
protected int getDeviceFirstSdkInt() {
|
||||||
return Build.VERSION.FIRST_SDK_INT;
|
return Build.VERSION.FIRST_SDK_INT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,9 @@ import static android.os.Process.SYSTEM_UID;
|
|||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.mockito.Mockito.anyInt;
|
import static org.mockito.Mockito.anyInt;
|
||||||
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.eq;
|
import static org.mockito.Mockito.eq;
|
||||||
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -63,24 +65,13 @@ public class PermissionMonitorTest {
|
|||||||
@Mock private PackageManager mPackageManager;
|
@Mock private PackageManager mPackageManager;
|
||||||
|
|
||||||
private PermissionMonitor mPermissionMonitor;
|
private PermissionMonitor mPermissionMonitor;
|
||||||
private int mMockFirstSdkInt;
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
when(mContext.getPackageManager()).thenReturn(mPackageManager);
|
when(mContext.getPackageManager()).thenReturn(mPackageManager);
|
||||||
when(mPackageManager.getPackagesForUid(anyInt())).thenReturn(MOCK_PACKAGE_NAMES);
|
when(mPackageManager.getPackagesForUid(anyInt())).thenReturn(MOCK_PACKAGE_NAMES);
|
||||||
// Try to use spy() here for stubbing getDeviceFirstSdkInt value but the spies are loaded
|
mPermissionMonitor = spy(new PermissionMonitor(mContext, null));
|
||||||
// by a custom class loader that's different from the loader used for loading the real
|
|
||||||
// thing. That means those two classes are not in the same package, so a package private
|
|
||||||
// method is not accessible. Hence, using override method to control FIRST_SDK_INT value
|
|
||||||
// instead of spy function for testing.
|
|
||||||
mPermissionMonitor = new PermissionMonitor(mContext, null) {
|
|
||||||
@Override
|
|
||||||
int getDeviceFirstSdkInt() {
|
|
||||||
return mMockFirstSdkInt;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasBgPermission(String partition, int targetSdkVersion, int uid,
|
private boolean hasBgPermission(String partition, int targetSdkVersion, int uid,
|
||||||
@@ -166,13 +157,13 @@ public class PermissionMonitorTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testHasUseBackgroundNetworksPermissionSystemUid() throws Exception {
|
public void testHasUseBackgroundNetworksPermissionSystemUid() throws Exception {
|
||||||
mMockFirstSdkInt = VERSION_P;
|
doReturn(VERSION_P).when(mPermissionMonitor).getDeviceFirstSdkInt();
|
||||||
assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_P, SYSTEM_UID));
|
assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_P, SYSTEM_UID));
|
||||||
assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_P, SYSTEM_UID, CHANGE_WIFI_STATE));
|
assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_P, SYSTEM_UID, CHANGE_WIFI_STATE));
|
||||||
assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_P, SYSTEM_UID,
|
assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_P, SYSTEM_UID,
|
||||||
CONNECTIVITY_USE_RESTRICTED_NETWORKS));
|
CONNECTIVITY_USE_RESTRICTED_NETWORKS));
|
||||||
|
|
||||||
mMockFirstSdkInt = VERSION_Q;
|
doReturn(VERSION_Q).when(mPermissionMonitor).getDeviceFirstSdkInt();
|
||||||
assertFalse(hasBgPermission(PARTITION_SYSTEM, VERSION_Q, SYSTEM_UID));
|
assertFalse(hasBgPermission(PARTITION_SYSTEM, VERSION_Q, SYSTEM_UID));
|
||||||
assertFalse(hasBgPermission(PARTITION_SYSTEM, VERSION_Q, SYSTEM_UID, CHANGE_WIFI_STATE));
|
assertFalse(hasBgPermission(PARTITION_SYSTEM, VERSION_Q, SYSTEM_UID, CHANGE_WIFI_STATE));
|
||||||
assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_Q, SYSTEM_UID,
|
assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_Q, SYSTEM_UID,
|
||||||
|
|||||||
Reference in New Issue
Block a user