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

Commit 2683b696 authored by Rafael Prado's avatar Rafael Prado
Browse files

Make removePoliciesForAdmins call only when supervision is disabled.

Flag: android.app.supervision.flags.enable_remove_policies_on_supervision_disable
Bug: 414575617
Change-Id: Ifb7fd06d2cce8f0ebb48224295fa1e27884c5daf
parent 181fa0dc
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -365,7 +365,7 @@ public class SupervisionService extends ISupervisionManager.Stub {
                }
            }
            DevicePolicyManagerInternal dpmi = mInjector.getDpmInternal();
            if (Flags.enableRemovePoliciesOnSupervisionDisable() &&
            if (Flags.enableRemovePoliciesOnSupervisionDisable() && !enabled &&
                    dpmi != null && supervisionAppPackage != null) {
                dpmi.removePoliciesForAdmins(supervisionAppPackage, userId);
            }
+13 −18
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ import org.mockito.junit.MockitoJUnit
import org.mockito.junit.MockitoRule
import org.mockito.kotlin.any
import org.mockito.kotlin.eq
import org.mockito.kotlin.never
import org.mockito.kotlin.verify
import org.mockito.kotlin.whenever

@@ -74,19 +75,13 @@ import org.mockito.kotlin.whenever
 */
@RunWith(AndroidJUnit4::class)
class SupervisionServiceTest {
    @get:Rule
    val checkFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
    @get:Rule
    val mocks: MockitoRule = MockitoJUnit.rule()

    @Mock
    private lateinit var mockDpmInternal: DevicePolicyManagerInternal
    @Mock
    private lateinit var mockKeyguardManager: KeyguardManager
    @Mock
    private lateinit var mockPackageManager: PackageManager
    @Mock
    private lateinit var mockUserManagerInternal: UserManagerInternal
    @get:Rule val checkFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
    @get:Rule val mocks: MockitoRule = MockitoJUnit.rule()

    @Mock private lateinit var mockDpmInternal: DevicePolicyManagerInternal
    @Mock private lateinit var mockKeyguardManager: KeyguardManager
    @Mock private lateinit var mockPackageManager: PackageManager
    @Mock private lateinit var mockUserManagerInternal: UserManagerInternal

    private lateinit var context: Context
    private lateinit var lifecycle: SupervisionService.Lifecycle
@@ -107,10 +102,9 @@ class SupervisionServiceTest {
        lifecycle = SupervisionService.Lifecycle(context, service)
        lifecycle.registerProfileOwnerListener()


        // Creating a temporary folder to enable access to SupervisionSettings.
        SupervisionSettings.getInstance().changeDirForTesting(
            Files.createTempDirectory("tempSupervisionFolder").toFile())
        SupervisionSettings.getInstance()
            .changeDirForTesting(Files.createTempDirectory("tempSupervisionFolder").toFile())
    }

    @Test
@@ -271,13 +265,14 @@ class SupervisionServiceTest {
    fun setSupervisionEnabledForUser_removesPoliciesWhenDisabling() {
        assertThat(service.isSupervisionEnabledForUser(USER_ID)).isFalse()
        service.setSupervisionEnabledForUser(USER_ID, true)

        verify(mockDpmInternal, never()).removePoliciesForAdmins(any(), any())
        assertThat(service.isSupervisionEnabledForUser(USER_ID)).isTrue()

        service.setSupervisionEnabledForUser(USER_ID, false)

        assertThat(service.isSupervisionEnabledForUser(USER_ID)).isFalse()
        verify(mockDpmInternal)
            .removePoliciesForAdmins(eq(systemSupervisionPackage), eq(USER_ID))
        verify(mockDpmInternal).removePoliciesForAdmins(eq(systemSupervisionPackage), eq(USER_ID))
    }

    @Test