Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36652d55 authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Android (Google) Code Review
Browse files

Merge "Merge "Use spy in PermissionMonitorTest." am: df01b11d am: 999733c5 am: 9c10dcc0"

parents 9b2fb2ad 15a1266b
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -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;
    }
    }


+5 −14
Original line number Original line Diff line number Diff line
@@ -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,