Remove parameter from uri when get slice
Slice may added parameter in their uri. When get slice through uri, removed parameter from uri to get correct slice. Bug: 128651940 Test: make -j42 RunSettingsRoboTests Change-Id: Id3cb7b91026384ce4e22c157a2908a5e18bc7993
This commit is contained in:
@@ -322,7 +322,7 @@ public class CustomSliceRegistry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Class<? extends CustomSliceable> getSliceClassByUri(Uri uri) {
|
public static Class<? extends CustomSliceable> getSliceClassByUri(Uri uri) {
|
||||||
return sUriToSlice.get(uri);
|
return sUriToSlice.get(removeParameterFromUri(uri));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Uri removeParameterFromUri(Uri uri) {
|
public static Uri removeParameterFromUri(Uri uri) {
|
||||||
|
@@ -37,6 +37,9 @@ import org.robolectric.RuntimeEnvironment;
|
|||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
public class SpecialCaseSliceManagerTest {
|
public class SpecialCaseSliceManagerTest {
|
||||||
|
|
||||||
|
private final String FAKE_PARAMETER_KEY = "fake_parameter_key";
|
||||||
|
private final String FAKE_PARAMETER_VALUE = "fake_value";
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
@@ -54,6 +57,20 @@ public class SpecialCaseSliceManagerTest {
|
|||||||
assertThat(sliceable).isInstanceOf(FakeSliceable.class);
|
assertThat(sliceable).isInstanceOf(FakeSliceable.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getSliceableFromUriWithParameter_returnsCorrectObject() {
|
||||||
|
final Uri parameterUri = FakeSliceable.URI
|
||||||
|
.buildUpon()
|
||||||
|
.clearQuery()
|
||||||
|
.appendQueryParameter(FAKE_PARAMETER_KEY, FAKE_PARAMETER_VALUE)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
final CustomSliceable sliceable = CustomSliceable.createInstance(
|
||||||
|
mContext, CustomSliceRegistry.getSliceClassByUri(parameterUri));
|
||||||
|
|
||||||
|
assertThat(sliceable).isInstanceOf(FakeSliceable.class);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void isValidUri_validUri_returnsTrue() {
|
public void isValidUri_validUri_returnsTrue() {
|
||||||
final boolean isValidUri = CustomSliceRegistry.isValidUri(FakeSliceable.URI);
|
final boolean isValidUri = CustomSliceRegistry.isValidUri(FakeSliceable.URI);
|
||||||
|
Reference in New Issue
Block a user