blob: a0904074c27c142fdad38e69bfafd47fae383843 [file] [log] [blame]
package com.xtremelabs.robolectric.res;
import com.xtremelabs.robolectric.R;
import com.xtremelabs.robolectric.WithTestDefaultsRunner;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringWriter;
import java.io.Writer;
import static com.xtremelabs.robolectric.util.TestUtil.resourceFile;
import static org.junit.Assert.assertEquals;
@RunWith(WithTestDefaultsRunner.class)
public class RawResourceLoaderTest {
private RawResourceLoader rawResourceLoader;
@Before public void setUp() throws Exception {
ResourceExtractor resourceExtractor = new ResourceExtractor();
resourceExtractor.addLocalRClass(R.class);
rawResourceLoader = new RawResourceLoader(resourceExtractor, resourceFile("res"));
}
@Test
public void shouldReturnRawResourcesWithExtensions() throws Exception {
InputStream is = rawResourceLoader.getValue(R.raw.raw_resource);
assertEquals("raw txt file contents", readString(is));
}
@Test
public void shouldReturnRawResourcesWithoutExtensions() throws Exception {
InputStream is = rawResourceLoader.getValue(R.raw.raw_no_ext);
assertEquals("no ext file contents", readString(is));
}
private static String readString(InputStream is) throws IOException {
Writer writer = new StringWriter();
char[] buffer = new char[1024];
try {
Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
int n;
while ((n = reader.read(buffer)) != -1) {
writer.write(buffer, 0, n);
}
} finally {
is.close();
}
return writer.toString();
}
}