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

Commit d1d1e433 authored by songferngwang's avatar songferngwang Committed by SongFerng Wang
Browse files

Fixed AutoDataSwitchPreferenceControllerTest

The settings Flag is not assigned value, it cause test cases failed

Bug: 326543866
Test: have tested the v2/android-settings/apps/robolectric_settings_test at https://android-build.corp.google.com/builds/abtd/run/L92300030002155909
The test cases of com.android.settings.network.telephony are all passed.
Change-Id: I5a53fb6de741a7550f03ffca3c519d6b67c7c0fe
parent b3646a49
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -30,12 +30,19 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.platform.test.annotations.RequiresFlagsDisabled;
import android.platform.test.annotations.RequiresFlagsEnabled;
import android.platform.test.flag.junit.CheckFlagsRule;
import android.platform.test.flag.junit.DeviceFlagsValueProvider;
import android.telephony.TelephonyManager;

import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;

import com.android.settings.flags.Flags;

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -52,6 +59,9 @@ public class AutoDataSwitchPreferenceControllerTest {
    private static final int SUB_ID_1 = 111;
    private static final int SUB_ID_2 = 222;

    @Rule
    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();

    @Mock
    private TelephonyManager mTelephonyManager;
    @Mock
@@ -79,6 +89,7 @@ public class AutoDataSwitchPreferenceControllerTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_IS_DUAL_SIM_ONBOARDING_ENABLED)
    public void getAvailabilityStatus_noInit_notAvailable() {
        ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUB_ID_1);
        AutoDataSwitchPreferenceController controller =
@@ -90,6 +101,7 @@ public class AutoDataSwitchPreferenceControllerTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_IS_DUAL_SIM_ONBOARDING_ENABLED)
    public void displayPreference_defaultForData_notAvailable() {
        ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUB_ID_1);

@@ -100,6 +112,7 @@ public class AutoDataSwitchPreferenceControllerTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_IS_DUAL_SIM_ONBOARDING_ENABLED)
    public void  displayPreference_notDefaultForData_available() {
        ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUB_ID_2);

@@ -110,6 +123,7 @@ public class AutoDataSwitchPreferenceControllerTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_IS_DUAL_SIM_ONBOARDING_ENABLED)
    public void onSubscriptionsChanged_becomesDefaultForData_notAvailable() {
        ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUB_ID_2);

@@ -122,6 +136,7 @@ public class AutoDataSwitchPreferenceControllerTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_IS_DUAL_SIM_ONBOARDING_ENABLED)
    public void onSubscriptionsChanged_noLongerDefaultForData_available() {
        ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUB_ID_1);

@@ -134,6 +149,7 @@ public class AutoDataSwitchPreferenceControllerTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_IS_DUAL_SIM_ONBOARDING_ENABLED)
    public void getAvailabilityStatus_mobileDataChangWithDefaultDataSubId_returnUnavailable() {
        ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUB_ID_1);

@@ -144,6 +160,7 @@ public class AutoDataSwitchPreferenceControllerTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_IS_DUAL_SIM_ONBOARDING_ENABLED)
    public void getAvailabilityStatus_mobileDataChangWithoutDefaultDataSubId_returnAvailable() {
        ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUB_ID_1);

@@ -152,4 +169,16 @@ public class AutoDataSwitchPreferenceControllerTest {

        assertThat(mController.getAvailabilityStatus(SUB_ID_2)).isEqualTo(AVAILABLE);
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_IS_DUAL_SIM_ONBOARDING_ENABLED)
    public void getAvailabilityStatus_flagIsDualSimOnboardingEnabledOn_returnUnavailable() {
        ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUB_ID_1);

        mController.displayPreference(mPreferenceScreen);
        mController.refreshPreference();

        assertThat(mController.getAvailabilityStatus(SUB_ID_1))
                .isEqualTo(CONDITIONALLY_UNAVAILABLE);
    }
}