1package com.xtremelabs.robolectric.shadows; 2 3import android.app.Activity; 4import android.content.res.AssetManager; 5import com.xtremelabs.robolectric.Robolectric; 6import com.xtremelabs.robolectric.WithTestDefaultsRunner; 7import com.xtremelabs.robolectric.util.Strings; 8import org.junit.Before; 9import org.junit.Test; 10import org.junit.runner.RunWith; 11 12import java.io.IOException; 13import java.io.InputStream; 14import java.util.Arrays; 15import java.util.List; 16 17import static org.junit.Assert.*; 18 19@RunWith(WithTestDefaultsRunner.class) 20public class AssetManagerTest { 21 AssetManager assetManager; 22 String sp = System.getProperty("file.separator"); 23 24 @Before 25 public void setUp() throws Exception { 26 assetManager = new Activity().getAssets(); 27 } 28 29 @Test 30 public void assertGetAssetsNotNull() { 31 assertNotNull(assetManager); 32 33 assetManager = Robolectric.application.getAssets(); 34 assertNotNull(assetManager); 35 36 assetManager = Robolectric.application.getResources().getAssets(); 37 assertNotNull(assetManager); 38 } 39 40 @Test 41 public void assetsPathListing() throws IOException { 42 List<String> files; 43 String testPath; 44 45 testPath = ""; 46 files = Arrays.asList(assetManager.list(testPath)); 47 assertTrue(files.contains("docs")); 48 assertTrue(files.contains("assetsHome.txt")); 49 50 testPath = "docs"; 51 files = Arrays.asList(assetManager.list(testPath)); 52 assertTrue(files.contains("extra")); 53 54 testPath = "docs" + sp + "extra"; 55 files = Arrays.asList(assetManager.list(testPath)); 56 assertTrue(files.contains("testing")); 57 58 testPath = "docs" + sp + "extra" + sp + "testing"; 59 files = Arrays.asList(assetManager.list(testPath)); 60 assertTrue(files.contains("hello.txt")); 61 62 testPath = "assetsHome.txt"; 63 files = Arrays.asList(assetManager.list(testPath)); 64 assertFalse(files.contains(testPath)); 65 66 testPath = "bogus.file"; 67 files = Arrays.asList(assetManager.list(testPath)); 68 assertEquals(0, files.size()); 69 } 70 71 @Test 72 public void assetsInputStreams() throws IOException { 73 String testPath; 74 String fileContents; 75 InputStream inputStream; 76 77 testPath = "assetsHome.txt"; 78 inputStream = assetManager.open(testPath); 79 fileContents = Strings.fromStream(inputStream); 80 assertEquals("assetsHome!", fileContents); 81 82 testPath = "docs" + sp + "extra" + sp + "testing" + sp + "hello.txt"; 83 inputStream = assetManager.open(testPath); 84 fileContents = Strings.fromStream(inputStream); 85 assertEquals("hello!", fileContents); 86 } 87} 88