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}