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