13eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perrypackage com.xtremelabs.robolectric.shadows;
23eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry
33eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perryimport android.R;
43eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perryimport android.graphics.drawable.Drawable;
53eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perryimport android.graphics.drawable.StateListDrawable;
63eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perryimport android.util.StateSet;
73eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perryimport com.xtremelabs.robolectric.WithTestDefaultsRunner;
83eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perryimport org.junit.Test;
93eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perryimport org.junit.runner.RunWith;
103eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry
113eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perryimport static com.xtremelabs.robolectric.Robolectric.shadowOf;
123eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perryimport static org.hamcrest.CoreMatchers.is;
133eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perryimport static org.junit.Assert.assertNotNull;
143eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perryimport static org.junit.Assert.assertThat;
153eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry
163eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry@RunWith(WithTestDefaultsRunner.class)
173eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perrypublic class StateListDrawableTest {
183eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry
193eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry    @Test
203eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry    public void testAddStateWithDrawable() {
213eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry        Drawable drawable = ShadowDrawable.createFromPath("/foo");
223eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry
233eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry        StateListDrawable stateListDrawable = new StateListDrawable();
243eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry        int[] states = {R.attr.state_pressed};
253eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry        stateListDrawable.addState(states, drawable);
263eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry
273eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry        ShadowStateListDrawable shadow = shadowOf(stateListDrawable);
283eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry        Drawable drawableForState = shadow.getDrawableForState(states);
293eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry        assertNotNull(drawableForState);
303eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry        assertThat(((ShadowBitmapDrawable) shadowOf(drawableForState)).getPath(), is("/foo"));
313eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry    }
323eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry
333eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry    @Test
343eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry    public void testAddDrawableWithWildCardState() {
353eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry        Drawable drawable = ShadowDrawable.createFromPath("/foo");
363eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry
373eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry        StateListDrawable stateListDrawable = new StateListDrawable();
383eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry        stateListDrawable.addState(StateSet.WILD_CARD, drawable);
393eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry
403eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry        ShadowStateListDrawable shadow = shadowOf(stateListDrawable);
413eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry        Drawable drawableForState = shadow.getDrawableForState(StateSet.WILD_CARD);
423eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry        assertNotNull(drawableForState);
433eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry        assertThat(((ShadowBitmapDrawable) shadowOf(drawableForState)).getPath(), is("/foo"));
443eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry    }
453eeaacd94b8bf41d08dfc7d93cbebb5936842020Chris Perry}
46