/*
* 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.imageutils;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Pair;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import static org.junit.Assert.*;
/**
* Tests {@link BitmapUtil}
*/
@RunWith(RobolectricTestRunner.class)
public class BitmapUtilTest {
@Test
public void testGetSizeInBytes() {
// 0 for null
assertEquals(0, BitmapUtil.getSizeInBytes(null));
// 240 * 181 * 4 = 173760
final Bitmap bitmap1 =
BitmapFactory.decodeStream(BitmapUtilTest.class.getResourceAsStream("pngs/1.png"));
assertEquals(173760, BitmapUtil.getSizeInBytes(bitmap1));
// 240 * 246 * 4 = 236160
final Bitmap bitmap2 =
BitmapFactory.decodeStream(BitmapUtilTest.class.getResourceAsStream("pngs/2.png"));
assertEquals(236160, BitmapUtil.getSizeInBytes(bitmap2));
// 240 * 180 * 4 = 172800
final Bitmap bitmap3 =
BitmapFactory.decodeStream(BitmapUtilTest.class.getResourceAsStream("pngs/3.png"));
assertEquals(172800, BitmapUtil.getSizeInBytes(bitmap3));
}
@Test
public void testDecodeDimensions_testPngs() {
assertEquals(
new Pair(240, 181),
BitmapUtil.decodeDimensions(BitmapUtilTest.class.getResourceAsStream("pngs/1.png")));
assertEquals(
new Pair(240, 246),
BitmapUtil.decodeDimensions(BitmapUtilTest.class.getResourceAsStream("pngs/2.png")));
assertEquals(
new Pair(240, 180),
BitmapUtil.decodeDimensions(BitmapUtilTest.class.getResourceAsStream("pngs/3.png")));
}
@Test
public void testDecodeDimensions_testJpegs() {
assertEquals(
new Pair(240, 181),
BitmapUtil.decodeDimensions(BitmapUtilTest.class.getResourceAsStream("jpegs/1.jpeg")));
assertEquals(
new Pair(240, 93),
BitmapUtil.decodeDimensions(BitmapUtilTest.class.getResourceAsStream("jpegs/2.jpeg")));
assertEquals(
new Pair(240, 240),
BitmapUtil.decodeDimensions(BitmapUtilTest.class.getResourceAsStream("jpegs/3.jpeg")));
}
@Test
public void testDecodeDimensions_testIncompleteJpegs() {
assertEquals(
new Pair(240, 181),
BitmapUtil.decodeDimensions(BitmapUtilTest.class.getResourceAsStream("jpegs/1cut.jpeg")));
}
@Test
public void testDecodeDimensions_testProgressiveJpegs() {
assertEquals(
new Pair(981, 657),
BitmapUtil.decodeDimensions(BitmapUtilTest.class.getResourceAsStream("jpegs/1prog.jpeg")));
assertEquals(
new Pair(800, 531),
BitmapUtil.decodeDimensions(BitmapUtilTest.class.getResourceAsStream("jpegs/2prog.jpeg")));
}
@Test
public void testDecodeDimensions_testStaticGifs() throws Exception {
assertEquals(
new Pair(240, 181),
BitmapUtil.decodeDimensions(BitmapUtilTest.class.getResourceAsStream("gifs/1.gif")));
assertEquals(
new Pair(240, 246),
BitmapUtil.decodeDimensions(BitmapUtilTest.class.getResourceAsStream("gifs/2.gif")));
assertEquals(
new Pair(240, 180),
BitmapUtil.decodeDimensions(BitmapUtilTest.class.getResourceAsStream("gifs/3.gif")));
}
@Test
public void testDecodeDimensions_testAnimatedGifs() {
assertEquals(
new Pair(500, 500),
BitmapUtil.decodeDimensions(
BitmapUtilTest.class.getResourceAsStream("animatedgifs/1.gif")));
assertEquals(
new Pair(550, 400),
BitmapUtil.decodeDimensions(
BitmapUtilTest.class.getResourceAsStream("animatedgifs/2.gif")));
}
@Test
public void testDecodeDimensions_testBmps() throws Exception {
assertEquals(
new Pair(240, 181),
BitmapUtil.decodeDimensions(BitmapUtilTest.class.getResourceAsStream("bmps/1.bmp")));
assertEquals(
new Pair(240, 246),
BitmapUtil.decodeDimensions(BitmapUtilTest.class.getResourceAsStream("bmps/2.bmp")));
assertEquals(
new Pair(240, 180),
BitmapUtil.decodeDimensions(BitmapUtilTest.class.getResourceAsStream("bmps/3.bmp")));
}
}