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) {
|
||||
return sUriToSlice.get(uri);
|
||||
return sUriToSlice.get(removeParameterFromUri(uri));
|
||||
}
|
||||
|
||||
public static Uri removeParameterFromUri(Uri uri) {
|
||||
|
@@ -37,6 +37,9 @@ import org.robolectric.RuntimeEnvironment;
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class SpecialCaseSliceManagerTest {
|
||||
|
||||
private final String FAKE_PARAMETER_KEY = "fake_parameter_key";
|
||||
private final String FAKE_PARAMETER_VALUE = "fake_value";
|
||||
|
||||
private Context mContext;
|
||||
|
||||
@Before
|
||||
@@ -54,6 +57,20 @@ public class SpecialCaseSliceManagerTest {
|
||||
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
|
||||
public void isValidUri_validUri_returnsTrue() {
|
||||
final boolean isValidUri = CustomSliceRegistry.isValidUri(FakeSliceable.URI);
|
||||
|
Reference in New Issue
Block a user