1package org.robolectric.shadows;
2
3import static android.os.Build.VERSION_CODES.M;
4import static org.assertj.core.api.Assertions.assertThat;
5import static org.robolectric.Shadows.shadowOf;
6
7import android.graphics.Bitmap;
8import android.graphics.drawable.Icon;
9import android.net.Uri;
10import org.junit.Test;
11import org.junit.runner.RunWith;
12import org.robolectric.RobolectricTestRunner;
13import org.robolectric.RuntimeEnvironment;
14import org.robolectric.annotation.Config;
15
16@RunWith(RobolectricTestRunner.class)
17@Config(minSdk = M)
18public class ShadowIconTest {
19  public static final int TYPE_BITMAP = 1;
20  public static final int TYPE_RESOURCE = 2;
21  public static final int TYPE_DATA = 3;
22  public static final int TYPE_URI = 4;
23
24  @Test
25  public void testGetRes() {
26    Icon icon = Icon.createWithResource(RuntimeEnvironment.application, android.R.drawable.ic_delete);
27    assertThat(shadowOf(icon).getType()).isEqualTo(TYPE_RESOURCE);
28    assertThat(shadowOf(icon).getResId()).isEqualTo(android.R.drawable.ic_delete);
29  }
30
31  @Test
32  public void testGetBitmap() {
33    Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
34    Icon icon = Icon.createWithBitmap(bitmap);
35    assertThat(shadowOf(icon).getType()).isEqualTo(TYPE_BITMAP);
36    assertThat(shadowOf(icon).getBitmap()).isEqualTo(bitmap);
37  }
38
39  @Test
40  public void testGetData() {
41    byte[] data = new byte[1000];
42    Icon icon = Icon.createWithData(data, 100, 200);
43    assertThat(shadowOf(icon).getType()).isEqualTo(TYPE_DATA);
44    assertThat(shadowOf(icon).getDataBytes()).isEqualTo(data);
45    assertThat(shadowOf(icon).getDataOffset()).isEqualTo(100);
46    assertThat(shadowOf(icon).getDataLength()).isEqualTo(200);
47  }
48
49  @Test
50  public void testGetUri() {
51    Uri uri = Uri.parse("content://icons/icon");
52    Icon icon = Icon.createWithContentUri(uri);
53    assertThat(shadowOf(icon).getType()).isEqualTo(TYPE_URI);
54    assertThat(shadowOf(icon).getUri()).isEqualTo(uri);
55  }
56}
57