Add slice uri to slice index db
And slightly refactored the SliceDataConverter to remove 1 reflection. Bug: 126222433 Test: robotest Change-Id: Ic5782bdd71f5c9cb77879a35de81dc61c01d1912
This commit is contained in:
@@ -163,6 +163,7 @@ public class NfcPreferenceControllerTest {
|
||||
|
||||
assertThat(keys).hasSize(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setChecked_True_nfcShouldEnable() {
|
||||
mNfcController.setChecked(true);
|
||||
@@ -209,7 +210,7 @@ public class NfcPreferenceControllerTest {
|
||||
@Test
|
||||
public void shouldTurnOffNFCInAirplaneMode_airplaneModeRadiosContainsNfc_shouldReturnTrue() {
|
||||
Settings.Global.putString(mContext.getContentResolver(),
|
||||
Settings.Global.AIRPLANE_MODE_RADIOS, Settings.Global.RADIO_NFC);
|
||||
Settings.Global.AIRPLANE_MODE_RADIOS, Settings.Global.RADIO_NFC);
|
||||
|
||||
assertThat(NfcPreferenceController.shouldTurnOffNFCInAirplaneMode(mContext)).isTrue();
|
||||
}
|
||||
@@ -217,7 +218,7 @@ public class NfcPreferenceControllerTest {
|
||||
@Test
|
||||
public void shouldTurnOffNFCInAirplaneMode_airplaneModeRadiosWithoutNfc_shouldReturnFalse() {
|
||||
Settings.Global.putString(mContext.getContentResolver(),
|
||||
Settings.Global.AIRPLANE_MODE_RADIOS, "");
|
||||
Settings.Global.AIRPLANE_MODE_RADIOS, "");
|
||||
|
||||
assertThat(NfcPreferenceController.shouldTurnOffNFCInAirplaneMode(mContext)).isFalse();
|
||||
}
|
||||
@@ -225,7 +226,7 @@ public class NfcPreferenceControllerTest {
|
||||
@Test
|
||||
public void displayPreference_airplaneModeRadiosContainsNfc_shouldCreateAirplaneModeObserver() {
|
||||
Settings.Global.putString(mContext.getContentResolver(),
|
||||
Settings.Global.AIRPLANE_MODE_RADIOS, Settings.Global.RADIO_NFC);
|
||||
Settings.Global.AIRPLANE_MODE_RADIOS, Settings.Global.RADIO_NFC);
|
||||
|
||||
mNfcController.displayPreference(mScreen);
|
||||
|
||||
@@ -235,7 +236,7 @@ public class NfcPreferenceControllerTest {
|
||||
@Test
|
||||
public void displayPreference_nfcToggleableInAirplaneMode_shouldCreateAirplaneModeObserver() {
|
||||
Settings.Global.putString(mContext.getContentResolver(),
|
||||
Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Settings.Global.RADIO_NFC);
|
||||
Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Settings.Global.RADIO_NFC);
|
||||
|
||||
mNfcController.displayPreference(mScreen);
|
||||
|
||||
@@ -245,9 +246,9 @@ public class NfcPreferenceControllerTest {
|
||||
@Test
|
||||
public void displayPreference_nfcNotAffectByAirplaneMode_shouldNotCreateAirplaneModeObserver() {
|
||||
Settings.Global.putString(mContext.getContentResolver(),
|
||||
Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, "");
|
||||
Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, "");
|
||||
Settings.Global.putString(mContext.getContentResolver(),
|
||||
Settings.Global.AIRPLANE_MODE_RADIOS, "");
|
||||
Settings.Global.AIRPLANE_MODE_RADIOS, "");
|
||||
|
||||
mNfcController.displayPreference(mScreen);
|
||||
|
||||
@@ -256,7 +257,8 @@ public class NfcPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void ncfSliceWorker_nfcBroadcast_noExtra_sliceDoesntUpdate() {
|
||||
final NfcSliceWorker worker = spy(new NfcSliceWorker(mContext, getDummyUri()));
|
||||
final NfcSliceWorker worker = spy(
|
||||
new NfcSliceWorker(mContext, mNfcController.getSliceUri()));
|
||||
final NfcUpdateReceiver receiver = worker.new NfcUpdateReceiver(worker);
|
||||
final Intent triggerIntent = new Intent(NfcAdapter.ACTION_ADAPTER_STATE_CHANGED);
|
||||
|
||||
@@ -267,7 +269,8 @@ public class NfcPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void ncfSliceWorker_nfcBroadcast_turningOn_sliceDoesntUpdate() {
|
||||
final NfcSliceWorker worker = spy(new NfcSliceWorker(mContext, getDummyUri()));
|
||||
final NfcSliceWorker worker = spy(
|
||||
new NfcSliceWorker(mContext, mNfcController.getSliceUri()));
|
||||
final NfcUpdateReceiver receiver = worker.new NfcUpdateReceiver(worker);
|
||||
final Intent triggerIntent = new Intent(NfcAdapter.ACTION_ADAPTER_STATE_CHANGED);
|
||||
triggerIntent.putExtra(NfcAdapter.EXTRA_ADAPTER_STATE, NfcAdapter.STATE_TURNING_ON);
|
||||
@@ -279,7 +282,8 @@ public class NfcPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void ncfSliceWorker_nfcBroadcast_turningOff_sliceDoesntUpdate() {
|
||||
final NfcSliceWorker worker = spy(new NfcSliceWorker(mContext, getDummyUri()));
|
||||
final NfcSliceWorker worker = spy(
|
||||
new NfcSliceWorker(mContext, mNfcController.getSliceUri()));
|
||||
final NfcUpdateReceiver receiver = worker.new NfcUpdateReceiver(worker);
|
||||
final Intent triggerIntent = new Intent(NfcAdapter.ACTION_ADAPTER_STATE_CHANGED);
|
||||
triggerIntent.putExtra(NfcAdapter.EXTRA_ADAPTER_STATE, NfcAdapter.STATE_TURNING_OFF);
|
||||
@@ -291,7 +295,8 @@ public class NfcPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void ncfSliceWorker_nfcBroadcast_nfcOn_sliceUpdates() {
|
||||
final NfcSliceWorker worker = spy(new NfcSliceWorker(mContext, getDummyUri()));
|
||||
final NfcSliceWorker worker = spy(
|
||||
new NfcSliceWorker(mContext, mNfcController.getSliceUri()));
|
||||
final NfcUpdateReceiver receiver = worker.new NfcUpdateReceiver(worker);
|
||||
final Intent triggerIntent = new Intent(NfcAdapter.ACTION_ADAPTER_STATE_CHANGED);
|
||||
triggerIntent.putExtra(NfcAdapter.EXTRA_ADAPTER_STATE, NfcAdapter.STATE_ON);
|
||||
@@ -303,7 +308,8 @@ public class NfcPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void ncfSliceWorker_nfcBroadcast_nfcOff_sliceUpdates() {
|
||||
final NfcSliceWorker worker = spy(new NfcSliceWorker(mContext, getDummyUri()));
|
||||
final NfcSliceWorker worker = spy(
|
||||
new NfcSliceWorker(mContext, mNfcController.getSliceUri()));
|
||||
final NfcUpdateReceiver receiver = worker.new NfcUpdateReceiver(worker);
|
||||
final Intent triggerIntent = new Intent(NfcAdapter.ACTION_ADAPTER_STATE_CHANGED);
|
||||
triggerIntent.putExtra(NfcAdapter.EXTRA_ADAPTER_STATE, NfcAdapter.STATE_OFF);
|
||||
@@ -312,8 +318,4 @@ public class NfcPreferenceControllerTest {
|
||||
|
||||
verify(worker).updateSlice();
|
||||
}
|
||||
|
||||
private Uri getDummyUri() {
|
||||
return SliceBuilderUtils.getUri("action/nfc", false);
|
||||
}
|
||||
}
|
||||
|
@@ -96,8 +96,18 @@ import java.util.Set;
|
||||
public class SettingsSliceProviderTest {
|
||||
|
||||
private static final String KEY = "KEY";
|
||||
private static final String INTENT_PATH =
|
||||
SettingsSlicesContract.PATH_SETTING_INTENT + "/" + KEY;
|
||||
private static final Uri INTENT_SLICE_URI =
|
||||
new Uri.Builder().scheme(SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(SettingsSlicesContract.PATH_SETTING_INTENT)
|
||||
.appendPath(KEY)
|
||||
.build();
|
||||
private static final Uri ACTION_SLICE_URI =
|
||||
new Uri.Builder().scheme(SCHEME_CONTENT)
|
||||
.authority(SettingsSlicesContract.AUTHORITY)
|
||||
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
|
||||
.appendPath(KEY)
|
||||
.build();
|
||||
private static final String TITLE = "title";
|
||||
private static final String SUMMARY = "summary";
|
||||
private static final String SCREEN_TITLE = "screen title";
|
||||
@@ -155,20 +165,18 @@ public class SettingsSliceProviderTest {
|
||||
@Test
|
||||
public void testInitialSliceReturned_emptySlice() {
|
||||
insertSpecialCase(KEY);
|
||||
final Uri uri = SliceBuilderUtils.getUri(INTENT_PATH, false);
|
||||
Slice slice = mProvider.onBindSlice(uri);
|
||||
Slice slice = mProvider.onBindSlice(INTENT_SLICE_URI);
|
||||
|
||||
assertThat(slice.getUri()).isEqualTo(uri);
|
||||
assertThat(slice.getUri()).isEqualTo(INTENT_SLICE_URI);
|
||||
assertThat(slice.getItems()).isEmpty();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLoadSlice_returnsSliceFromAccessor() {
|
||||
insertSpecialCase(KEY);
|
||||
final Uri uri = SliceBuilderUtils.getUri(INTENT_PATH, false);
|
||||
|
||||
mProvider.loadSlice(uri);
|
||||
SliceData data = mProvider.mSliceWeakDataCache.get(uri);
|
||||
mProvider.loadSlice(INTENT_SLICE_URI);
|
||||
SliceData data = mProvider.mSliceWeakDataCache.get(INTENT_SLICE_URI);
|
||||
|
||||
assertThat(data.getKey()).isEqualTo(KEY);
|
||||
assertThat(data.getTitle()).isEqualTo(TITLE);
|
||||
@@ -177,24 +185,23 @@ public class SettingsSliceProviderTest {
|
||||
@Test
|
||||
public void loadSlice_registersIntentFilter() {
|
||||
insertSpecialCase(KEY);
|
||||
final Uri uri = SliceBuilderUtils.getUri(INTENT_PATH, false);
|
||||
|
||||
mProvider.loadSlice(uri);
|
||||
mProvider.loadSlice(INTENT_SLICE_URI);
|
||||
|
||||
verify(mProvider).registerIntentToUri(eq(FakeToggleController.INTENT_FILTER), eq(uri));
|
||||
verify(mProvider)
|
||||
.registerIntentToUri(eq(FakeToggleController.INTENT_FILTER), eq(INTENT_SLICE_URI));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void loadSlice_registersBackgroundListener() {
|
||||
insertSpecialCase(KEY);
|
||||
final Uri uri = SliceBuilderUtils.getUri(INTENT_PATH, false);
|
||||
|
||||
mProvider.loadSlice(uri);
|
||||
mProvider.loadSlice(INTENT_SLICE_URI);
|
||||
|
||||
Robolectric.flushForegroundThreadScheduler();
|
||||
Robolectric.flushBackgroundThreadScheduler();
|
||||
|
||||
assertThat(mProvider.mPinnedWorkers.get(uri).getClass())
|
||||
assertThat(mProvider.mPinnedWorkers.get(INTENT_SLICE_URI).getClass())
|
||||
.isEqualTo(FakeToggleController.TestWorker.class);
|
||||
}
|
||||
|
||||
@@ -255,27 +262,26 @@ public class SettingsSliceProviderTest {
|
||||
|
||||
@Test
|
||||
public void getDescendantUris_fullActionUri_returnsSelf() {
|
||||
final Uri uri = SliceBuilderUtils.getUri(
|
||||
SettingsSlicesContract.PATH_SETTING_ACTION + "/key", true);
|
||||
final Collection<Uri> descendants = mProvider.onGetSliceDescendants(ACTION_SLICE_URI);
|
||||
|
||||
final Collection<Uri> descendants = mProvider.onGetSliceDescendants(uri);
|
||||
|
||||
assertThat(descendants).containsExactly(uri);
|
||||
assertThat(descendants).containsExactly(ACTION_SLICE_URI);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDescendantUris_fullIntentUri_returnsSelf() {
|
||||
final Uri uri = SliceBuilderUtils.getUri(
|
||||
SettingsSlicesContract.PATH_SETTING_ACTION + "/key", true);
|
||||
|
||||
final Collection<Uri> descendants = mProvider.onGetSliceDescendants(uri);
|
||||
final Collection<Uri> descendants = mProvider.onGetSliceDescendants(ACTION_SLICE_URI);
|
||||
|
||||
assertThat(descendants).containsExactly(uri);
|
||||
assertThat(descendants).containsExactly(ACTION_SLICE_URI);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDescendantUris_wrongPath_returnsEmpty() {
|
||||
final Uri uri = SliceBuilderUtils.getUri("invalid_path", true);
|
||||
final Uri uri = new Uri.Builder()
|
||||
.scheme(SCHEME_CONTENT)
|
||||
.authority(SettingsSlicesContract.AUTHORITY)
|
||||
.appendPath("invalid_path")
|
||||
.build();
|
||||
|
||||
final Collection<Uri> descendants = mProvider.onGetSliceDescendants(uri);
|
||||
|
||||
|
@@ -136,58 +136,6 @@ public class SliceBuilderUtilsTest {
|
||||
SliceTester.testSettingsCopyableSlice(mContext, slice, dummyData);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUriBuilder_oemAuthority_intentPath_returnsValidSliceUri() {
|
||||
final Uri expectedUri = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(INTENT_PATH)
|
||||
.build();
|
||||
|
||||
final Uri actualUri = SliceBuilderUtils.getUri(INTENT_PATH, false);
|
||||
|
||||
assertThat(actualUri).isEqualTo(expectedUri);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUriBuilder_oemAuthority_actionPath_returnsValidSliceUri() {
|
||||
final Uri expectedUri = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(ACTION_PATH)
|
||||
.build();
|
||||
|
||||
final Uri actualUri = SliceBuilderUtils.getUri(ACTION_PATH, false);
|
||||
|
||||
assertThat(actualUri).isEqualTo(expectedUri);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUriBuilder_platformAuthority_intentPath_returnsValidSliceUri() {
|
||||
final Uri expectedUri = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSlicesContract.AUTHORITY)
|
||||
.appendPath(ACTION_PATH)
|
||||
.build();
|
||||
|
||||
final Uri actualUri = SliceBuilderUtils.getUri(ACTION_PATH, true);
|
||||
|
||||
assertThat(actualUri).isEqualTo(expectedUri);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUriBuilder_platformAuthority_actionPath_returnsValidSliceUri() {
|
||||
final Uri expectedUri = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSlicesContract.AUTHORITY)
|
||||
.appendPath(ACTION_PATH)
|
||||
.build();
|
||||
|
||||
final Uri actualUri = SliceBuilderUtils.getUri(ACTION_PATH, true);
|
||||
|
||||
assertThat(actualUri).isEqualTo(expectedUri);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetPreferenceController_buildsMatchingController() {
|
||||
final BasePreferenceController controller =
|
||||
|
@@ -119,7 +119,8 @@ public class SliceDataConverterTest {
|
||||
assertThat(fakeSlice.getScreenTitle()).isEqualTo(FAKE_SCREEN_TITLE);
|
||||
assertThat(fakeSlice.getKeywords()).isNull();
|
||||
assertThat(fakeSlice.getIconResource()).isNotNull();
|
||||
assertThat(fakeSlice.getUri()).isNull();
|
||||
assertThat(fakeSlice.getUri().toSafeString())
|
||||
.isEqualTo("content://com.android.settings.slices/action/key");
|
||||
assertThat(fakeSlice.getFragmentClassName()).isEqualTo(FAKE_FRAGMENT_CLASSNAME);
|
||||
assertThat(fakeSlice.getPreferenceController()).isEqualTo(FAKE_CONTROLLER_NAME);
|
||||
assertThat(fakeSlice.getSliceType()).isEqualTo(SliceData.SliceType.SLIDER);
|
||||
@@ -135,7 +136,7 @@ public class SliceDataConverterTest {
|
||||
assertThat(fakeSlice.getScreenTitle()).isEqualTo(
|
||||
mContext.getString(R.string.accessibility_settings));
|
||||
assertThat(fakeSlice.getIconResource()).isEqualTo(FAKE_ICON);
|
||||
assertThat(fakeSlice.getUri()).isNull();
|
||||
assertThat(fakeSlice.getUri()).isNotNull();
|
||||
assertThat(fakeSlice.getFragmentClassName()).isEqualTo(ACCESSIBILITY_FRAGMENT);
|
||||
assertThat(fakeSlice.getPreferenceController()).isEqualTo(A11Y_CONTROLLER_NAME);
|
||||
}
|
||||
|
@@ -23,6 +23,7 @@ import static org.mockito.Mockito.spy;
|
||||
|
||||
import android.app.ApplicationPackageManager;
|
||||
import android.content.ComponentName;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.ContentValues;
|
||||
import android.content.Context;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
@@ -139,10 +140,15 @@ public class SlicesDatabaseAccessorTest {
|
||||
|
||||
@Test
|
||||
public void testGetSliceFromUri_validUri_validSliceReturned() {
|
||||
String key = "key";
|
||||
String path = "intent/" + key;
|
||||
final String key = "key";
|
||||
insertSpecialCase(key);
|
||||
Uri uri = SliceBuilderUtils.getUri(path, false);
|
||||
|
||||
final Uri uri = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath("action")
|
||||
.appendPath(key)
|
||||
.build();
|
||||
|
||||
SliceData data = mAccessor.getSliceDataFromUri(uri);
|
||||
|
||||
@@ -159,7 +165,12 @@ public class SlicesDatabaseAccessorTest {
|
||||
|
||||
@Test(expected = IllegalStateException.class)
|
||||
public void testGetSliceFromUri_invalidUri_errorThrown() {
|
||||
Uri uri = SliceBuilderUtils.getUri("intent/durr", false);
|
||||
final Uri uri = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath("intent")
|
||||
.appendPath("durr")
|
||||
.build();
|
||||
mAccessor.getSliceDataFromUri(uri);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user