From 081414e84db6fcfe8b9bad7a244ad9136b117b52 Mon Sep 17 00:00:00 2001 From: changbetty Date: Fri, 21 Feb 2020 15:56:34 +0800 Subject: [PATCH] [Telephony Setting] Enable the Settings test case Bug: 147464840 Test: make RunSettingsRoboTests ROBOTEST_FILTER=AirplaneModePreferenceControllerTest make RunSettingsRoboTests ROBOTEST_FILTER=MobileNetworkPreferenceControllerTest Change-Id: I192385b1d847323d18ebc621f29ccc65cd7473d8 --- .../AirplaneModePreferenceController.java | 6 ++++ .../AirplaneModePreferenceControllerTest.java | 33 ++++--------------- ...MobileNetworkPreferenceControllerTest.java | 13 ++++---- 3 files changed, 19 insertions(+), 33 deletions(-) diff --git a/src/com/android/settings/network/AirplaneModePreferenceController.java b/src/com/android/settings/network/AirplaneModePreferenceController.java index f5fff1c25bc..e852b80e00d 100644 --- a/src/com/android/settings/network/AirplaneModePreferenceController.java +++ b/src/com/android/settings/network/AirplaneModePreferenceController.java @@ -25,6 +25,7 @@ import android.net.Uri; import android.provider.SettingsSlicesContract; import android.telephony.TelephonyManager; +import androidx.annotation.VisibleForTesting; import androidx.fragment.app.Fragment; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; @@ -70,6 +71,11 @@ public class AirplaneModePreferenceController extends TogglePreferenceController mFragment = hostFragment; } + @VisibleForTesting + void setAirplaneModeEnabler(AirplaneModeEnabler airplaneModeEnabler) { + mAirplaneModeEnabler = airplaneModeEnabler; + } + @Override public boolean handlePreferenceTreeClick(Preference preference) { if (KEY_AIRPLANE_MODE.equals(preference.getKey()) diff --git a/tests/robotests/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java index f47c0c5343b..54c36833d45 100644 --- a/tests/robotests/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java @@ -32,13 +32,13 @@ import androidx.lifecycle.LifecycleOwner; import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; +import com.android.settings.AirplaneModeEnabler; import com.android.settings.core.BasePreferenceController; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.RestrictedSwitchPreference; import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -55,7 +55,8 @@ public class AirplaneModePreferenceControllerTest { @Mock private PackageManager mPackageManager; - + @Mock + private AirplaneModeEnabler mAirplaneModeEnabler; private Context mContext; private ContentResolver mResolver; private PreferenceManager mPreferenceManager; @@ -126,38 +127,18 @@ public class AirplaneModePreferenceControllerTest { } @Test - @Ignore public void airplaneModePreference_testSetValue_updatesCorrectly() { - // Airplane mode default off - Settings.Global.putInt(mResolver, Settings.Global.AIRPLANE_MODE_ON, OFF); - - mController.displayPreference(mScreen); - mController.onResume(); - - assertThat(mPreference.isChecked()).isFalse(); - - assertThat(mController.isChecked()).isFalse(); // Set airplane mode ON by setChecked - boolean updated = mController.setChecked(true); - assertThat(updated).isTrue(); + mController.setAirplaneModeEnabler(mAirplaneModeEnabler); + assertThat(mController.setChecked(true)).isTrue(); // Check return value if set same status. - updated = mController.setChecked(true); - assertThat(updated).isFalse(); - - // UI is updated - assertThat(mPreference.isChecked()).isTrue(); - - // Settings status changed. - int updatedValue = Settings.Global.getInt(mResolver, Settings.Global.AIRPLANE_MODE_ON, OFF); - assertThat(updatedValue).isEqualTo(ON); + when(mAirplaneModeEnabler.isAirplaneModeOn()).thenReturn(true); + assertThat(mController.setChecked(true)).isFalse(); // Set to OFF assertThat(mController.setChecked(false)).isTrue(); - assertThat(mPreference.isChecked()).isFalse(); - updatedValue = Settings.Global.getInt(mResolver, Settings.Global.AIRPLANE_MODE_ON, OFF); - assertThat(updatedValue).isEqualTo(OFF); } @Test diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java index e2410c14b0b..6d46f9c6074 100644 --- a/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java @@ -33,6 +33,7 @@ import android.os.UserManager; import android.provider.Settings; import android.provider.Settings.Global; import android.telephony.PhoneStateListener; +import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import androidx.lifecycle.LifecycleOwner; @@ -46,7 +47,6 @@ import com.android.settingslib.RestrictedPreference; import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -63,6 +63,8 @@ public class MobileNetworkPreferenceControllerTest { @Mock private TelephonyManager mTelephonyManager; @Mock + private SubscriptionManager mSubscriptionManager; + @Mock private PreferenceScreen mScreen; private Lifecycle mLifecycle; @@ -77,6 +79,7 @@ public class MobileNetworkPreferenceControllerTest { mLifecycleOwner = () -> mLifecycle; mLifecycle = new Lifecycle(mLifecycleOwner); when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager); + when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); mPreference = new Preference(mContext); mPreference.setKey(MobileNetworkPreferenceController.KEY_MOBILE_NETWORK_SETTINGS); } @@ -121,7 +124,6 @@ public class MobileNetworkPreferenceControllerTest { } @Test - @Ignore public void serviceStateChange_shouldUpdatePrefSummary() { final String testCarrierName = "test"; final Preference mPreference = mock(Preference.class); @@ -138,8 +140,8 @@ public class MobileNetworkPreferenceControllerTest { verify(mTelephonyManager).listen(mController.mPhoneStateListener, PhoneStateListener.LISTEN_SERVICE_STATE); - // Trigger listener update - when(mTelephonyManager.getNetworkOperatorName()).thenReturn(testCarrierName); + doReturn(testCarrierName).when(mController).getSummary(); + mController.mPhoneStateListener.onServiceStateChanged(null); // Carrier name should be set. @@ -147,7 +149,6 @@ public class MobileNetworkPreferenceControllerTest { } @Test - @Ignore public void airplaneModeTurnedOn_shouldDisablePreference() { Settings.Global.putInt(mContext.getContentResolver(), Global.AIRPLANE_MODE_ON, 1); @@ -158,7 +159,6 @@ public class MobileNetworkPreferenceControllerTest { } @Test - @Ignore public void airplaneModeTurnedOffAndNoUserRestriction_shouldEnablePreference() { Settings.Global.putInt(mContext.getContentResolver(), Global.AIRPLANE_MODE_ON, 0); @@ -170,7 +170,6 @@ public class MobileNetworkPreferenceControllerTest { } @Test - @Ignore public void airplaneModeTurnedOffAndHasUserRestriction_shouldDisablePreference() { Settings.Global.putInt(mContext.getContentResolver(), Global.AIRPLANE_MODE_ON, 0);