package org.robolectric.shadows; import android.content.ContentResolver; import android.provider.Settings; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RuntimeEnvironment; import org.robolectric.TestRunners; import org.robolectric.annotation.Config; import static android.os.Build.VERSION_CODES.JELLY_BEAN_MR1; import static org.assertj.core.api.Assertions.assertThat; @RunWith(TestRunners.MultiApiSelfTest.class) public class ShadowSettingsTest { private ContentResolver contentResolver; @Before public void setUp() throws Exception { contentResolver = RuntimeEnvironment.application.getContentResolver(); } @Test public void testSystemGetInt() throws Exception { assertThat(Settings.System.getInt(contentResolver, "property", 0)).isEqualTo(0); assertThat(Settings.System.getInt(contentResolver, "property", 2)).isEqualTo(2); Settings.System.putInt(contentResolver, "property", 1); assertThat(Settings.System.getInt(contentResolver, "property", 0)).isEqualTo(1); } @Test public void testSecureGetInt() throws Exception { assertThat(Settings.Secure.getInt(contentResolver, "property", 0)).isEqualTo(0); assertThat(Settings.Secure.getInt(contentResolver, "property", 2)).isEqualTo(2); Settings.Secure.putInt(contentResolver, "property", 1); assertThat(Settings.Secure.getInt(contentResolver, "property", 0)).isEqualTo(1); } @Test @Config(minSdk = JELLY_BEAN_MR1) public void testGlobalGetInt() throws Exception { assertThat(Settings.Global.getInt(contentResolver, "property", 0)).isEqualTo(0); assertThat(Settings.Global.getInt(contentResolver, "property", 2)).isEqualTo(2); Settings.Global.putInt(contentResolver, "property", 1); assertThat(Settings.Global.getInt(contentResolver, "property", 0)).isEqualTo(1); } @Test public void testSystemGetString() throws Exception { assertThat(Settings.System.getString(contentResolver, "property")).isNull(); Settings.System.putString(contentResolver, "property", "value"); assertThat(Settings.System.getString(contentResolver, "property")).isEqualTo("value"); } @Test public void testSystemGetLong() throws Exception { assertThat(Settings.System.getLong(contentResolver, "property", 10L)).isEqualTo(10L); Settings.System.putLong(contentResolver, "property", 42L); assertThat(Settings.System.getLong(contentResolver, "property")).isEqualTo(42L); assertThat(Settings.System.getLong(contentResolver, "property", 10L)).isEqualTo(42L); } @Test public void testSystemGetFloat() throws Exception { assertThat(Settings.System.getFloat(contentResolver, "property", 23.23f)).isEqualTo(23.23f); Settings.System.putFloat(contentResolver, "property", 42.42f); assertThat(Settings.System.getFloat(contentResolver, "property", 10L)).isEqualTo(42.42f); } @Test(expected = Settings.SettingNotFoundException.class) public void testSystemGetLong_exception() throws Exception { Settings.System.getLong(contentResolver, "property"); } @Test(expected = Settings.SettingNotFoundException.class) public void testSystemGetInt_exception() throws Exception { Settings.System.getInt(contentResolver, "property"); } @Test(expected = Settings.SettingNotFoundException.class) public void testSystemGetFloat_exception() throws Exception { Settings.System.getFloat(contentResolver, "property"); } }