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

Commit b4511365 authored by Bonian Chen's avatar Bonian Chen
Browse files

[Settings] Improve PremiumSMS's auto test

Fix PremiumSMS's test case when config_show_premium_sms is false.

Bug: 240515161
Test: test cases and local testing
Change-Id: I3f1710bcf2c123553af7646c030bfe87f569324a
parent 57cb7642
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -97,6 +97,7 @@
        android:key="premium_sms"
        android:title="@string/premium_sms_access"
        android:fragment="com.android.settings.applications.specialaccess.premiumsms.PremiumSmsAccess"
        settings:isPreferenceVisible="@bool/config_show_premium_sms"
        settings:controller="com.android.settings.applications.specialaccess.premiumsms.PremiumSmsController" />

    <Preference
+16 −0
Original line number Diff line number Diff line
@@ -21,8 +21,12 @@ import static com.android.settings.core.BasePreferenceController.AVAILABLE;
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.content.res.Resources;

import com.android.settings.R;

import org.junit.Before;
import org.junit.Test;
@@ -36,23 +40,35 @@ import org.robolectric.annotation.Config;
public class PremiumSmsControllerTest {

    private Context mContext;
    private Resources mResources;
    private PremiumSmsController mController;

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

        mResources = spy(mContext.getResources());
        when(mContext.getResources()).thenReturn(mResources);

        mController = new PremiumSmsController(mContext, "key");
    }

    @Test
    public void getAvailability_byDefault_shouldBeShown() {
        when(mResources.getBoolean(R.bool.config_show_premium_sms)).thenReturn(true);
        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
    }

    @Test
    @Config(qualifiers = "mcc999")
    public void getAvailability_disabledByCarrier_returnUnavailable() {
        assertThat(mController.isAvailable()).isFalse();
    }

    @Test
    public void getAvailability_disabled_returnUnavailable() {
        when(mResources.getBoolean(R.bool.config_show_premium_sms)).thenReturn(false);
        assertThat(mController.isAvailable()).isFalse();
    }
}
+16 −0
Original line number Diff line number Diff line
@@ -21,8 +21,12 @@ import static com.android.settings.core.BasePreferenceController.AVAILABLE;
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.content.res.Resources;

import com.android.settings.R;

import org.junit.Before;
import org.junit.Test;
@@ -36,23 +40,35 @@ import org.robolectric.annotation.Config;
public class PremiumSmsScreenPreferenceControllerTest {

    private Context mContext;
    private Resources mResources;
    private PremiumSmsScreenPreferenceController mController;

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

        mResources = spy(mContext.getResources());
        when(mContext.getResources()).thenReturn(mResources);

        mController = new PremiumSmsScreenPreferenceController(mContext, "key");
    }

    @Test
    public void getAvailability_byDefault_shouldBeShown() {
        when(mResources.getBoolean(R.bool.config_show_premium_sms)).thenReturn(true);
        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
    }

    @Test
    @Config(qualifiers = "mcc999")
    public void getAvailability_disabledByCarrier_returnUnavailable() {
        assertThat(mController.isAvailable()).isFalse();
    }

    @Test
    public void getAvailability_disabled_returnUnavailable() {
        when(mResources.getBoolean(R.bool.config_show_premium_sms)).thenReturn(false);
        assertThat(mController.isAvailable()).isFalse();
    }
}