diff options
Diffstat (limited to 'tests/robotests/src/com/android/tv/data/PreviewDataManagerTest.java')
-rw-r--r-- | tests/robotests/src/com/android/tv/data/PreviewDataManagerTest.java | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/tests/robotests/src/com/android/tv/data/PreviewDataManagerTest.java b/tests/robotests/src/com/android/tv/data/PreviewDataManagerTest.java deleted file mode 100644 index b341abf4..00000000 --- a/tests/robotests/src/com/android/tv/data/PreviewDataManagerTest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.tv.data; - -import static com.google.common.truth.Truth.assertThat; - -import android.content.ContentProvider; -import android.content.ContentValues; -import android.content.pm.ProviderInfo; -import android.database.Cursor; -import android.database.SQLException; -import android.net.Uri; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.util.Log; -import android.util.Pair; - -import androidx.tvprovider.media.tv.PreviewProgram; -import androidx.tvprovider.media.tv.TvContractCompat; - -import com.android.tv.data.api.Channel; -import com.android.tv.data.api.Program; -import com.android.tv.dvr.data.RecordedProgram; -import com.android.tv.testing.TvRobolectricTestRunner; -import com.android.tv.testing.constants.ConfigConstants; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.robolectric.Robolectric; -import org.robolectric.RuntimeEnvironment; -import org.robolectric.annotation.Config; -import org.robolectric.shadows.ShadowContentResolver; -import org.robolectric.shadows.ShadowLog; - -import java.util.List; - -/** Tests for {@link PreviewDataManager}. */ -@RunWith(TvRobolectricTestRunner.class) -@Config(sdk = ConfigConstants.SDK) -public class PreviewDataManagerTest { - private static final long FAKE_PREVIEW_CHANNEL_ID = 2002; - private static final long FAKE_PROGRAM_ID = 1001; - private static final String FAKE_PROGRAM_TITLE = "test program"; - private static final String FAKE_PROGRAM_POSTER_URI = "http://fake.uri/poster.jpg"; - private static final long FAKE_CHANNEL_ID = 1002; - private static final String FAKE_CHANNEL_DISPLAY_NAME = "test channel"; - private static final String FAKE_INPUT_ID = "test input"; - - private static class QueryExceptionProvider extends ContentProvider { - @Override - public boolean onCreate() { - return false; - } - - @Nullable - @Override - public Cursor query( - @NonNull Uri uri, - @Nullable String[] projection, - @Nullable String selection, - @Nullable String[] selectionArgs, - @Nullable String sortOrder) { - throw new SQLException("Testing " + uri); - } - - @Nullable - @Override - public String getType(@NonNull Uri uri) { - return null; - } - - @Nullable - @Override - public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) { - return null; - } - - @Override - public int delete( - @NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) { - return 0; - } - - @Override - public int update( - @NonNull Uri uri, - @Nullable ContentValues values, - @Nullable String selection, - @Nullable String[] selectionArgs) { - return 0; - } - } - - @Test - public void start() { - PreviewDataManager previewDataManager = - new PreviewDataManager(RuntimeEnvironment.application); - assertThat(previewDataManager.isLoadFinished()).isFalse(); - previewDataManager.start(); - assertThat(previewDataManager.isLoadFinished()).isTrue(); - } - - @Test - public void queryPreviewData_sqlexception() { - ProviderInfo info = new ProviderInfo(); - info.authority = TvContractCompat.AUTHORITY; - QueryExceptionProvider provider = - Robolectric.buildContentProvider(QueryExceptionProvider.class).create(info).get(); - ShadowContentResolver.registerProviderInternal(TvContractCompat.AUTHORITY, provider); - - PreviewDataManager previewDataManager = - new PreviewDataManager(RuntimeEnvironment.application); - assertThat(previewDataManager.isLoadFinished()).isFalse(); - previewDataManager.start(); - List<ShadowLog.LogItem> logs = ShadowLog.getLogsForTag("PreviewDataManager"); - // The only warning should be the test one - // NOTE: I am not using hamcrest matchers because of weird class loading issues - // TODO: use truth - for (ShadowLog.LogItem log : logs) { - if (log.type == Log.WARN) { - assertThat(log.msg).isEqualTo("Unable to get preview data"); - assertThat(log.throwable).isInstanceOf(SQLException.class); - assertThat(log.throwable) - .hasMessageThat() - .isEqualTo("Testing content://android.media.tv/channel?preview=true"); - } - } - } - - @Test - public void createPreviewProgram_fromProgram() { - Program program = - new ProgramImpl.Builder() - .setId(FAKE_PROGRAM_ID) - .setTitle(FAKE_PROGRAM_TITLE) - .setPosterArtUri(FAKE_PROGRAM_POSTER_URI) - .build(); - Channel channel = - new ChannelImpl.Builder() - .setId(FAKE_CHANNEL_ID) - .setDisplayName(FAKE_CHANNEL_DISPLAY_NAME) - .setInputId(FAKE_INPUT_ID) - .build(); - - PreviewProgram previewProgram = - PreviewDataManager.PreviewDataUtils.createPreviewProgramFromContent( - PreviewProgramContent.createFromProgram( - FAKE_PREVIEW_CHANNEL_ID, program, channel), - 0); - - assertThat(previewProgram.getChannelId()).isEqualTo(FAKE_PREVIEW_CHANNEL_ID); - assertThat(previewProgram.getType()) - .isEqualTo(TvContractCompat.PreviewPrograms.TYPE_CHANNEL); - assertThat(previewProgram.isLive()).isTrue(); - assertThat(previewProgram.getTitle()).isEqualTo(FAKE_PROGRAM_TITLE); - assertThat(previewProgram.getDescription()).isEqualTo(FAKE_CHANNEL_DISPLAY_NAME); - assertThat(previewProgram.getPosterArtUri().toString()).isEqualTo(FAKE_PROGRAM_POSTER_URI); - assertThat(previewProgram.getIntentUri()).isEqualTo(channel.getUri()); - assertThat(previewProgram.getPreviewVideoUri()) - .isEqualTo( - PreviewDataManager.PreviewDataUtils.addQueryParamToUri( - channel.getUri(), - Pair.create(PreviewProgramContent.PARAM_INPUT, FAKE_INPUT_ID))); - assertThat(previewProgram.getInternalProviderId()) - .isEqualTo(Long.toString(FAKE_PROGRAM_ID)); - assertThat(previewProgram.getContentId()).isEqualTo(channel.getUri().toString()); - } - - @Test - public void createPreviewProgram_fromRecordedProgram() { - RecordedProgram program = - RecordedProgram.builder() - .setId(FAKE_PROGRAM_ID) - .setTitle(FAKE_PROGRAM_TITLE) - .setPosterArtUri(FAKE_PROGRAM_POSTER_URI) - .setInputId(FAKE_INPUT_ID) - .build(); - Uri recordedProgramUri = TvContractCompat.buildRecordedProgramUri(FAKE_PROGRAM_ID); - - PreviewProgram previewProgram = - PreviewDataManager.PreviewDataUtils.createPreviewProgramFromContent( - PreviewProgramContent.createFromRecordedProgram( - FAKE_PREVIEW_CHANNEL_ID, program, null), - 0); - - assertThat(previewProgram.getChannelId()).isEqualTo(FAKE_PREVIEW_CHANNEL_ID); - assertThat(previewProgram.getType()).isEqualTo(TvContractCompat.PreviewPrograms.TYPE_CLIP); - assertThat(previewProgram.isLive()).isFalse(); - assertThat(previewProgram.getTitle()).isEqualTo(FAKE_PROGRAM_TITLE); - assertThat(previewProgram.getDescription()).isEmpty(); - assertThat(previewProgram.getPosterArtUri().toString()).isEqualTo(FAKE_PROGRAM_POSTER_URI); - assertThat(previewProgram.getIntentUri()).isEqualTo(recordedProgramUri); - assertThat(previewProgram.getPreviewVideoUri()) - .isEqualTo( - PreviewDataManager.PreviewDataUtils.addQueryParamToUri( - recordedProgramUri, - Pair.create(PreviewProgramContent.PARAM_INPUT, FAKE_INPUT_ID))); - assertThat(previewProgram.getContentId()).isEqualTo(recordedProgramUri.toString()); - } -} |