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

Commit 01b442cf authored by ronish's avatar ronish Committed by Ronish Kalia
Browse files

Update tests for only enabling QR scanner in QS tile

This updates and adds a new test for ag/16500350 in
QRCodeScannerControllerTest

Bug: 200536509
Test: atest QRCodeScannerControllerTest
Change-Id: Iaf8fdc138119d642cf5a96665735a5d0fcde09da
parent bce8d161
Loading
Loading
Loading
Loading
+42 −15
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import static com.android.systemui.qrcodescanner.controller.QRCodeScannerControl
import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -73,7 +74,7 @@ public class QRCodeScannerControllerTest extends SysuiTestCase {
    private DeviceConfigProxyFake mProxyFake;

    private void setUpLocal(String deviceConfigActivity, String defaultActivity,
            boolean validateActivity, boolean enableSetting) {
            boolean validateActivity, boolean enableSetting, boolean enableOnLockScreen) {
        MockitoAnnotations.initMocks(this);
        int enableSettingInt = enableSetting ? 1 : 0;

@@ -91,6 +92,8 @@ public class QRCodeScannerControllerTest extends SysuiTestCase {
        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA)).thenReturn(true);
        mContext.getOrCreateTestableResources().addOverride(R.string.def_qr_code_component,
                defaultActivity);
        mContext.getOrCreateTestableResources().addOverride(
                android.R.bool.config_enableQrCodeScannerOnLockScreen, enableOnLockScreen);

        mProxyFake = new DeviceConfigProxyFake();
        mProxyFake.setProperty(DeviceConfig.NAMESPACE_SYSTEMUI,
@@ -126,7 +129,8 @@ public class QRCodeScannerControllerTest extends SysuiTestCase {
    @Test
    public void qrCodeScannerInit_withoutDefaultValue() {
        setUpLocal(/* deviceConfigActivity */ null, /* defaultActivity */
                "", /* validateActivity */ true, /* enableSetting */true);
                "", /* validateActivity */ true, /* enableSetting */ true,
                /* enableOnLockScreen */ true);
        verifyActivityDetails(null);
        assertThat(mController.isEnabledForLockScreenButton()).isFalse();
        assertThat(mController.isEnabledForQuickSettings()).isFalse();
@@ -135,7 +139,8 @@ public class QRCodeScannerControllerTest extends SysuiTestCase {
    @Test
    public void qrCodeScannerInit_withIncorrectDefaultValue() {
        setUpLocal(/* deviceConfigActivity */ null, /* defaultActivity */
                "abc/.def", /* validateActivity */ false, /* enableSetting */ true);
                "abc/.def", /* validateActivity */ false, /* enableSetting */ true,
                /* enableOnLockScreen */ true);
        verifyActivityDetails(null);
        assertThat(mController.isEnabledForLockScreenButton()).isFalse();
    }
@@ -143,7 +148,8 @@ public class QRCodeScannerControllerTest extends SysuiTestCase {
    @Test
    public void qrCodeScannerInit_withCorrectDefaultValue() {
        setUpLocal(/* deviceConfigActivity */ null, /* defaultActivity */
                "abc/.def", /* validateActivity */ true, /* enableSetting */true);
                "abc/.def", /* validateActivity */ true, /* enableSetting */true,
                /* enableOnLockScreen */ true);
        verifyActivityDetails("abc/.def");
        assertThat(mController.isEnabledForLockScreenButton()).isTrue();
        assertThat(mController.isEnabledForQuickSettings()).isTrue();
@@ -152,7 +158,8 @@ public class QRCodeScannerControllerTest extends SysuiTestCase {
    @Test
    public void qrCodeScannerInit_withCorrectDeviceConfig() {
        setUpLocal(/* deviceConfigActivity */ "abc/.def", /* defaultActivity */
                "", /* validateActivity */ true, /* enableSetting */true);
                "", /* validateActivity */ true, /* enableSetting */true,
                /* enableOnLockScreen */ true);
        verifyActivityDetails("abc/.def");
        assertThat(mController.isEnabledForLockScreenButton()).isTrue();
        assertThat(mController.isEnabledForQuickSettings()).isTrue();
@@ -161,7 +168,8 @@ public class QRCodeScannerControllerTest extends SysuiTestCase {
    @Test
    public void qrCodeScannerInit_withCorrectDeviceConfig_withCorrectDefaultValue() {
        setUpLocal(/* deviceConfigActivity */ "abc/.def", /* defaultActivity */
                "xyz/.qrs", /* validateActivity */true, /* enableSetting */ true);
                "xyz/.qrs", /* validateActivity */true, /* enableSetting */ true,
                /* enableOnLockScreen */ true);
        verifyActivityDetails("abc/.def");
        assertThat(mController.isEnabledForLockScreenButton()).isTrue();
        assertThat(mController.isEnabledForQuickSettings()).isTrue();
@@ -170,7 +178,8 @@ public class QRCodeScannerControllerTest extends SysuiTestCase {
    @Test
    public void qrCodeScannerInit_withCorrectDeviceConfig_fullActivity() {
        setUpLocal(/* deviceConfigActivity */ "abc/abc.def", /* defaultActivity */
                "", /* validateActivity */  true, /* enableSetting */ true);
                "", /* validateActivity */  true, /* enableSetting */ true,
                /* enableOnLockScreen */ true);
        verifyActivityDetails("abc/abc.def");
        assertThat(mController.isEnabledForLockScreenButton()).isTrue();
        assertThat(mController.isEnabledForQuickSettings()).isTrue();
@@ -179,7 +188,8 @@ public class QRCodeScannerControllerTest extends SysuiTestCase {
    @Test
    public void qrCodeScannerInit_withIncorrectDeviceConfig() {
        setUpLocal(/* deviceConfigActivity */ "def/.efg", /* defaultActivity */
                "", /* validateActivity */ false, /* enableSetting */ true);
                "", /* validateActivity */ false, /* enableSetting */ true,
                /* enableOnLockScreen */ true);
        verifyActivityDetails(null);
        assertThat(mController.isEnabledForLockScreenButton()).isFalse();
        assertThat(mController.isEnabledForQuickSettings()).isFalse();
@@ -188,7 +198,8 @@ public class QRCodeScannerControllerTest extends SysuiTestCase {
    @Test
    public void verifyDeviceConfigChange_withDefaultActivity() {
        setUpLocal(/* deviceConfigActivity */ null, /* defaultActivity */
                "abc/.def", /* validateActivity */ true, /* enableSetting */true);
                "abc/.def", /* validateActivity */ true, /* enableSetting */true,
                /* enableOnLockScreen */ true);
        verifyActivityDetails("abc/.def");
        assertThat(mController.isEnabledForLockScreenButton()).isTrue();
        assertThat(mController.isEnabledForQuickSettings()).isTrue();
@@ -214,7 +225,8 @@ public class QRCodeScannerControllerTest extends SysuiTestCase {
    @Test
    public void verifyDeviceConfigChange_withoutDefaultActivity() {
        setUpLocal(/* deviceConfigActivity */ null, /* defaultActivity */
                "", /* validateActivity */ true, /* enableSetting */ true);
                "", /* validateActivity */ true, /* enableSetting */ true,
                /* enableOnLockScreen */ true);
        verifyActivityDetails(null);
        assertThat(mController.isEnabledForLockScreenButton()).isFalse();
        assertThat(mController.isEnabledForQuickSettings()).isFalse();
@@ -239,7 +251,8 @@ public class QRCodeScannerControllerTest extends SysuiTestCase {
    @Test
    public void verifyDeviceConfigChangeToSameValue() {
        setUpLocal(/* deviceConfigActivity */ null, /* defaultActivity */
                "", /* validateActivity */ true, /* enableSetting */true);
                "", /* validateActivity */ true, /* enableSetting */true,
                /* enableOnLockScreen */ true);

        mProxyFake.setProperty(DeviceConfig.NAMESPACE_SYSTEMUI,
                SystemUiDeviceConfigFlags.DEFAULT_QR_CODE_SCANNER,
@@ -261,7 +274,8 @@ public class QRCodeScannerControllerTest extends SysuiTestCase {
    @Test
    public void verifyPreferenceChange() {
        setUpLocal(/* deviceConfigActivity */ null, /* defaultActivity */
                "abc/.def", /* validateActivity */ true, /* enableSetting */true);
                "abc/.def", /* validateActivity */ true, /* enableSetting */true,
                /* enableOnLockScreen */ true);
        mSecureSettings.putStringForUser(LOCK_SCREEN_SHOW_QR_CODE_SCANNER, "0",
                UserHandle.USER_CURRENT);
        mSecureSettings.putStringForUser(LOCK_SCREEN_SHOW_QR_CODE_SCANNER, "0",
@@ -278,7 +292,8 @@ public class QRCodeScannerControllerTest extends SysuiTestCase {
    @Test
    public void verifyPreferenceChangeToSameValue() {
        setUpLocal(/* deviceConfigActivity */ null, /* defaultActivity */
                "abc/.def", /* validateActivity */ true, /* enableSetting */true);
                "abc/.def", /* validateActivity */ true, /* enableSetting */true,
                /* enableOnLockScreen */ true);
        verifyActivityDetails("abc/.def");
        assertThat(mController.isEnabledForLockScreenButton()).isTrue();
        assertThat(mController.isEnabledForQuickSettings()).isTrue();
@@ -301,7 +316,8 @@ public class QRCodeScannerControllerTest extends SysuiTestCase {
    @Test
    public void verifyUnregisterRegisterChangeObservers() {
        setUpLocal(/* deviceConfigActivity */ null, /* defaultActivity */
                "abc/.def", /* validateActivity */ true, /* enableSetting */true);
                "abc/.def", /* validateActivity */ true, /* enableSetting */true,
                /* enableOnLockScreen */ true);
        verifyActivityDetails("abc/.def");
        assertThat(mController.isEnabledForLockScreenButton()).isTrue();
        assertThat(mController.isEnabledForQuickSettings()).isTrue();
@@ -312,7 +328,7 @@ public class QRCodeScannerControllerTest extends SysuiTestCase {
        assertThat(mController.isEnabledForLockScreenButton()).isFalse();
        assertThat(mController.isEnabledForQuickSettings()).isFalse();

        // Unregister once again and make sure, it affect affect the next register event
        // Unregister once again and make sure it affects the next register event
        mController.unregisterQRCodeScannerChangeObservers(DEFAULT_QR_CODE_SCANNER_CHANGE,
                QR_CODE_SCANNER_PREFERENCE_CHANGE);
        mController.registerQRCodeScannerChangeObservers(DEFAULT_QR_CODE_SCANNER_CHANGE,
@@ -321,4 +337,15 @@ public class QRCodeScannerControllerTest extends SysuiTestCase {
        assertThat(mController.isEnabledForLockScreenButton()).isTrue();
        assertThat(mController.isEnabledForQuickSettings()).isTrue();
    }

    @Test
    public void verifyDisableLockscreenButton() {
        setUpLocal(/* deviceConfigActivity */ null, /* defaultActivity */
                "abc/.def", /* validateActivity */ true, /* enableSetting */true,
                /* enableOnLockScreen */ false);
        assertThat(mController.getIntent()).isNotNull();
        assertThat(mController.isEnabledForLockScreenButton()).isFalse();
        assertThat(mController.isEnabledForQuickSettings()).isTrue();
        assertThat(getSettingsQRCodeDefaultComponent()).isNull();
    }
}