Merge "[Settings] Improve PremiumSMS's auto test" into tm-qpr-dev

This commit is contained in:
Bonian Chen
2022-11-11 09:35:42 +00:00
committed by Android (Google) Code Review
3 changed files with 33 additions and 0 deletions

View File

@@ -97,6 +97,7 @@
android:key="premium_sms" android:key="premium_sms"
android:title="@string/premium_sms_access" android:title="@string/premium_sms_access"
android:fragment="com.android.settings.applications.specialaccess.premiumsms.PremiumSmsAccess" 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" /> settings:controller="com.android.settings.applications.specialaccess.premiumsms.PremiumSmsController" />
<Preference <Preference

View File

@@ -21,8 +21,12 @@ import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.content.res.Resources;
import com.android.settings.R;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -36,23 +40,35 @@ import org.robolectric.annotation.Config;
public class PremiumSmsControllerTest { public class PremiumSmsControllerTest {
private Context mContext; private Context mContext;
private Resources mResources;
private PremiumSmsController mController; private PremiumSmsController mController;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application.getApplicationContext()); mContext = spy(RuntimeEnvironment.application.getApplicationContext());
mResources = spy(mContext.getResources());
when(mContext.getResources()).thenReturn(mResources);
mController = new PremiumSmsController(mContext, "key"); mController = new PremiumSmsController(mContext, "key");
} }
@Test @Test
public void getAvailability_byDefault_shouldBeShown() { public void getAvailability_byDefault_shouldBeShown() {
when(mResources.getBoolean(R.bool.config_show_premium_sms)).thenReturn(true);
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
} }
@Test @Test
@Config(qualifiers = "mcc999") @Config(qualifiers = "mcc999")
public void getAvailability_disabledByCarrier_returnUnavailable() {
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void getAvailability_disabled_returnUnavailable() { public void getAvailability_disabled_returnUnavailable() {
when(mResources.getBoolean(R.bool.config_show_premium_sms)).thenReturn(false);
assertThat(mController.isAvailable()).isFalse(); assertThat(mController.isAvailable()).isFalse();
} }
} }

View File

@@ -21,8 +21,12 @@ import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.content.res.Resources;
import com.android.settings.R;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -36,23 +40,35 @@ import org.robolectric.annotation.Config;
public class PremiumSmsScreenPreferenceControllerTest { public class PremiumSmsScreenPreferenceControllerTest {
private Context mContext; private Context mContext;
private Resources mResources;
private PremiumSmsScreenPreferenceController mController; private PremiumSmsScreenPreferenceController mController;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application.getApplicationContext()); mContext = spy(RuntimeEnvironment.application.getApplicationContext());
mResources = spy(mContext.getResources());
when(mContext.getResources()).thenReturn(mResources);
mController = new PremiumSmsScreenPreferenceController(mContext, "key"); mController = new PremiumSmsScreenPreferenceController(mContext, "key");
} }
@Test @Test
public void getAvailability_byDefault_shouldBeShown() { public void getAvailability_byDefault_shouldBeShown() {
when(mResources.getBoolean(R.bool.config_show_premium_sms)).thenReturn(true);
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
} }
@Test @Test
@Config(qualifiers = "mcc999") @Config(qualifiers = "mcc999")
public void getAvailability_disabledByCarrier_returnUnavailable() {
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void getAvailability_disabled_returnUnavailable() { public void getAvailability_disabled_returnUnavailable() {
when(mResources.getBoolean(R.bool.config_show_premium_sms)).thenReturn(false);
assertThat(mController.isAvailable()).isFalse(); assertThat(mController.isAvailable()).isFalse();
} }
} }