1a2043a8fff01f3e2d9a5e30dd1cf5fb6a5342f4dTyler Schultzpackage com.xtremelabs.robolectric.res;
2684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams
3a2043a8fff01f3e2d9a5e30dd1cf5fb6a5342f4dTyler Schultzimport com.xtremelabs.robolectric.R;
43a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richardimport org.junit.Before;
5684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williamsimport org.junit.Test;
6684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams
74ac725f9b4cebbf46805fc5e9b2f0eaf3fdd9b29Christian Williamsimport static com.xtremelabs.robolectric.util.TestUtil.resourceFile;
8684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williamsimport static org.hamcrest.CoreMatchers.equalTo;
9684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williamsimport static org.junit.Assert.assertThat;
10684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams
11684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williamspublic class StringResourceLoaderTest {
123a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard    private StringResourceLoader stringResourceLoader;
133a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard
143a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard    @Before public void setUp() throws Exception {
15684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams        ResourceExtractor resourceExtractor = new ResourceExtractor();
1629610b43047065c5dc66452d33f0113ac7e65fe8Phil Goodwin        resourceExtractor.addLocalRClass(R.class);
173a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard        stringResourceLoader = new StringResourceLoader(resourceExtractor);
18e759ba9296f7cf3063cdcab5f288ab6604d80ddbPhil Goodwin        new DocumentLoader(stringResourceLoader).loadResourceXmlDir(resourceFile("res", "values"));
193a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard    }
203a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard
213a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard    @Test
223a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard    public void testStringsAreResolved() throws Exception {
23684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams        assertThat(stringResourceLoader.getValue(R.string.hello), equalTo("Hello"));
24684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams        assertThat(stringResourceLoader.getValue(R.string.howdy), equalTo("Howdy"));
25684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams    }
263a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard
273a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard    @Test
283a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard    public void testHtmlTagsAreRemovedFromStrings() throws Exception {
293a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard        assertThat(stringResourceLoader.getValue(R.string.some_html), equalTo("Hello, world"));
303a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard    }
3103026285fac7636e32c65f71bb8861f3a9906058Phil Goodwin & Tyler Schultz
3203026285fac7636e32c65f71bb8861f3a9906058Phil Goodwin & Tyler Schultz    @Test
3303026285fac7636e32c65f71bb8861f3a9906058Phil Goodwin & Tyler Schultz    public void shouldResolveStringReferences() throws Exception {
3403026285fac7636e32c65f71bb8861f3a9906058Phil Goodwin & Tyler Schultz        assertThat(stringResourceLoader.getValue(R.string.greeting), equalTo("Howdy"));
3503026285fac7636e32c65f71bb8861f3a9906058Phil Goodwin & Tyler Schultz    }
36684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams}
37