From 40cd64ab19372d40198ff3c1bc99f013cceadf8b Mon Sep 17 00:00:00 2001 From: ibaker Date: Mon, 21 Oct 2024 05:46:55 -0700 Subject: [PATCH] Test `ResolvingDataSource` `resolveReportedUri` functionality PiperOrigin-RevId: 688102934 --- .../ResolvingDataSourceContractTest.java | 41 ++++++++++++++++--- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/libraries/datasource/src/test/java/androidx/media3/datasource/ResolvingDataSourceContractTest.java b/libraries/datasource/src/test/java/androidx/media3/datasource/ResolvingDataSourceContractTest.java index 081496c4c6..35b1a1dfee 100644 --- a/libraries/datasource/src/test/java/androidx/media3/datasource/ResolvingDataSourceContractTest.java +++ b/libraries/datasource/src/test/java/androidx/media3/datasource/ResolvingDataSourceContractTest.java @@ -32,17 +32,28 @@ import org.junit.runner.RunWith; @RunWith(AndroidJUnit4.class) public class ResolvingDataSourceContractTest extends DataSourceContractTest { - private static final String URI = "test://simple.test"; + private static final String REQUESTED_URI = "test://simple.test"; private static final String RESOLVED_URI = "resolved://simple.resolved"; + private static final String REQUESTED_URI_WITH_DIFFERENT_REPORTED = + "test://different.report.test"; + private static final String RESOLVED_URI_WITH_DIFFERENT_REPORTED = + "resolved://different.report.test"; + private static final String REPORTED_URI = "reported://reported.test"; + private byte[] simpleData; + private byte[] differentReportedData; private FakeDataSet fakeDataSet; private FakeDataSource fakeDataSource; @Before public void setUp() { simpleData = TestUtil.buildTestData(/* length= */ 20); - fakeDataSet = new FakeDataSet().newData(RESOLVED_URI).appendReadData(simpleData).endData(); + differentReportedData = TestUtil.buildTestData(/* length= */ 15); + fakeDataSet = + new FakeDataSet() + .setData(RESOLVED_URI, simpleData) + .setData(RESOLVED_URI_WITH_DIFFERENT_REPORTED, differentReportedData); } @Override @@ -50,9 +61,15 @@ public class ResolvingDataSourceContractTest extends DataSourceContractTest { return ImmutableList.of( new TestResource.Builder() .setName("simple") - .setUri(URI) + .setUri(REQUESTED_URI) .setResolvedUri(RESOLVED_URI) .setExpectedBytes(simpleData) + .build(), + new TestResource.Builder() + .setName("different-reported") + .setUri(REQUESTED_URI_WITH_DIFFERENT_REPORTED) + .setResolvedUri(REPORTED_URI) + .setExpectedBytes(differentReportedData) .build()); } @@ -69,9 +86,21 @@ public class ResolvingDataSourceContractTest extends DataSourceContractTest { new Resolver() { @Override public DataSpec resolveDataSpec(DataSpec dataSpec) throws IOException { - return URI.equals(dataSpec.uri.normalizeScheme().toString()) - ? dataSpec.buildUpon().setUri(RESOLVED_URI).build() - : dataSpec; + switch (dataSpec.uri.normalizeScheme().toString()) { + case REQUESTED_URI: + return dataSpec.buildUpon().setUri(RESOLVED_URI).build(); + case REQUESTED_URI_WITH_DIFFERENT_REPORTED: + return dataSpec.buildUpon().setUri(RESOLVED_URI_WITH_DIFFERENT_REPORTED).build(); + default: + return dataSpec; + } + } + + @Override + public Uri resolveReportedUri(Uri uri) { + return uri.normalizeScheme().toString().equals(RESOLVED_URI_WITH_DIFFERENT_REPORTED) + ? Uri.parse(REPORTED_URI) + : uri; } }); }