package org.robolectric.shadows; import android.content.res.Configuration; import android.os.Build; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RuntimeEnvironment; import org.robolectric.Shadows; import org.robolectric.TestRunners; import org.robolectric.annotation.Config; import java.util.Locale; import static android.content.res.Configuration.SCREENLAYOUT_UNDEFINED; import static org.assertj.core.api.Assertions.assertThat; @RunWith(TestRunners.MultiApiSelfTest.class) public class ShadowConfigurationTest { private Configuration configuration; @Before public void setUp() throws Exception { configuration = new Configuration(); } @Test public void setToDefaultsShouldSetRealDefaults() { configuration.setToDefaults(); assertThat(configuration.fontScale).isEqualTo(1); assertThat(configuration.screenLayout).isEqualTo(SCREENLAYOUT_UNDEFINED); } @Test @Config(minSdk = Build.VERSION_CODES.JELLY_BEAN_MR1) public void testSetLocale() { configuration.setLocale( Locale.US ); assertThat(configuration.locale).isEqualTo(Locale.US); configuration.setLocale( Locale.FRANCE); assertThat(configuration.locale).isEqualTo(Locale.FRANCE); } @Test public void testConstructCopy() { configuration.setToDefaults(); Configuration clone = new Configuration(configuration); assertThat(configuration).isEqualTo(clone); } @Test public void testToString_shouldntExplode() throws Exception { assertThat(new Configuration().toString()).contains("mcc"); } }