Merge "Remove parameter from uri when get slice"

This commit is contained in:
TreeHugger Robot
2019-03-15 16:19:14 +00:00
committed by Android (Google) Code Review
2 changed files with 18 additions and 1 deletions

View File

@@ -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) {

View File

@@ -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);