Run CronetDataSource contract test for all Cronet providers

The data source may behave differently, depending on the provider,
so we can extend the contract test to check all available providers.

PiperOrigin-RevId: 658457650
This commit is contained in:
tonihei 2024-08-01 10:46:47 -07:00 committed by Copybara-Service
parent a98a37aa75
commit 56c419c1b3

View File

@ -15,10 +15,7 @@
*/
package androidx.media3.datasource.cronet;
import static com.google.common.truth.Truth.assertThat;
import android.net.Uri;
import androidx.annotation.Nullable;
import androidx.media3.datasource.DataSource;
import androidx.media3.test.utils.DataSourceContractTest;
import androidx.media3.test.utils.HttpDataSourceTestEnv;
@ -29,6 +26,7 @@ import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import org.chromium.net.CronetEngine;
import org.chromium.net.CronetProvider;
import org.junit.After;
import org.junit.Rule;
import org.junit.runner.RunWith;
@ -47,15 +45,19 @@ public class CronetDataSourceContractTest extends DataSourceContractTest {
@Override
protected List<DataSource> createDataSources() {
@Nullable
CronetEngine cronetEngine =
CronetUtil.buildCronetEngine(
ApplicationProvider.getApplicationContext(),
/* userAgent= */ "test-agent",
/* preferGooglePlayServices= */ false);
assertThat(cronetEngine).isNotNull();
return ImmutableList.of(
new CronetDataSource.Factory(cronetEngine, executorService).createDataSource());
List<CronetProvider> cronetProviders =
CronetProvider.getAllProviders(ApplicationProvider.getApplicationContext());
ImmutableList.Builder<DataSource> dataSources = ImmutableList.builder();
for (int i = 0; i < cronetProviders.size(); i++) {
CronetProvider provider = cronetProviders.get(i);
if (!provider.isEnabled()) {
continue;
}
CronetEngine cronetEngine = provider.createBuilder().setUserAgent("test-agent").build();
dataSources.add(
new CronetDataSource.Factory(cronetEngine, executorService).createDataSource());
}
return dataSources.build();
}
@Override