blob: cbd68c0471203e62c254a9c392292e66f1944b9b [file] [log] [blame]
package com.android.settings.search;
import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE;
import static com.google.common.truth.Truth.assertThat;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.provider.Settings;
import com.android.settings.search.ResultPayload.SettingsSource;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
@RunWith(SettingsRobolectricTestRunner.class)
public class InlinePayloadTest {
private static final String KEY = "key";
private Context mContext;
@Before
public void setUp() {
mContext = RuntimeEnvironment.application;
}
@Test
public void testGetSecure_returnsSecureSetting() {
InlinePayload payload = getDummyPayload(SettingsSource.SECURE);
int currentValue = 2;
Settings.Secure.putInt(mContext.getContentResolver(), KEY, currentValue);
int newValue = payload.getValue(mContext);
assertThat(newValue).isEqualTo(currentValue);
}
@Test
public void testGetGlobal_returnsGlobalSetting() {
InlinePayload payload = getDummyPayload(SettingsSource.GLOBAL);
int currentValue = 2;
Settings.Global.putInt(mContext.getContentResolver(), KEY, currentValue);
int newValue = payload.getValue(mContext);
assertThat(newValue).isEqualTo(currentValue);
}
@Test
public void testGetSystem_returnsSystemSetting() {
InlinePayload payload = getDummyPayload(SettingsSource.SYSTEM);
int currentValue = 2;
Settings.System.putInt(mContext.getContentResolver(), KEY, currentValue);
int newValue = payload.getValue(mContext);
assertThat(newValue).isEqualTo(currentValue);
}
@Test
public void testSetSecure_updatesSecureSetting() {
InlinePayload payload = getDummyPayload(SettingsSource.SECURE);
int newValue = 1;
ContentResolver resolver = mContext.getContentResolver();
Settings.Secure.putInt(resolver, KEY, 0);
payload.setValue(mContext, newValue);
int updatedValue = Settings.System.getInt(resolver, KEY, -1);
assertThat(updatedValue).isEqualTo(newValue);
}
@Test
public void testSetGlobal_updatesGlobalSetting() {
InlinePayload payload = getDummyPayload(SettingsSource.GLOBAL);
int newValue = 1;
ContentResolver resolver = mContext.getContentResolver();
Settings.Global.putInt(resolver, KEY, 0);
payload.setValue(mContext, newValue);
int updatedValue = Settings.Global.getInt(resolver, KEY, -1);
assertThat(updatedValue).isEqualTo(newValue);
}
@Test
public void testSetSystem_updatesSystemSetting() {
InlinePayload payload = getDummyPayload(SettingsSource.SECURE);
int newValue = 1;
ContentResolver resolver = mContext.getContentResolver();
Settings.System.putInt(resolver, SCREEN_BRIGHTNESS_MODE, 0);
payload.setValue(mContext, newValue);
int updatedValue = Settings.System.getInt(resolver, KEY, -1);
assertThat(updatedValue).isEqualTo(newValue);
}
private InlinePayload getDummyPayload(int source) {
return new ConcreteInlinePayload(KEY, source, null /* intent */,
true /* isDeviceSupported */);
}
private class ConcreteInlinePayload extends InlinePayload {
private ConcreteInlinePayload(String key, @SettingsSource int source, Intent intent,
boolean isDeviceSupported) {
super(key, source, intent, isDeviceSupported, 0 /* defaultValue */);
}
@Override
public int getType() {
return 0;
}
@Override
protected int standardizeInput(int input) throws IllegalArgumentException {
return input;
}
}
}