/*
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.facebook.common.media;
import android.webkit.MimeTypeMap;
import org.robolectric.RobolectricTestRunner;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Shadows;
import org.robolectric.shadows.ShadowMimeTypeMap;
import static org.fest.assertions.api.Assertions.assertThat;
@RunWith(RobolectricTestRunner.class)
public class MediaUtilsTest {
@Test
public void testIsPhotoMimeTypeNull() {
assertThat(MediaUtils.isPhoto(null)).isFalse();
}
@Test
public void testIsPhotoMimeTypeImage() {
assertThat(MediaUtils.isPhoto("image/jpg")).isTrue();
}
@Test
public void testIsPhotoMimeTypeVideo() {
assertThat(MediaUtils.isPhoto("video/mp4")).isFalse();
}
@Test
public void testIsVideoMimeTypeNull() {
assertThat(MediaUtils.isVideo(null)).isFalse();
}
@Test
public void testIsVideoMimeTypeImage() {
assertThat(MediaUtils.isVideo("image/jpg")).isFalse();
}
@Test
public void testIsVideoMimeTypeVideo() {
assertThat(MediaUtils.isVideo("video/mp4")).isTrue();
}
@Test
public void testExtractMimeNoFileExtension() {
String path = "file/with/no/extension";
assertThat(MediaUtils.extractMime(path)).isNull();
}
@Test
public void testExtractMimeNativelySupportedFileExtension() {
ShadowMimeTypeMap mimeTypeMap = Shadows.shadowOf(MimeTypeMap.getSingleton());
mimeTypeMap.addExtensionMimeTypMapping("jpg", "image/jpg");
String path = "file/with/natively/supported/extension.jpg";
assertThat(MediaUtils.extractMime(path)).isEqualTo("image/jpg");
}
@Test
public void testExtractMimeNonNativelySupportedFileExtension() {
String path = "file/with/non/natively/supported/extension.mkv";
assertThat(MediaUtils.extractMime(path)).isEqualTo("video/x-matroska");
}
@Test
public void testExtractMimeUnsupportedFileExtension() {
String path = "file/with/unsupported/extension.zip";
assertThat(MediaUtils.extractMime(path)).isNull();
}
@Test
public void testIsNonNativeSupportedMimeTypeNative() {
assertThat(MediaUtils.isNonNativeSupportedMimeType("image/jpg")).isFalse();
}
@Test
public void testIsNonNativeSupportedMimeTypeNonNative() {
assertThat(MediaUtils.isNonNativeSupportedMimeType("video/x-matroska")).isTrue();
}
}