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

Commit cb90ffaf authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add unit tests for policy transparency on Fact Auth settings" into rvc-dev

parents fbe5a997 a49f4501
Loading
Loading
Loading
Loading
+28 −5
Original line number Diff line number Diff line
@@ -19,14 +19,20 @@ package com.android.settings.biometrics.face;
import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.content.pm.PackageManager;
import android.hardware.face.FaceManager;
import android.os.UserManager;
import android.provider.Settings;

import androidx.preference.SwitchPreference;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import com.android.settingslib.RestrictedSwitchPreference;

import org.junit.Before;
import org.junit.Test;
@@ -42,7 +48,10 @@ public class FaceSettingsLockscreenBypassPreferenceControllerTest {

    @Mock
    private FaceManager mFaceManager;
    private SwitchPreference mPreference;
    @Mock
    private PackageManager mPackageManager;
    @Mock
    private RestrictedSwitchPreference mPreference;
    @Mock
    private UserManager mUserManager;

@@ -52,12 +61,15 @@ public class FaceSettingsLockscreenBypassPreferenceControllerTest {
    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mContext = RuntimeEnvironment.application;
        mPreference = new SwitchPreference(mContext);
        mContext = spy(RuntimeEnvironment.application);
        when(mContext.getSystemService(eq(Context.FACE_SERVICE))).thenReturn(mFaceManager);
        when(mContext.getPackageManager()).thenReturn(mPackageManager);

        mController = new FaceSettingsLockscreenBypassPreferenceController(mContext, "test_key");
        mController = spy(new FaceSettingsLockscreenBypassPreferenceController(mContext,
                "test_key"));
        ReflectionHelpers.setField(mController, "mFaceManager", mFaceManager);
        ReflectionHelpers.setField(mController, "mUserManager", mUserManager);

    }

    @Test
@@ -86,4 +98,15 @@ public class FaceSettingsLockscreenBypassPreferenceControllerTest {
                Settings.Secure.FACE_UNLOCK_DISMISSES_KEYGUARD, 0) != 0;
        assertThat(newState).isEqualTo(!state);
    }

    @Test
    public void preferenceDisabled_byAdmin() {
        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FACE)).thenReturn(true);
        when(mFaceManager.isHardwareDetected()).thenReturn(true);

        EnforcedAdmin admin = new EnforcedAdmin();
        doReturn(admin).when(mController).getRestrictingAdmin();
        mController.updateState(mPreference);
        verify(mPreference).setDisabledByAdmin(admin);
    }
}