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