ImageCacheTest.java revision 7d67089aa1e9aa2123c3cd2f386d7019a1544db1
1816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko/* 2816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * Copyright (C) 2015 The Android Open Source Project 3816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * 4816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * Licensed under the Apache License, Version 2.0 (the "License"); 5816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * you may not use this file except in compliance with the License. 6816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * You may obtain a copy of the License at 7816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * 8816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * http://www.apache.org/licenses/LICENSE-2.0 9816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * 10816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * Unless required by applicable law or agreed to in writing, software 11816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * distributed under the License is distributed on an "AS IS" BASIS, 12816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * See the License for the specific language governing permissions and 14816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * limitations under the License. 15816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko */ 16816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 17816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkopackage com.android.tv.util; 18816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 19816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkoimport static com.android.tv.util.BitmapUtils.createScaledBitmapInfo; 20816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 21816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkoimport android.graphics.Bitmap; 2207b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalkoimport android.test.suitebuilder.annotation.MediumTest; 23816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 24816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkoimport com.android.tv.util.BitmapUtils.ScaledBitmapInfo; 25816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 26816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkoimport junit.framework.TestCase; 27816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 28816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko/** 29816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * Tests for {@link ImageCache}. 30816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko */ 3107b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko@MediumTest 32816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkopublic class ImageCacheTest extends TestCase { 33816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko private static final Bitmap ORIG = Bitmap.createBitmap(100, 100, Bitmap.Config.RGB_565); 34816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 35816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko private static final String KEY = "same"; 36816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko private static final ScaledBitmapInfo INFO_200 = createScaledBitmapInfo(KEY, ORIG, 200, 200); 37816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko private static final ScaledBitmapInfo INFO_100 = createScaledBitmapInfo(KEY, ORIG, 100, 100); 38816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko private static final ScaledBitmapInfo INFO_50 = createScaledBitmapInfo(KEY, ORIG, 50, 50); 39816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko private static final ScaledBitmapInfo INFO_25 = createScaledBitmapInfo(KEY, ORIG, 25, 25); 40816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 41816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko private ImageCache mImageCache; 42816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 43816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko @Override 44816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko protected void setUp() throws Exception { 45816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko super.setUp(); 46816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko mImageCache = ImageCache.newInstance(0.1f); 47816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko } 48816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 49816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko //TODO: Empty the cache in the setup. Try using @VisibleForTesting 50816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 51816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko public void testPutIfLarger_smaller() throws Exception { 52816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 53816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko mImageCache.putIfNeeded( INFO_50); 54816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko assertSame("before", INFO_50, mImageCache.get(KEY)); 55816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 56816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko mImageCache.putIfNeeded( INFO_25); 57816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko assertSame("after", INFO_50, mImageCache.get(KEY)); 58816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko } 59816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 60816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko public void testPutIfLarger_larger() throws Exception { 61816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko mImageCache.putIfNeeded( INFO_50); 62816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko assertSame("before", INFO_50, mImageCache.get(KEY)); 63816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 64816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko mImageCache.putIfNeeded(INFO_100); 65816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko assertSame("after", INFO_100, mImageCache.get(KEY)); 66816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko } 67816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 68816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko public void testPutIfLarger_alreadyMax() throws Exception { 69816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 70816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko mImageCache.putIfNeeded( INFO_100); 71816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko assertSame("before", INFO_100, mImageCache.get(KEY)); 72816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 73816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko mImageCache.putIfNeeded( INFO_200); 74816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko assertSame("after", INFO_100, mImageCache.get(KEY)); 75816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko } 767d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko}