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

Commit 6290ad95 authored by Chiachang Wang's avatar Chiachang Wang
Browse files

Update mocking to correct target methods

The correct target context should use the mActivity in
MobileNetworkSettingsTest, so that the mocking for
telephony service could correctly applied.

Both AutoTimeZonePreferenceControllerTest and
BasebandVersionPreferenceControllerTest refer to the lib
implemented shadow Connectivitymanager but that does not
the correct reference after utils class being updated.
Update the test logic inside to refer to correct method.
The reference to ShadowConnectivityManager does not needed
anymore so remove it from the test.

Fix: 183068151
Fix: 183067742
Fix: 183068139
Test: make RunSettingsRoboTests ROBOTEST_FILTER=\
com.android.settings.network.telephony.MobileNetworkSettingsTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=\
com.android.settings.datetime.AutoTimeZonePreferenceControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings\
.deviceinfo.firmwareversion.BasebandVersionPreferenceControllerTest

Change-Id: I15ecc6aab7d530d20cd23b06267cc184a2c62b40
parent 959325e8
Loading
Loading
Loading
Loading
+13 −15
Original line number Diff line number Diff line
@@ -18,17 +18,16 @@ package com.android.settings.datetime;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.robolectric.shadow.api.Shadow.extract;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.net.ConnectivityManager;
import android.provider.Settings;
import android.telephony.TelephonyManager;

import androidx.preference.Preference;

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

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -36,27 +35,28 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;

@RunWith(RobolectricTestRunner.class)
@Config(shadows = ShadowConnectivityManager.class)
public class AutoTimeZonePreferenceControllerTest {

    @Mock
    private UpdateTimeAndDateCallback mCallback;

    @Mock
    private Context mContext;
    private AutoTimeZonePreferenceController mController;
    private Preference mPreference;
    private ShadowConnectivityManager connectivityManager;
    @Mock
    private TelephonyManager mTelephonyManager;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mContext = RuntimeEnvironment.application;
        mContext = spy(RuntimeEnvironment.application);

        mPreference = new Preference(mContext);
        connectivityManager = extract(mContext.getSystemService(ConnectivityManager.class));
        connectivityManager.setNetworkSupported(ConnectivityManager.TYPE_MOBILE, true);

        when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
        when(mTelephonyManager.isDataCapable()).thenReturn(true);
    }

    @Test
@@ -77,8 +77,7 @@ public class AutoTimeZonePreferenceControllerTest {

    @Test
    public void isWifiOnly_notAvailable() {
        connectivityManager.setNetworkSupported(ConnectivityManager.TYPE_MOBILE, false);

        when(mTelephonyManager.isDataCapable()).thenReturn(false);
        mController = new AutoTimeZonePreferenceController(
                mContext, null /* callback */, false /* fromSUW */);

@@ -95,8 +94,7 @@ public class AutoTimeZonePreferenceControllerTest {

    @Test
    public void isWifiOnly_notEnable() {
        connectivityManager.setNetworkSupported(ConnectivityManager.TYPE_MOBILE, false);

        when(mTelephonyManager.isDataCapable()).thenReturn(false);
        mController = new AutoTimeZonePreferenceController(
                mContext, null /* callback */, false /* fromSUW */);

+11 −16
Original line number Diff line number Diff line
@@ -21,44 +21,42 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_

import static com.google.common.truth.Truth.assertThat;

import static org.robolectric.shadow.api.Shadow.extract;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.net.ConnectivityManager;
import android.sysprop.TelephonyProperties;

import com.android.settings.testutils.shadow.ShadowConnectivityManager;
import android.telephony.TelephonyManager;

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 java.util.Arrays;

@RunWith(RobolectricTestRunner.class)
@Config(shadows = ShadowConnectivityManager.class)
public class BasebandVersionPreferenceControllerTest {

    @Mock
    private Context mContext;
    private BasebandVersionPreferenceController mController;
    @Mock
    private TelephonyManager mTelephonyManager;

    @Before
    public void setup() {
        MockitoAnnotations.initMocks(this);
        mContext = RuntimeEnvironment.application;
        mContext = spy(RuntimeEnvironment.application);
        mController = new BasebandVersionPreferenceController(mContext, "key");
        when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
    }

    @Test
    public void getAvailability_wifiOnly_unavailable() {
        final ShadowConnectivityManager connectivityManager =
                extract(mContext.getSystemService(ConnectivityManager.class));
        connectivityManager.setNetworkSupported(ConnectivityManager.TYPE_MOBILE, false);

        when(mTelephonyManager.isDataCapable()).thenReturn(false);
        assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
    }

@@ -66,10 +64,7 @@ public class BasebandVersionPreferenceControllerTest {
    public void getAvailability_hasMobile_available() {
        final String text = "test";
        TelephonyProperties.baseband_version(Arrays.asList(new String[]{text}));
        ShadowConnectivityManager connectivityManager =
                extract(mContext.getSystemService(ConnectivityManager.class));
        connectivityManager.setNetworkSupported(ConnectivityManager.TYPE_MOBILE, true);

        when(mTelephonyManager.isDataCapable()).thenReturn(true);
        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ public class MobileNetworkSettingsTest {
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mContext = spy(RuntimeEnvironment.application);
        when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
        when(mActivity.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
        when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
        when(mContext.getSystemService(NetworkStatsManager.class)).thenReturn(mNetworkStatsManager);
        ShadowEntityHeaderController.setUseMock(mock(EntityHeaderController.class));