Home | History | Annotate | Download | only in res
      1 package com.xtremelabs.robolectric.res;
      2 
      3 import android.graphics.Color;
      4 import com.xtremelabs.robolectric.R;
      5 import org.junit.Before;
      6 import org.junit.Test;
      7 
      8 import static com.xtremelabs.robolectric.util.TestUtil.getSystemResourceDir;
      9 import static com.xtremelabs.robolectric.util.TestUtil.resourceFile;
     10 import static org.hamcrest.CoreMatchers.equalTo;
     11 import static org.junit.Assert.assertThat;
     12 
     13 public class ColorResourceLoaderTest {
     14     private ColorResourceLoader colorResourceLoader;
     15 
     16     @Before public void setUp() throws Exception {
     17         ResourceExtractor resourceExtractor = new ResourceExtractor();
     18         resourceExtractor.addLocalRClass(R.class);
     19         resourceExtractor.addSystemRClass(android.R.class);
     20         colorResourceLoader = new ColorResourceLoader(resourceExtractor);
     21         new DocumentLoader(colorResourceLoader).loadResourceXmlDir(resourceFile("res", "values"));
     22         new DocumentLoader(colorResourceLoader).loadSystemResourceXmlDir(getSystemResourceDir("values"));
     23     }
     24 
     25     @Test
     26     public void shouldHandleNonColorResourcesWithoutCrashing() throws Exception {
     27         assertThat(colorResourceLoader.getValue(R.drawable.l0_red), equalTo(-0x000001));
     28     }
     29 
     30     @Test
     31     public void testStringsAreResolved() throws Exception {
     32         assertThat(colorResourceLoader.getValue(R.color.black), equalTo(0x000000));
     33         assertThat(colorResourceLoader.getValue(R.color.white), equalTo(0xffffff));
     34     }
     35 
     36     @Test
     37     public void shouldHandleColorsWithAlpha() throws Exception {
     38         assertThat(colorResourceLoader.getValue(R.color.clear), equalTo(0x000001));
     39     }
     40 
     41     @Test
     42     public void shouldHandleColorForwardReferences() throws Exception {
     43         assertThat(colorResourceLoader.getValue(R.color.foreground), equalTo(0xf5f5f5));
     44     }
     45 
     46     @Test
     47     public void shouldHandleColorBackwardReferences() throws Exception {
     48         assertThat(colorResourceLoader.getValue(R.color.background), equalTo(0xf5f5f5));
     49     }
     50 
     51     @Test
     52     public void shouldLoadColorsWithAlpha() throws Exception {
     53         assertThat(colorResourceLoader.getValue(R.color.color_with_alpha), equalTo(0x802C76AD));
     54     }
     55 
     56     @Test
     57     public void shouldReturnAndroidColors() throws Exception {
     58         assertThat(colorResourceLoader.getValue(android.R.color.black), equalTo(Color.BLACK));
     59     }
     60 
     61     @Test
     62     public void shouldSupportCarrierDefinedColors() throws Exception {
     63         assertThat(colorResourceLoader.getValue(android.R.color.background_dark), equalTo(0xFF000000));
     64     }
     65 
     66     @Test
     67     public void shouldParseAndroidColorReferences() throws Exception {
     68         assertThat(colorResourceLoader.getValue(R.color.android_namespaced_black), equalTo(Color.BLACK));
     69     }
     70 
     71     @Test
     72     public void shouldParseSimpleAndroidColorReferences() throws Exception {
     73         assertThat(colorResourceLoader.getValue(R.color.android_red), equalTo(Color.RED));
     74     }
     75 }
     76