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

Commit 86531699 authored by Eduard Dumitrescul's avatar Eduard Dumitrescul
Browse files

Add default isPolicyApplied in ResolutionMechanism

This is a method providing a default implementation that simply checks
if the values are equal.

Bug: 285532044

Test: atest com.android.server.devicePolicy.ResolutionMechanismTest#isPolicyApplied_defaultImplementation_sameValues_returnsTrue

Test: atest com.android.server.devicePolicy.ResolutionMechanismTest#isPolicyApplied_defaultImplementation_differentValues_returnsFalse

Flag: TEST_ONLY

Change-Id: I9f7efa1df100e0935c8b36c35a405cc1dedfff22
parent 77503ef0
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.app.admin.PolicyValue;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Objects;

abstract class ResolutionMechanism<V> {

@@ -41,4 +42,8 @@ abstract class ResolutionMechanism<V> {
    }

    abstract android.app.admin.ResolutionMechanism<V> getParcelableResolutionMechanism();

    public boolean isPolicyApplied(PolicyValue<V> value, PolicyValue<V> currentResolvedPolicy) {
        return Objects.equals(value.getValue(), currentResolvedPolicy.getValue());
    }
}
+25 −0
Original line number Diff line number Diff line
@@ -25,11 +25,18 @@ import android.os.UserHandle
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.google.common.truth.Truth.assertThat
import kotlin.test.assertFalse
import kotlin.test.assertTrue
import org.junit.Test
import org.junit.runner.RunWith

@RunWith(AndroidJUnit4::class)
class ResolutionMechanismTest {
    private class ResolutionMechanismTestImpl : ResolutionMechanism<Int>() {
        override fun resolve(adminPolicies: java.util.LinkedHashMap<EnforcingAdmin?,
                PolicyValue<Int?>?>?): ResolvedPolicy<Int?>? = null
        override fun getParcelableResolutionMechanism(): android.app.admin
            .ResolutionMechanism<Int?>? = null
    }

    @Test
    fun resolve_flagUnion() {
@@ -145,6 +152,24 @@ class ResolutionMechanismTest {
        assertThat(resolvedPolicy?.contributingAdmins).containsExactly(DEVICE_OWNER_ADMIN)
    }

    @Test
    fun isPolicyApplied_defaultImplementation_sameValues_returnsTrue() {
        val resolutionMechanism = ResolutionMechanismTestImpl()

        assertTrue {
            resolutionMechanism.isPolicyApplied(INT_POLICY_A, INT_POLICY_A)
        }
    }

    @Test
    fun isPolicyApplied_defaultImplementation_differentValues_returnsFalse() {
        val resolutionMechanism = ResolutionMechanismTestImpl()

        assertFalse {
            resolutionMechanism.isPolicyApplied(INT_POLICY_A, INT_POLICY_AB)
        }
    }

    companion object {
        private const val SYSTEM_USER_ID = UserHandle.USER_SYSTEM
        private val SYSTEM_ADMIN = EnforcingAdmin.createSystemEnforcingAdmin("system_entity")