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 171a214aab83930db97856ba5c78bb65f7aabf209eGlenn Jahnke & Phil Goodwinimport static org.junit.Assert.*; 18114296321cba71f8133713306049ce3b411e8563Gonçalo Silva 19114296321cba71f8133713306049ce3b411e8563Gonçalo Silva@RunWith(WithTestDefaultsRunner.class) 20114296321cba71f8133713306049ce3b411e8563Gonçalo Silvapublic class AssetManagerTest { 2140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams AssetManager assetManager; 2240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams String sp = System.getProperty("file.separator"); 23114296321cba71f8133713306049ce3b411e8563Gonçalo Silva 24a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwin @Before 25a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwin public void setUp() throws Exception { 26a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwin assetManager = new Activity().getAssets(); 27a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwin } 2870a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silva 29a6ff2c2b15018092af3a28697b521d1ca5e789f0Christian Williams & Phil Goodwin @Test 3040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams public void assertGetAssetsNotNull() { 3140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertNotNull(assetManager); 3240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 3340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assetManager = Robolectric.application.getAssets(); 3440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertNotNull(assetManager); 3540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 3640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assetManager = Robolectric.application.getResources().getAssets(); 3740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertNotNull(assetManager); 3840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams } 3940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 4040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams @Test 4140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams public void assetsPathListing() throws IOException { 4240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams List<String> files; 4340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams String testPath; 4440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 4540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams testPath = ""; 4640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams files = Arrays.asList(assetManager.list(testPath)); 4740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertTrue(files.contains("docs")); 4840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertTrue(files.contains("assetsHome.txt")); 4940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 5040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams testPath = "docs"; 5140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams files = Arrays.asList(assetManager.list(testPath)); 5240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertTrue(files.contains("extra")); 5340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 5440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams testPath = "docs" + sp + "extra"; 5540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams files = Arrays.asList(assetManager.list(testPath)); 5640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertTrue(files.contains("testing")); 5740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 5840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams testPath = "docs" + sp + "extra" + sp + "testing"; 5940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams files = Arrays.asList(assetManager.list(testPath)); 6040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertTrue(files.contains("hello.txt")); 61da894fe66d2b23ea8dd2d81aca697e1d0fb4f2a3Glenn Jahnke & Lenny Turetsky 62da894fe66d2b23ea8dd2d81aca697e1d0fb4f2a3Glenn Jahnke & Lenny Turetsky testPath = "assetsHome.txt"; 63da894fe66d2b23ea8dd2d81aca697e1d0fb4f2a3Glenn Jahnke & Lenny Turetsky files = Arrays.asList(assetManager.list(testPath)); 641a214aab83930db97856ba5c78bb65f7aabf209eGlenn Jahnke & Phil Goodwin assertFalse(files.contains(testPath)); 65da894fe66d2b23ea8dd2d81aca697e1d0fb4f2a3Glenn Jahnke & Lenny Turetsky 66da894fe66d2b23ea8dd2d81aca697e1d0fb4f2a3Glenn Jahnke & Lenny Turetsky testPath = "bogus.file"; 67da894fe66d2b23ea8dd2d81aca697e1d0fb4f2a3Glenn Jahnke & Lenny Turetsky files = Arrays.asList(assetManager.list(testPath)); 68da894fe66d2b23ea8dd2d81aca697e1d0fb4f2a3Glenn Jahnke & Lenny Turetsky assertEquals(0, files.size()); 6940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams } 7040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 7140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams @Test 7240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams public void assetsInputStreams() throws IOException { 7340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams String testPath; 7440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams String fileContents; 7540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams InputStream inputStream; 7640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 7740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams testPath = "assetsHome.txt"; 7840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams inputStream = assetManager.open(testPath); 7940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams fileContents = Strings.fromStream(inputStream); 8040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertEquals("assetsHome!", fileContents); 8140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 8240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams testPath = "docs" + sp + "extra" + sp + "testing" + sp + "hello.txt"; 8340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams inputStream = assetManager.open(testPath); 8440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams fileContents = Strings.fromStream(inputStream); 8540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertEquals("hello!", fileContents); 8640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams } 87114296321cba71f8133713306049ce3b411e8563Gonçalo Silva} 88