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

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

Merge "Fix robotests failure in connectivity settings"

parents ffd1ed3e e61a5e3b
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import androidx.test.core.content.pm.ApplicationInfoBuilder;

import com.android.settings.R;
import com.android.settings.nfc.NfcPreferenceController;
import com.android.settings.testutils.shadow.ShadowNfcAdapter;

import org.junit.Before;
import org.junit.Test;
@@ -43,7 +44,7 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowNfcAdapter;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowPackageManager;
import org.robolectric.util.ReflectionHelpers;

@@ -70,7 +71,7 @@ public class AdvancedConnectedDeviceControllerTest {
        mContentResolver = mContext.getContentResolver();
        mNfcController = new NfcPreferenceController(mContext,
                NfcPreferenceController.KEY_TOGGLE_NFC);
        mShadowNfcAdapter = Shadows.shadowOf(NfcAdapter.getNfcAdapter(mContext));
        mShadowNfcAdapter = Shadow.extract(NfcAdapter.getDefaultAdapter(mContext));
        mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
    }

+9 −10
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.settings.connecteddevice;
import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.nfc.NfcAdapter;
@@ -26,35 +25,38 @@ import android.provider.SearchIndexableResource;

import com.android.settings.nfc.AndroidBeamPreferenceController;
import com.android.settings.testutils.shadow.ShadowConnectivityManager;
import com.android.settings.testutils.shadow.ShadowNfcAdapter;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settingslib.drawer.CategoryKey;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;

import java.util.List;

@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowUserManager.class,
        ShadowConnectivityManager.class})
        ShadowConnectivityManager.class, ShadowNfcAdapter.class})
public class AdvancedConnectedDeviceDashboardFragmentTest {

    private AdvancedConnectedDeviceDashboardFragment mFragment;

    @Mock
    private NfcAdapter mNfcAdapter;
    private Context mContext;
    private ShadowNfcAdapter mShadowNfcAdapter;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);

        mContext = spy(RuntimeEnvironment.application);
        mFragment = new AdvancedConnectedDeviceDashboardFragment();
        mShadowNfcAdapter = Shadow.extract(NfcAdapter.getDefaultAdapter(mContext));
    }

    @Test
@@ -79,13 +81,10 @@ public class AdvancedConnectedDeviceDashboardFragmentTest {

    @Test
    public void testSearchIndexProvider_correctNonIndexables() {
        Context context = spy(RuntimeEnvironment.application);
        when(context.getApplicationContext()).thenReturn(context);
        when(NfcAdapter.getDefaultAdapter(context)).thenReturn(mNfcAdapter);
        when(mNfcAdapter.isSecureNfcSupported()).thenReturn(true);
        mShadowNfcAdapter.setSecureNfcSupported(true);
        final List<String> niks =
                AdvancedConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
                        .getNonIndexableKeys(context);
                        .getNonIndexableKeys(mContext);

        assertThat(niks).contains(AndroidBeamPreferenceController.KEY_ANDROID_BEAM_SETTINGS);
    }
+10 −7
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.nfc.NfcManager;
import android.os.UserManager;

import com.android.settings.R;
import com.android.settings.testutils.shadow.ShadowNfcAdapter;

import org.junit.Before;
import org.junit.Test;
@@ -37,9 +38,12 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.util.ReflectionHelpers;

@RunWith(RobolectricTestRunner.class)
@Config(shadows = ShadowNfcAdapter.class)
public class NfcAndPaymentFragmentControllerTest {
    private NfcAndPaymentFragmentController mController;
    private Context mContext;
@@ -50,29 +54,28 @@ public class NfcAndPaymentFragmentControllerTest {
    private UserManager mUserManager;
    @Mock
    private NfcManager mNfcManager;
    @Mock
    private NfcAdapter mNfcAdapter;

    private ShadowNfcAdapter mShadowNfcAdapter;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mContext = spy(RuntimeEnvironment.application);
        mShadowNfcAdapter = Shadow.extract(NfcAdapter.getDefaultAdapter(mContext));

        when(mContext.getApplicationContext()).thenReturn(mContext);
        when(mContext.getPackageManager()).thenReturn(mPackageManager);
        when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
        when(mContext.getSystemService(Context.NFC_SERVICE)).thenReturn(mNfcManager);
        when(NfcAdapter.getDefaultAdapter(mContext)).thenReturn(mNfcAdapter);

        mController = new NfcAndPaymentFragmentController(mContext, "fakeKey");
        ReflectionHelpers.setField(mController, "mNfcAdapter", mNfcAdapter);
    }

    @Test
    public void getAvailabilityStatus_hasNfc_shouldReturnAvailable() {
        when(mPackageManager.hasSystemFeature(anyString())).thenReturn(true);
        when(mUserManager.isAdminUser()).thenReturn(true);
        when(mNfcAdapter.isEnabled()).thenReturn(true);
        mShadowNfcAdapter.setEnabled(true);

        assertThat(mController.getAvailabilityStatus())
                .isEqualTo(NfcAndPaymentFragmentController.AVAILABLE);
@@ -87,14 +90,14 @@ public class NfcAndPaymentFragmentControllerTest {

    @Test
    public void getSummary_nfcOn_shouldProvideOnSummary() {
        when(mNfcAdapter.isEnabled()).thenReturn(true);
        mShadowNfcAdapter.setEnabled(true);
        assertThat(mController.getSummary().toString()).contains(
                mContext.getString(R.string.switch_on_text));
    }

    @Test
    public void getSummary_nfcOff_shouldProvideOffSummary() {
        when(mNfcAdapter.isEnabled()).thenReturn(false);
        mShadowNfcAdapter.setEnabled(false);
        assertThat(mController.getSummary().toString()).contains(
                mContext.getString(R.string.switch_off_text));
    }
+17 −5
Original line number Diff line number Diff line
@@ -22,9 +22,12 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.content.pm.PackageManager;
import android.nfc.NfcAdapter;
import android.provider.SearchIndexableResource;

import com.android.settings.testutils.shadow.ShadowNfcAdapter;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -32,16 +35,20 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;

import java.util.List;

@RunWith(RobolectricTestRunner.class)
@Config(shadows = ShadowNfcAdapter.class)
public class NfcAndPaymentFragmentTest {
    @Mock
    private PackageManager mPackageManager;

    private NfcAndPaymentFragment mFragment;
    private Context mContext;

    @Mock
    private NfcAdapter mNfcAdapter;
    private ShadowNfcAdapter mShadowNfcAdapter;

    @Before
    public void setUp() {
@@ -49,6 +56,9 @@ public class NfcAndPaymentFragmentTest {

        mFragment = new NfcAndPaymentFragment();
        mContext = spy(RuntimeEnvironment.application);
        mShadowNfcAdapter = Shadow.extract(NfcAdapter.getDefaultAdapter(mContext));

        when(mContext.getPackageManager()).thenReturn(mPackageManager);
    }

    @Test
@@ -64,8 +74,10 @@ public class NfcAndPaymentFragmentTest {
    @Test
    public void searchIndexProvider_shouldIndexValidItems() {
        when(mContext.getApplicationContext()).thenReturn(mContext);
        when(NfcAdapter.getDefaultAdapter(mContext)).thenReturn(mNfcAdapter);
        when(mNfcAdapter.isSecureNfcSupported()).thenReturn(true);
        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_NFC)).thenReturn(true);
        when(mPackageManager.hasSystemFeature(
                PackageManager.FEATURE_NFC_HOST_CARD_EMULATION)).thenReturn(true);
        mShadowNfcAdapter.setSecureNfcSupported(true);

        final List<String> niks = NfcAndPaymentFragment.SEARCH_INDEX_DATA_PROVIDER
                .getNonIndexableKeys(mContext);
+16 −13
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import android.provider.Settings;

import androidx.preference.PreferenceScreen;

import com.android.settings.testutils.shadow.ShadowNfcAdapter;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.RestrictedPreference;

@@ -41,19 +42,20 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.util.ReflectionHelpers;

import java.util.ArrayList;
import java.util.List;

@RunWith(RobolectricTestRunner.class)
@Config(shadows = ShadowNfcAdapter.class)
public class AndroidBeamPreferenceControllerTest {

    Context mContext;
    @Mock
    private NfcAdapter mNfcAdapter;
    @Mock
    NfcManager mManager;
    NfcManager mNfcManager;
    @Mock
    private UserManager mUserManager;
    @Mock
@@ -63,18 +65,19 @@ public class AndroidBeamPreferenceControllerTest {

    private RestrictedPreference mAndroidBeamPreference;
    private AndroidBeamPreferenceController mAndroidBeamController;
    private ShadowNfcAdapter mShadowNfcAdapter;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mContext = spy(RuntimeEnvironment.application);
        mShadowNfcAdapter = Shadow.extract(NfcAdapter.getDefaultAdapter(mContext));

        when(mContext.getApplicationContext()).thenReturn(mContext);
        when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
        when(mContext.getSystemService(Context.NFC_SERVICE)).thenReturn(mManager);
        when(mContext.getSystemService(Context.NFC_SERVICE)).thenReturn(mNfcManager);
        when(RestrictedLockUtilsInternal.hasBaseUserRestriction(mContext,
                UserManager.DISALLOW_OUTGOING_BEAM, UserHandle.myUserId())).thenReturn(false);
        when(NfcAdapter.getDefaultAdapter(mContext)).thenReturn(mNfcAdapter);

        mAndroidBeamController = new AndroidBeamPreferenceController(mContext,
                AndroidBeamPreferenceController.KEY_ANDROID_BEAM_SETTINGS);
@@ -95,13 +98,13 @@ public class AndroidBeamPreferenceControllerTest {

    @Test
    public void isAvailable_hasNfc_shouldReturnTrue() {
        when(mNfcAdapter.isEnabled()).thenReturn(true);
        mShadowNfcAdapter.setEnabled(true);
        assertThat(mAndroidBeamController.isAvailable()).isTrue();
    }

    @Test
    public void isAvailable_noNfcFeature_shouldReturnFalse() {
        when(mNfcAdapter.isEnabled()).thenReturn(true);
        mShadowNfcAdapter.setEnabled(true);
        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_NFC_BEAM)).thenReturn(false);
        assertThat(mAndroidBeamController.isAvailable()).isFalse();
    }
@@ -114,7 +117,7 @@ public class AndroidBeamPreferenceControllerTest {

    @Test
    public void isBeamEnable_disAllowBeam_shouldReturnFalse() {
        when(mNfcAdapter.getAdapterState()).thenReturn(NfcAdapter.STATE_OFF);
        mShadowNfcAdapter.setAdapterState(NfcAdapter.STATE_OFF);

        when(RestrictedLockUtilsInternal.hasBaseUserRestriction(mContext,
                UserManager.DISALLOW_OUTGOING_BEAM, UserHandle.myUserId())).thenReturn(true);
@@ -125,7 +128,7 @@ public class AndroidBeamPreferenceControllerTest {

    @Test
    public void isBeamEnable_nfcStateOn_shouldReturnTrue() {
        when(mNfcAdapter.getAdapterState()).thenReturn(NfcAdapter.STATE_ON);
        mShadowNfcAdapter.setAdapterState(NfcAdapter.STATE_ON);
        try {
            mAndroidBeamController.onResume();
        } catch (NullPointerException e) {
@@ -137,22 +140,22 @@ public class AndroidBeamPreferenceControllerTest {

    @Test
    public void isBeamEnable_nfcStateNotOn_shouldReturnFalse() {
        when(mNfcAdapter.getAdapterState()).thenReturn(NfcAdapter.STATE_OFF);
        mShadowNfcAdapter.setAdapterState(NfcAdapter.STATE_OFF);
        mAndroidBeamController.onResume();
        assertThat(mAndroidBeamPreference.isEnabled()).isFalse();

        when(mNfcAdapter.getAdapterState()).thenReturn(NfcAdapter.STATE_TURNING_ON);
        mShadowNfcAdapter.setAdapterState(NfcAdapter.STATE_TURNING_ON);
        mAndroidBeamController.onResume();
        assertThat(mAndroidBeamPreference.isEnabled()).isFalse();

        when(mNfcAdapter.getAdapterState()).thenReturn(NfcAdapter.STATE_TURNING_OFF);
        mShadowNfcAdapter.setAdapterState(NfcAdapter.STATE_TURNING_OFF);
        mAndroidBeamController.onResume();
        assertThat(mAndroidBeamPreference.isEnabled()).isFalse();
    }

    @Test
    public void updateNonIndexableKeys_available_shouldNotUpdate() {
        when(mNfcAdapter.isEnabled()).thenReturn(true);
        mShadowNfcAdapter.setEnabled(true);
        final List<String> keys = new ArrayList<>();

        mAndroidBeamController.updateNonIndexableKeys(keys);
Loading