15117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardpackage com.xtremelabs.robolectric.shadows; 25117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard 35117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport android.graphics.BitmapFactory; 45117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport android.graphics.drawable.BitmapDrawable; 55117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport android.graphics.drawable.Drawable; 65117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport android.graphics.drawable.LayerDrawable; 75117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport com.xtremelabs.robolectric.Robolectric; 85117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport com.xtremelabs.robolectric.WithTestDefaultsRunner; 95117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport org.junit.Before; 105117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport org.junit.Test; 115117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport org.junit.runner.RunWith; 125117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard 135117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport static com.xtremelabs.robolectric.Robolectric.shadowOf; 14b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perryimport static org.junit.Assert.*; 155117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard 165117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard/** 175117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard * ShadowLayerDrawableTest 185117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard */ 195117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard@RunWith(WithTestDefaultsRunner.class) 205117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardpublic class LayerDrawableTest { 21b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry /** 22b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry * drawables 23b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry */ 245117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard protected Drawable drawable1000; 255117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard protected Drawable drawable2000; 265117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard protected Drawable drawable3000; 27b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry protected Drawable drawable4000; 285117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard 29b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry /** 30b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry * drawables 31b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry */ 325117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard protected Drawable[] drawables; 335117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard 345117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard @Before 355117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard public void setUp() { 365117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard drawable1000 = new BitmapDrawable(BitmapFactory.decodeResource( 375117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard Robolectric.application.getResources(), 0x00001000)); 385117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard drawable2000 = new BitmapDrawable(BitmapFactory.decodeResource( 395117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard Robolectric.application.getResources(), 0x00002000)); 405117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard drawable3000 = new BitmapDrawable(BitmapFactory.decodeResource( 415117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard Robolectric.application.getResources(), 0x00003000)); 42b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry drawable4000 = new BitmapDrawable(BitmapFactory.decodeResource( 43b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry Robolectric.application.getResources(), 0x00004000)); 445117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard 45b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry drawables = new Drawable[]{drawable1000, drawable2000, drawable3000}; 465117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard } 475117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard 485117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard @Test 495117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard public void testConstruction() { 505117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard LayerDrawable layerDrawable = new LayerDrawable(drawables); 515117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard assertSame("drawables", drawables, shadowOf(layerDrawable).drawables); 525117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard } 535117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard 545117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard @Test 555117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard public void testGetNumberOfLayers() { 565117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard LayerDrawable layerDrawable = new LayerDrawable(drawables); 575117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard assertEquals("count", 3, layerDrawable.getNumberOfLayers()); 585117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard } 59b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry 60b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry @Test 61b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry public void testSetDrawableByLayerId1() throws Exception { 62b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry LayerDrawable layerDrawable = new LayerDrawable(drawables); 63b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry int index = 1; 64b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry int layerId = 345; 65b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry layerDrawable.setId(index, layerId); 66b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry 67b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry layerDrawable.setDrawableByLayerId(layerId, drawable4000); 68b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry 69b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry assertEquals(shadowOf(drawable4000).getLoadedFromResourceId(), 70b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry shadowOf(layerDrawable.getDrawable(index)).getLoadedFromResourceId()); 71b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry } 72b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry 73b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry @Test 74b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry public void testSetDrawableByLayerId2() throws Exception { 75b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry LayerDrawable layerDrawable = new LayerDrawable(drawables); 76b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry int index = 0; 77b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry int layerId = 345; 78b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry layerDrawable.setId(index, layerId); 79b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry 80b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry layerDrawable.setDrawableByLayerId(layerId, drawable4000); 81b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry 82b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry assertEquals(shadowOf(drawable4000).getLoadedFromResourceId(), 83b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry shadowOf(layerDrawable.getDrawable(index)).getLoadedFromResourceId()); 84b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry } 85b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry 86b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry @Test 87b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry public void setDrawableByLayerId_shouldReturnFalseIfIdNotFound() throws Exception { 88b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry LayerDrawable layerDrawable = new LayerDrawable(drawables); 89b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry boolean ret = layerDrawable.setDrawableByLayerId(123, drawable4000); 90b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry assertFalse(ret); 91b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry } 92b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry 93b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry @Test 94b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry public void setDrawableByLayerId_shouldReturnTrueIfIdWasFound() throws Exception { 95b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry LayerDrawable layerDrawable = new LayerDrawable(drawables); 96b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry int index = 0; 97b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry int layerId = 345; 98b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry layerDrawable.setId(index, layerId); 99b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry 100b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry boolean ret = layerDrawable.setDrawableByLayerId(layerId, drawable4000); 101b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry assertTrue(ret); 102b5d53400ef5160e032e2744f82f8c147f8d4d59cAaron VonderHaar & Chris Perry } 1035117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard} 104