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");
}
}