package com.vaguehope.onosendai.images;
import static org.hamcrest.CoreMatchers.hasItem;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertEquals;
import java.io.File;
import java.util.Collections;
import java.util.List;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowMimeTypeMap;
import android.net.Uri;
import android.webkit.MimeTypeMap;
import com.vaguehope.onosendai.util.IoHelper;
@RunWith(RobolectricTestRunner.class)
@Config(shadows = { MyShadowBitmapFactory.class})
public class CachedImageFileProviderTest {
@Rule public TemporaryFolder tmp = new TemporaryFolder();
@Test
public void itAddsExtension () throws Exception {
final ShadowMimeTypeMap shadowMimeTypeMap = Robolectric.shadowOf(MimeTypeMap.getSingleton());
shadowMimeTypeMap.addExtensionMimeTypMapping("png", "image/png");
final File picFile = this.tmp.newFile();
IoHelper.copy(new File("./res/drawable-hdpi/ic_hosaka_meji.png"), picFile); // Just something to test with.
final List<File> actual = CachedImageFileProvider.addFileExtensions(Collections.singletonList(picFile));
assertThat(actual, hasItem(new File(picFile.getAbsolutePath() + ".png")));
}
@Test
public void itRemovesExtension () throws Exception {
final Uri input = Uri.fromFile(new File("/some/path/file.jpg"));
final Uri output = Uri.fromFile(new File("/some/path/file"));
assertEquals(output, CachedImageFileProvider.removeExtension(input));
}
@Test
public void itMakesIdFromUri () throws Exception {
final Uri uri = Uri.parse("content://com.vaguehope.onosendai.fileprovider/images/c8633fb04879b0ca35f662459a88e03b");
final long id = CachedImageFileProvider.tryReadId(uri);
assertEquals(69350895355748411L, id);
}
}