1d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov/* 2d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov * Copyright (C) 2015 The Android Open Source Project 3d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov * 4d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov * Licensed under the Apache License, Version 2.0 (the "License"); 5d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov * you may not use this file except in compliance with the License. 6d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov * You may obtain a copy of the License at 7d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov * 8d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov * http://www.apache.org/licenses/LICENSE-2.0 9d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov * 10d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov * Unless required by applicable law or agreed to in writing, software 11d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov * distributed under the License is distributed on an "AS IS" BASIS, 12d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov * See the License for the specific language governing permissions and 14d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov * limitations under the License. 15d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov */ 16d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov 17d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov 18d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikovpackage android.support.v4.widget; 19d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov 2092ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikovimport android.content.res.Resources; 21156b807bb159a532412685e6b7cfd4f0a61d1b5eKirill Grouchnikovimport android.graphics.drawable.ColorDrawable; 2239e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikovimport android.graphics.drawable.Drawable; 234d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikovimport android.support.annotation.ColorInt; 2439e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikovimport android.support.v4.BaseInstrumentationTestCase; 2592ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikovimport android.support.v4.test.R; 264d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikovimport android.support.v4.testutils.TestUtils; 2739e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikovimport android.support.v4.view.ViewCompat; 2839e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikovimport android.test.suitebuilder.annotation.MediumTest; 2939e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikovimport android.test.suitebuilder.annotation.SmallTest; 30d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikovimport android.widget.TextView; 3139e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikovimport org.junit.Before; 3239e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikovimport org.junit.Test; 33d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov 3439e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikovimport static android.support.test.espresso.Espresso.onView; 3539e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikovimport static android.support.test.espresso.matcher.ViewMatchers.withId; 3639e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikovimport static android.support.v4.testutils.LayoutDirectionActions.setLayoutDirection; 3739e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikovimport static android.support.v4.testutils.TextViewActions.*; 3839e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikovimport static org.junit.Assert.*; 3939e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov 4039e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikovpublic class TextViewCompatTest extends BaseInstrumentationTestCase<TextViewTestActivity> { 4192ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov private static final String TAG = "TextViewCompatTest"; 42d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov 4392ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov private TextView mTextView; 44d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov 454d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov private class TestDrawable extends ColorDrawable { 464d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov private int mWidth; 474d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov private int mHeight; 484d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 494d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov public TestDrawable(@ColorInt int color, int width, int height) { 504d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov super(color); 514d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov mWidth = width; 524d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov mHeight = height; 534d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov } 544d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 554d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov @Override 564d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov public int getIntrinsicWidth() { 574d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov return mWidth; 584d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov } 594d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 604d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov @Override 614d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov public int getIntrinsicHeight() { 624d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov return mHeight; 634d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov } 644d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov } 654d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 66d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov public TextViewCompatTest() { 6739e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov super(TextViewTestActivity.class); 68d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov } 69d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov 7039e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov @Before 7139e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov public void setUp() { 7239e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov mTextView = (TextView) mActivityTestRule.getActivity().findViewById(R.id.text_view); 73d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov } 74d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov 7539e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov @Test 7692ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov @SmallTest 77d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov public void testMaxLines() throws Throwable { 7892ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov final int maxLinesCount = 4; 7939e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setMaxLines(maxLinesCount)); 8092ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov 8192ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov assertEquals("Empty view: Max lines must match", TextViewCompat.getMaxLines(mTextView), 8292ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov maxLinesCount); 8392ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov 8439e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setText(R.string.test_text_short)); 8592ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov assertEquals("Short text: Max lines must match", TextViewCompat.getMaxLines(mTextView), 8692ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov maxLinesCount); 8792ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov 8839e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setText(R.string.test_text_medium)); 8992ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov assertEquals("Medium text: Max lines must match", TextViewCompat.getMaxLines(mTextView), 9092ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov maxLinesCount); 9192ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov 9239e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setText(R.string.test_text_long)); 9392ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov assertEquals("Long text: Max lines must match", TextViewCompat.getMaxLines(mTextView), 9492ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov maxLinesCount); 9592ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov } 9692ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov 9739e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov @Test 9892ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov @SmallTest 9992ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov public void testMinLines() throws Throwable { 10092ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov final int minLinesCount = 3; 10139e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setMinLines(minLinesCount)); 10292ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov 10392ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov assertEquals("Empty view: Min lines must match", TextViewCompat.getMinLines(mTextView), 10492ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov minLinesCount); 10592ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov 10639e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setText(R.string.test_text_short)); 10792ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov assertEquals("Short text: Min lines must match", TextViewCompat.getMinLines(mTextView), 10892ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov minLinesCount); 10992ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov 11039e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setText(R.string.test_text_medium)); 11192ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov assertEquals("Medium text: Min lines must match", TextViewCompat.getMinLines(mTextView), 11292ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov minLinesCount); 11392ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov 11439e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setText(R.string.test_text_long)); 11592ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov assertEquals("Long text: Min lines must match", TextViewCompat.getMinLines(mTextView), 11692ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov minLinesCount); 11792ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov } 11892ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov 11939e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov @Test 12092ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov @SmallTest 12192ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov public void testStyle() throws Throwable { 12239e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setTextAppearance(R.style.TextMediumStyle)); 123d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov 12439e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov final Resources res = mActivityTestRule.getActivity().getResources(); 1259176979f5317552e473fff0cf1ea9e87bf59d7d3Kirill Grouchnikov assertTrue("Styled text view: style", 1269176979f5317552e473fff0cf1ea9e87bf59d7d3Kirill Grouchnikov mTextView.getTypeface().isItalic() || (mTextView.getPaint().getTextSkewX() < 0)); 12792ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov assertEquals("Styled text view: color", mTextView.getTextColors().getDefaultColor(), 12892ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov res.getColor(R.color.text_color)); 12992ad16973b68f0586c585da428946d851a7611bbKirill Grouchnikov assertEquals("Styled text view: size", mTextView.getTextSize(), 13039e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov (float) res.getDimensionPixelSize(R.dimen.text_medium_size), 1.0f); 131d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov } 132156b807bb159a532412685e6b7cfd4f0a61d1b5eKirill Grouchnikov 13339e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov @Test 134156b807bb159a532412685e6b7cfd4f0a61d1b5eKirill Grouchnikov @SmallTest 135156b807bb159a532412685e6b7cfd4f0a61d1b5eKirill Grouchnikov public void testCompoundDrawablesRelative() throws Throwable { 136156b807bb159a532412685e6b7cfd4f0a61d1b5eKirill Grouchnikov final Drawable drawableStart = new ColorDrawable(0xFFFF0000); 137156b807bb159a532412685e6b7cfd4f0a61d1b5eKirill Grouchnikov drawableStart.setBounds(0, 0, 20, 20); 138156b807bb159a532412685e6b7cfd4f0a61d1b5eKirill Grouchnikov final Drawable drawableTop = new ColorDrawable(0xFF00FF00); 1394d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawableTop.setBounds(0, 0, 30, 25); 140156b807bb159a532412685e6b7cfd4f0a61d1b5eKirill Grouchnikov final Drawable drawableEnd = new ColorDrawable(0xFF0000FF); 1414d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawableEnd.setBounds(0, 0, 25, 20); 142156b807bb159a532412685e6b7cfd4f0a61d1b5eKirill Grouchnikov 14339e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setText(R.string.test_text_medium)); 14439e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setCompoundDrawablesRelative(drawableStart, 14539e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov drawableTop, drawableEnd, null)); 146156b807bb159a532412685e6b7cfd4f0a61d1b5eKirill Grouchnikov 147156b807bb159a532412685e6b7cfd4f0a61d1b5eKirill Grouchnikov final Drawable[] drawablesAbsolute = mTextView.getCompoundDrawables(); 1484d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 149156b807bb159a532412685e6b7cfd4f0a61d1b5eKirill Grouchnikov assertEquals("Compound drawable: left", drawablesAbsolute[0], drawableStart); 1504d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left width", 1514d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[0].getBounds().width(), 20); 1524d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left height", 1534d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[0].getBounds().height(), 20); 1544d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 155156b807bb159a532412685e6b7cfd4f0a61d1b5eKirill Grouchnikov assertEquals("Compound drawable: top", drawablesAbsolute[1], drawableTop); 1564d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: top width", 1574d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[1].getBounds().width(), 30); 1584d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: top height", 1594d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[1].getBounds().height(), 25); 1604d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 161156b807bb159a532412685e6b7cfd4f0a61d1b5eKirill Grouchnikov assertEquals("Compound drawable: right", drawablesAbsolute[2], drawableEnd); 1624d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: right width", 1634d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[2].getBounds().width(), 25); 1644d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: right height", 1654d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[2].getBounds().height(), 20); 1664d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 167156b807bb159a532412685e6b7cfd4f0a61d1b5eKirill Grouchnikov assertNull("Compound drawable: bottom", drawablesAbsolute[3]); 168156b807bb159a532412685e6b7cfd4f0a61d1b5eKirill Grouchnikov } 169c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov 17039e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov @Test 171c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov @SmallTest 172c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov public void testCompoundDrawablesRelativeRtl() throws Throwable { 17339e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setLayoutDirection(ViewCompat.LAYOUT_DIRECTION_RTL)); 174c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov 175c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov final Drawable drawableStart = new ColorDrawable(0xFFFF0000); 176c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov drawableStart.setBounds(0, 0, 20, 20); 177c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov final Drawable drawableTop = new ColorDrawable(0xFF00FF00); 1784d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawableTop.setBounds(0, 0, 30, 25); 179c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov final Drawable drawableEnd = new ColorDrawable(0xFF0000FF); 1804d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawableEnd.setBounds(0, 0, 25, 20); 181c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov 18239e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setText(R.string.test_text_medium)); 18339e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setCompoundDrawablesRelative(drawableStart, 18439e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov drawableTop, drawableEnd, null)); 185c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov 186c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov // Check to see whether our text view is under RTL mode 187c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov if (ViewCompat.getLayoutDirection(mTextView) != ViewCompat.LAYOUT_DIRECTION_RTL) { 188c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov // This will happen on v17- devices 189c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov return; 190c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov } 191c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov 192c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov final Drawable[] drawablesAbsolute = mTextView.getCompoundDrawables(); 1934d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 194c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov // End drawable should be returned as left 195c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov assertEquals("Compound drawable: left", drawablesAbsolute[0], drawableEnd); 1964d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left width", 1974d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[0].getBounds().width(), 25); 1984d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left height", 1994d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[0].getBounds().height(), 20); 2004d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 201c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov assertEquals("Compound drawable: top", drawablesAbsolute[1], drawableTop); 2024d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left width", 2034d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[1].getBounds().width(), 30); 2044d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left height", 2054d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[1].getBounds().height(), 25); 2064d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 207c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov // Start drawable should be returned as right 208c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov assertEquals("Compound drawable: right", drawablesAbsolute[2], drawableStart); 2094d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left width", 2104d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[2].getBounds().width(), 20); 2114d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left height", 2124d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[2].getBounds().height(), 20); 2134d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 214c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov assertNull("Compound drawable: bottom", drawablesAbsolute[3]); 215c5b4d17e3c2877bd2888cd5314d0a624fff9b49dKirill Grouchnikov } 2164d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 21739e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov @Test 2184d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov @SmallTest 2194d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov public void testCompoundDrawablesRelativeWithIntrinsicBounds() throws Throwable { 2204d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov final Drawable drawableStart = new TestDrawable(0xFFFF0000, 30, 20); 2214d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov final Drawable drawableEnd = new TestDrawable(0xFF0000FF, 25, 45); 2224d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov final Drawable drawableBottom = new TestDrawable(0xFF00FF00, 15, 35); 2234d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 22439e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setText(R.string.test_text_long)); 22539e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setCompoundDrawablesRelativeWithIntrinsicBounds( 22639e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov drawableStart, null, drawableEnd, drawableBottom)); 2274d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 2284d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov final Drawable[] drawablesAbsolute = mTextView.getCompoundDrawables(); 2294d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 2304d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left", drawablesAbsolute[0], drawableStart); 2314d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left width", 2324d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[0].getBounds().width(), 30); 2334d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left height", 2344d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[0].getBounds().height(), 20); 2354d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 2364d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertNull("Compound drawable: top", drawablesAbsolute[1]); 2374d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 2384d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: right", drawablesAbsolute[2], drawableEnd); 2394d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: right width", 2404d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[2].getBounds().width(), 25); 2414d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: right height", 2424d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[2].getBounds().height(), 45); 2434d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 2444d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: bottom", drawablesAbsolute[3], drawableBottom); 2454d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: bottom width", 2464d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[3].getBounds().width(), 15); 2474d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: bottom height", 2484d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[3].getBounds().height(), 35); 2494d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov } 2504d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 25139e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov @Test 2524d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov @SmallTest 2534d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov public void testCompoundDrawablesRelativeWithIntrinsicBoundsRtl() throws Throwable { 25439e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setLayoutDirection(ViewCompat.LAYOUT_DIRECTION_RTL)); 2554d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 2564d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov final Drawable drawableStart = new TestDrawable(0xFFFF0000, 30, 20); 2574d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov final Drawable drawableEnd = new TestDrawable(0xFF0000FF, 25, 45); 2584d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov final Drawable drawableBottom = new TestDrawable(0xFF00FF00, 15, 35); 2594d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 26039e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setText(R.string.test_text_long)); 26139e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setCompoundDrawablesRelativeWithIntrinsicBounds( 26239e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov drawableStart, null, drawableEnd, drawableBottom)); 2634d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 2644d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov // Check to see whether our text view is under RTL mode 2654d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov if (ViewCompat.getLayoutDirection(mTextView) != ViewCompat.LAYOUT_DIRECTION_RTL) { 2664d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov // This will happen on v17- devices 2674d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov return; 2684d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov } 2694d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 2704d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov final Drawable[] drawablesAbsolute = mTextView.getCompoundDrawables(); 2714d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 2724d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov // End drawable should be returned as left 2734d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left", drawablesAbsolute[0], drawableEnd); 2744d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left width", 2754d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[0].getBounds().width(), 25); 2764d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left height", 2774d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[0].getBounds().height(), 45); 2784d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 2794d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertNull("Compound drawable: top", drawablesAbsolute[1]); 2804d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 2814d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov // Start drawable should be returned as right 2824d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: right", drawablesAbsolute[2], drawableStart); 2834d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: right width", 2844d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[2].getBounds().width(), 30); 2854d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: right height", 2864d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[2].getBounds().height(), 20); 2874d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 2884d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: bottom", drawablesAbsolute[3], drawableBottom); 2894d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: bottom width", 2904d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[3].getBounds().width(), 15); 2914d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: bottom height", 2924d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[3].getBounds().height(), 35); 2934d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov } 2944d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 29539e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov @Test 2964d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov @MediumTest 2974d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov public void testCompoundDrawablesRelativeWithIntrinsicBoundsById() throws Throwable { 29839e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setText(R.string.test_text_long)); 29939e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setCompoundDrawablesRelativeWithIntrinsicBounds( 3004d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov R.drawable.test_drawable_red, 0, 30139e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov R.drawable.test_drawable_green, R.drawable.test_drawable_blue)); 3024d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 3034d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov final Drawable[] drawablesAbsolute = mTextView.getCompoundDrawables(); 30439e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov final Resources res = mActivityTestRule.getActivity().getResources(); 3054d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 3064d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov // The entire left drawable should be the specific red color 307bc927aa4ec8007a8faaa5672f4b3c7ef59c7e36fKirill Grouchnikov TestUtils.assertAllPixelsOfColor("Compound drawable: left color", 308bc927aa4ec8007a8faaa5672f4b3c7ef59c7e36fKirill Grouchnikov drawablesAbsolute[0], res.getColor(R.color.test_red)); 3094d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left width", 3104d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[0].getBounds().width(), 3114d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov res.getDimensionPixelSize(R.dimen.drawable_small_size)); 3124d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left height", 3134d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[0].getBounds().height(), 3144d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov res.getDimensionPixelSize(R.dimen.drawable_medium_size)); 3154d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 3164d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertNull("Compound drawable: top", drawablesAbsolute[1]); 3174d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 3184d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov // The entire right drawable should be the specific green color 319bc927aa4ec8007a8faaa5672f4b3c7ef59c7e36fKirill Grouchnikov TestUtils.assertAllPixelsOfColor("Compound drawable: right color", 320bc927aa4ec8007a8faaa5672f4b3c7ef59c7e36fKirill Grouchnikov drawablesAbsolute[2], res.getColor(R.color.test_green)); 3214d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: right width", 3224d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[2].getBounds().width(), 3234d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov res.getDimensionPixelSize(R.dimen.drawable_medium_size)); 3244d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: right height", 3254d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[2].getBounds().height(), 3264d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov res.getDimensionPixelSize(R.dimen.drawable_large_size)); 3274d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 3284d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov // The entire bottom drawable should be the specific blue color 329bc927aa4ec8007a8faaa5672f4b3c7ef59c7e36fKirill Grouchnikov TestUtils.assertAllPixelsOfColor("Compound drawable: bottom color", 330bc927aa4ec8007a8faaa5672f4b3c7ef59c7e36fKirill Grouchnikov drawablesAbsolute[3], res.getColor(R.color.test_blue)); 3314d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: bottom width", 3324d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[3].getBounds().width(), 3334d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov res.getDimensionPixelSize(R.dimen.drawable_large_size)); 3344d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: bottom height", 3354d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[3].getBounds().height(), 3364d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov res.getDimensionPixelSize(R.dimen.drawable_small_size)); 3374d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov } 3384d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 33939e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov @Test 3404d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov @MediumTest 3414d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov public void testCompoundDrawablesRelativeWithIntrinsicBoundsByIdRtl() throws Throwable { 34239e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setLayoutDirection(ViewCompat.LAYOUT_DIRECTION_RTL)); 3434d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 34439e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setText(R.string.test_text_long)); 34539e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov onView(withId(R.id.text_view)).perform(setCompoundDrawablesRelativeWithIntrinsicBounds( 3464d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov R.drawable.test_drawable_red, 0, 34739e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov R.drawable.test_drawable_green, R.drawable.test_drawable_blue)); 3484d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 3494d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov // Check to see whether our text view is under RTL mode 3504d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov if (ViewCompat.getLayoutDirection(mTextView) != ViewCompat.LAYOUT_DIRECTION_RTL) { 3514d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov // This will happen on v17- devices 3524d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov return; 3534d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov } 3544d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 3554d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov final Drawable[] drawablesAbsolute = mTextView.getCompoundDrawables(); 35639e84476b45f10ed4929e307372d6f7a2103e9d5Kirill Grouchnikov final Resources res = mActivityTestRule.getActivity().getResources(); 3574d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 3584d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov // The entire left / end drawable should be the specific green color 359bc927aa4ec8007a8faaa5672f4b3c7ef59c7e36fKirill Grouchnikov TestUtils.assertAllPixelsOfColor("Compound drawable: left color", 360bc927aa4ec8007a8faaa5672f4b3c7ef59c7e36fKirill Grouchnikov drawablesAbsolute[0], res.getColor(R.color.test_green)); 3614d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left width", 3624d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[0].getBounds().width(), 3634d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov res.getDimensionPixelSize(R.dimen.drawable_medium_size)); 3644d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: left height", 3654d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[0].getBounds().height(), 3664d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov res.getDimensionPixelSize(R.dimen.drawable_large_size)); 3674d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 3684d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertNull("Compound drawable: top", drawablesAbsolute[1]); 3694d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 3704d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov // The entire right drawable should be the specific red color 371bc927aa4ec8007a8faaa5672f4b3c7ef59c7e36fKirill Grouchnikov TestUtils.assertAllPixelsOfColor("Compound drawable: right color", 372bc927aa4ec8007a8faaa5672f4b3c7ef59c7e36fKirill Grouchnikov drawablesAbsolute[2], res.getColor(R.color.test_red)); 3734d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: right width", 3744d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[2].getBounds().width(), 3754d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov res.getDimensionPixelSize(R.dimen.drawable_small_size)); 3764d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: right height", 3774d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[2].getBounds().height(), 3784d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov res.getDimensionPixelSize(R.dimen.drawable_medium_size)); 3794d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov 3804d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov // The entire bottom drawable should be the specific blue color 381bc927aa4ec8007a8faaa5672f4b3c7ef59c7e36fKirill Grouchnikov TestUtils.assertAllPixelsOfColor("Compound drawable: bottom color", 382bc927aa4ec8007a8faaa5672f4b3c7ef59c7e36fKirill Grouchnikov drawablesAbsolute[3], res.getColor(R.color.test_blue)); 3834d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: bottom width", 3844d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[3].getBounds().width(), 3854d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov res.getDimensionPixelSize(R.dimen.drawable_large_size)); 3864d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov assertEquals("Compound drawable: bottom height", 3874d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov drawablesAbsolute[3].getBounds().height(), 3884d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov res.getDimensionPixelSize(R.dimen.drawable_small_size)); 3894d83305f6b84175b5167d16e64cee01c4d3e1176Kirill Grouchnikov } 390d9d9aec0e671cf0db89a8b58a81b1980834f1dc2Kirill Grouchnikov} 391