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