Merge "Added a check on supported codecs. If none is available for the video being tested in testGetThumbnail, simply return." into klp-modular-dev
diff --git a/tests/tests/provider/src/android/provider/cts/MediaStore_Video_ThumbnailsTest.java b/tests/tests/provider/src/android/provider/cts/MediaStore_Video_ThumbnailsTest.java
index 287551c..ac0bc03 100644
--- a/tests/tests/provider/src/android/provider/cts/MediaStore_Video_ThumbnailsTest.java
+++ b/tests/tests/provider/src/android/provider/cts/MediaStore_Video_ThumbnailsTest.java
@@ -22,22 +22,49 @@
import android.content.ContentUris;
import android.content.ContentValues;
import android.database.Cursor;
+import android.media.MediaCodecInfo;
+import android.media.MediaCodecList;
import android.net.Uri;
import android.os.Environment;
import android.provider.MediaStore.Video.Media;
import android.provider.MediaStore.Video.Thumbnails;
import android.provider.MediaStore.Video.VideoColumns;
import android.test.AndroidTestCase;
+import android.util.Log;
import java.io.File;
import java.io.IOException;
public class MediaStore_Video_ThumbnailsTest extends AndroidTestCase {
+ private static final String TAG = "MediaStore_Video_ThumbnailsTest";
+ private static final String MIME_TYPE = "video/3gpp";
private ContentResolver mResolver;
private FileCopyHelper mFileHelper;
+ // TODO: Make a public method selectCodec() in common libraries (e.g. cts/libs/), to avoid
+ // redundant function definitions in this and other media related test files.
+ private static boolean hasCodec(String mimeType) {
+ int numCodecs = MediaCodecList.getCodecCount();
+
+ for (int i = 0; i < numCodecs; i++) {
+ MediaCodecInfo codecInfo = MediaCodecList.getCodecInfoAt(i);
+
+ if (!codecInfo.isEncoder()) {
+ continue;
+ }
+
+ String[] types = codecInfo.getSupportedTypes();
+ for (int j = 0; j < types.length; j++) {
+ if (types[j].equalsIgnoreCase(mimeType)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
@Override
protected void setUp() throws Exception {
super.setUp();
@@ -69,6 +96,14 @@
// Get the current thumbnail count for future comparison.
int count = getThumbnailCount(Thumbnails.EXTERNAL_CONTENT_URI);
+ // Don't run the test if the codec isn't supported.
+ if (!hasCodec(MIME_TYPE)) {
+ // Calling getThumbnail should not generate a new thumbnail.
+ assertNull(Thumbnails.getThumbnail(mResolver, videoId, Thumbnails.MINI_KIND, null));
+ Log.w(TAG, "Codec " + MIME_TYPE + " not supported. Return from testGetThumbnail.");
+ return;
+ }
+
// Calling getThumbnail should generate a new thumbnail.
assertNotNull(Thumbnails.getThumbnail(mResolver, videoId, Thumbnails.MINI_KIND, null));
assertNotNull(Thumbnails.getThumbnail(mResolver, videoId, Thumbnails.MICRO_KIND, null));