DrawableCompatTest.java revision 881c193f64d35ea2a106a2f76c30bd711a971bb1
189d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes/* 289d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes * Copyright (C) 2016 The Android Open Source Project 389d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes * 489d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes * Licensed under the Apache License, Version 2.0 (the "License"); 589d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes * you may not use this file except in compliance with the License. 689d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes * You may obtain a copy of the License at 789d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes * 889d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes * http://www.apache.org/licenses/LICENSE-2.0 989d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes * 1089d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes * Unless required by applicable law or agreed to in writing, software 1189d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes * distributed under the License is distributed on an "AS IS" BASIS, 1289d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1389d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes * See the License for the specific language governing permissions and 1489d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes * limitations under the License. 1589d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes */ 1689d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes 1789d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banespackage android.support.v4.graphics; 1889d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes 1989d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banesimport android.graphics.Rect; 2089d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banesimport android.graphics.drawable.Drawable; 2189d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banesimport android.graphics.drawable.GradientDrawable; 22881c193f64d35ea2a106a2f76c30bd711a971bb1Kirill Grouchnikovimport android.support.test.runner.AndroidJUnit4; 2389d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banesimport android.support.v4.graphics.drawable.DrawableCompat; 2489d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banesimport android.test.AndroidTestCase; 2589d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banesimport android.test.suitebuilder.annotation.SmallTest; 26881c193f64d35ea2a106a2f76c30bd711a971bb1Kirill Grouchnikovimport org.junit.Test; 27881c193f64d35ea2a106a2f76c30bd711a971bb1Kirill Grouchnikovimport org.junit.runner.RunWith; 2889d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes 29881c193f64d35ea2a106a2f76c30bd711a971bb1Kirill Grouchnikovimport static org.junit.Assert.assertEquals; 30881c193f64d35ea2a106a2f76c30bd711a971bb1Kirill Grouchnikovimport static org.junit.Assert.assertSame; 3189d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes 32881c193f64d35ea2a106a2f76c30bd711a971bb1Kirill Grouchnikov@RunWith(AndroidJUnit4.class) 33881c193f64d35ea2a106a2f76c30bd711a971bb1Kirill Grouchnikov@SmallTest 34881c193f64d35ea2a106a2f76c30bd711a971bb1Kirill Grouchnikovpublic class DrawableCompatTest { 35881c193f64d35ea2a106a2f76c30bd711a971bb1Kirill Grouchnikov @Test 3689d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes public void testDrawableUnwrap() { 3789d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes final Drawable original = new GradientDrawable(); 3889d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes final Drawable wrappedDrawable = DrawableCompat.wrap(original); 3989d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes assertSame(original, DrawableCompat.unwrap(wrappedDrawable)); 4089d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes } 4189d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes 42881c193f64d35ea2a106a2f76c30bd711a971bb1Kirill Grouchnikov @Test 4389d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes public void testDrawableChangeBoundsCopy() { 4489d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes final Rect bounds = new Rect(0, 0, 10, 10); 4589d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes 4689d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes final Drawable original = new GradientDrawable(); 4789d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes original.setBounds(bounds); 4889d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes 4989d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes final Drawable wrapped = DrawableCompat.wrap(original); 5089d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes assertEquals(bounds, wrapped.getBounds()); 5189d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes } 5289d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes 53881c193f64d35ea2a106a2f76c30bd711a971bb1Kirill Grouchnikov @Test 5489d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes public void testDrawableWrapOnlyWrapsOnce() { 5589d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes final Drawable wrappedDrawable = DrawableCompat.wrap(new GradientDrawable()); 5689d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes assertSame(wrappedDrawable, DrawableCompat.wrap(wrappedDrawable)); 5789d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes } 5889d63e9cbc1daf9e04ba6261cfd141e6dd68ec63Chris Banes}