AssetManagerTest.java revision a6ff2c2b15018092af3a28697b521d1ca5e789f0
1114296321cba71f8133713306049ce3b411e8563Gonçalo Silvapackage com.xtremelabs.robolectric.shadows;
2114296321cba71f8133713306049ce3b411e8563Gonçalo Silva
324f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultzimport android.app.Activity;
424f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultzimport android.content.res.AssetManager;
524f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultzimport com.xtremelabs.robolectric.Robolectric;
624f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultzimport com.xtremelabs.robolectric.WithTestDefaultsRunner;
724f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultzimport com.xtremelabs.robolectric.util.Strings;
824f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultzimport org.junit.Before;
924f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultzimport org.junit.Test;
1024f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultzimport org.junit.runner.RunWith;
1170a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva
1270a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silvaimport java.io.IOException;
1370a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silvaimport java.io.InputStream;
1470a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silvaimport java.util.Arrays;
1570a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silvaimport java.util.List;
16114296321cba71f8133713306049ce3b411e8563Gonçalo Silva
17a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwinimport static org.junit.Assert.assertEquals;
18a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwinimport static org.junit.Assert.assertNotNull;
19a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwinimport static org.junit.Assert.assertTrue;
20114296321cba71f8133713306049ce3b411e8563Gonçalo Silva
21114296321cba71f8133713306049ce3b411e8563Gonçalo Silva@RunWith(WithTestDefaultsRunner.class)
22114296321cba71f8133713306049ce3b411e8563Gonçalo Silvapublic class AssetManagerTest {
2370a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva	AssetManager assetManager;
2470a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva	String sp = System.getProperty("file.separator");
25114296321cba71f8133713306049ce3b411e8563Gonçalo Silva
26a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwin    @Before
27a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwin    public void setUp() throws Exception {
28a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwin        assetManager = new Activity().getAssets();
29a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwin    }
3070a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva
31a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwin    @Test
3270a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva	public void assertGetAssetsNotNull() {
33a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwin		assertNotNull(assetManager);
3470a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva
35a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwin		assetManager = Robolectric.application.getAssets();
36a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwin		assertNotNull(assetManager);
3770a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva
38a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwin		assetManager = Robolectric.application.getResources().getAssets();
39a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwin		assertNotNull(assetManager);
4070a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva	}
41114296321cba71f8133713306049ce3b411e8563Gonçalo Silva
4270a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva	@Test
4370a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva	public void assetsPathListing() throws IOException {
4470a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		List<String> files;
4570a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		String testPath;
4670a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva
4770a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		testPath = "";
4870a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		files = Arrays.asList(assetManager.list(testPath));
4970a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		assertTrue(files.contains("docs"));
5070a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		assertTrue(files.contains("assetsHome.txt"));
5170a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva
5270a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		testPath = "docs";
5370a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		files = Arrays.asList(assetManager.list(testPath));
5470a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		assertTrue(files.contains("extra"));
5570a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva
5670a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		testPath = "docs" + sp + "extra";
5770a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		files = Arrays.asList(assetManager.list(testPath));
5870a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		assertTrue(files.contains("testing"));
5970a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva
6070a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		testPath = "docs" + sp + "extra" + sp + "testing";
6170a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		files = Arrays.asList(assetManager.list(testPath));
6270a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		assertTrue(files.contains("hello.txt"));
63114296321cba71f8133713306049ce3b411e8563Gonçalo Silva	}
6470a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva
65114296321cba71f8133713306049ce3b411e8563Gonçalo Silva	@Test
6670a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva	public void assetsInputStreams() throws IOException {
6770a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		String testPath;
6870a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		String fileContents;
6924f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultz		InputStream inputStream;
70114296321cba71f8133713306049ce3b411e8563Gonçalo Silva
7170a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		testPath = "assetsHome.txt";
7224f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultz		inputStream = assetManager.open(testPath);
7324f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultz		fileContents = Strings.fromStream(inputStream);
7470a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		assertEquals("assetsHome!", fileContents);
7570a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva
7670a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		testPath = "docs" + sp + "extra" + sp + "testing" + sp + "hello.txt";
7724f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultz		inputStream = assetManager.open(testPath);
7824f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultz		fileContents = Strings.fromStream(inputStream);
7970a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva		assertEquals("hello!", fileContents);
80114296321cba71f8133713306049ce3b411e8563Gonçalo Silva	}
81114296321cba71f8133713306049ce3b411e8563Gonçalo Silva}
82