1package org.robolectric.shadows; 2 3import static org.assertj.core.api.Assertions.assertThat; 4import static org.junit.Assert.assertNotNull; 5import static org.robolectric.Shadows.shadowOf; 6 7import android.R; 8import android.graphics.drawable.Drawable; 9import android.graphics.drawable.StateListDrawable; 10import android.util.StateSet; 11import org.junit.Test; 12import org.junit.runner.RunWith; 13import org.robolectric.RobolectricTestRunner; 14 15@RunWith(RobolectricTestRunner.class) 16public class ShadowStateListDrawableTest { 17 18 @Test 19 public void testAddStateWithDrawable() { 20 Drawable drawable = ShadowDrawable.createFromPath("/foo"); 21 22 StateListDrawable stateListDrawable = new StateListDrawable(); 23 int[] states = {R.attr.state_pressed}; 24 stateListDrawable.addState(states, drawable); 25 26 ShadowStateListDrawable shadow = shadowOf(stateListDrawable); 27 Drawable drawableForState = shadow.getDrawableForState(states); 28 assertNotNull(drawableForState); 29 assertThat(((ShadowBitmapDrawable) shadowOf(drawableForState)).getPath()).isEqualTo("/foo"); 30 } 31 32 @Test 33 public void testAddDrawableWithWildCardState() { 34 Drawable drawable = ShadowDrawable.createFromPath("/foo"); 35 36 StateListDrawable stateListDrawable = new StateListDrawable(); 37 stateListDrawable.addState(StateSet.WILD_CARD, drawable); 38 39 ShadowStateListDrawable shadow = shadowOf(stateListDrawable); 40 Drawable drawableForState = shadow.getDrawableForState(StateSet.WILD_CARD); 41 assertNotNull(drawableForState); 42 assertThat(((ShadowBitmapDrawable) shadowOf(drawableForState)).getPath()).isEqualTo("/foo"); 43 } 44} 45