aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/src/com/android/tv/util/ScaledBitmapInfoTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/src/com/android/tv/util/ScaledBitmapInfoTest.java')
-rw-r--r--tests/unit/src/com/android/tv/util/ScaledBitmapInfoTest.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/unit/src/com/android/tv/util/ScaledBitmapInfoTest.java b/tests/unit/src/com/android/tv/util/ScaledBitmapInfoTest.java
new file mode 100644
index 00000000..ef707470
--- /dev/null
+++ b/tests/unit/src/com/android/tv/util/ScaledBitmapInfoTest.java
@@ -0,0 +1,52 @@
+package com.android.tv.util;
+
+import android.graphics.Bitmap;
+import android.test.AndroidTestCase;
+
+import com.android.tv.util.BitmapUtils.ScaledBitmapInfo;
+
+/**
+ * Tests for {@link ScaledBitmapInfo}.
+ */
+public class ScaledBitmapInfoTest extends AndroidTestCase {
+
+ private static final Bitmap B80x100 = Bitmap.createBitmap(80, 100, Bitmap.Config.RGB_565);
+ private static final Bitmap B960x1440 = Bitmap.createBitmap(960, 1440, Bitmap.Config.RGB_565);
+
+ public void testSize_B100x100to50x50() {
+ ScaledBitmapInfo actual = BitmapUtils.createScaledBitmapInfo("B80x100", B80x100, 50, 50);
+ assertScaledBitmapSize(2, 40, 50, actual);
+ }
+
+ public void testNeedsToReload_B100x100to50x50() {
+ ScaledBitmapInfo actual = BitmapUtils.createScaledBitmapInfo("B80x100", B80x100, 50, 50);
+ assertNeedsToReload(false, actual, 25, 25);
+ assertNeedsToReload(false, actual, 50, 50);
+ assertNeedsToReload(false, actual, 99, 99);
+ assertNeedsToReload(true, actual, 100, 100);
+ assertNeedsToReload(true, actual, 101, 101);
+ }
+
+ /**
+ * Reproduces <a href="http://b/20488453">b/20488453</a>.
+ */
+ public void testBug20488453() {
+ ScaledBitmapInfo actual = BitmapUtils
+ .createScaledBitmapInfo("B960x1440", B960x1440, 284, 160);
+ assertScaledBitmapSize(8, 107, 160, actual);
+ assertNeedsToReload(false, actual, 284, 160);
+ }
+
+ private static void assertNeedsToReload(boolean expected, ScaledBitmapInfo scaledBitmap,
+ int reqWidth, int reqHeight) {
+ assertEquals(scaledBitmap.id + " needToReload(" + reqWidth + "," + reqHeight + ")",
+ expected, scaledBitmap.needToReload(reqWidth, reqHeight));
+ }
+
+ private static void assertScaledBitmapSize(int expectedInSampleSize, int expectedWidth,
+ int expectedHeight, ScaledBitmapInfo actual) {
+ assertEquals(actual.id + " inSampleSize", expectedInSampleSize, actual.inSampleSize);
+ assertEquals(actual.id + " width", expectedWidth, actual.bitmap.getWidth());
+ assertEquals(actual.id + " height", expectedHeight, actual.bitmap.getHeight());
+ }
+}