diff options
Diffstat (limited to 'v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContext.java')
-rw-r--r-- | v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContext.java | 177 |
1 files changed, 0 insertions, 177 deletions
diff --git a/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContext.java b/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContext.java deleted file mode 100644 index 23a978903..000000000 --- a/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContext.java +++ /dev/null @@ -1,177 +0,0 @@ -package com.xtremelabs.robolectric.shadows; - -import android.app.Application; -import android.content.Context; -import android.content.res.Resources; -import android.content.res.TypedArray; -import android.util.AttributeSet; -import com.xtremelabs.robolectric.internal.Implementation; -import com.xtremelabs.robolectric.internal.Implements; -import com.xtremelabs.robolectric.internal.RealObject; -import com.xtremelabs.robolectric.res.ResourceLoader; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; - -import static com.xtremelabs.robolectric.Robolectric.shadowOf; - -/** - * Calls through to the {@code resourceLoader} to actually load resources. - */ -@SuppressWarnings({"UnusedDeclaration"}) -@Implements(Context.class) -abstract public class ShadowContext { - public static final File CACHE_DIR = createTempDir("android-cache"); - public static final File EXTERNAL_CACHE_DIR = createTempDir("android-external-cache"); - public static final File FILES_DIR = createTempDir("android-tmp"); - public static final File EXTERNAL_FILES_DIR = createTempDir("android-external-files"); - - @RealObject private Context realContext; - - @Implementation - public File getDir(String name, int mode) { - // TODO: honor operating mode. - File file = new File(FILES_DIR, name); - if (!file.exists()) { - file.mkdir(); - } - return file; - } - - @Implementation - public String getString(int resId) { - return realContext.getResources().getString(resId); - } - - @Implementation - public CharSequence getText(int resId) { - return realContext.getResources().getText(resId); - } - - @Implementation - public String getString(int resId, Object... formatArgs) { - return realContext.getResources().getString(resId, formatArgs); - } - - @Implementation - abstract public Resources.Theme getTheme(); - - @Implementation - public final TypedArray obtainStyledAttributes( - int[] attrs) { - return getTheme().obtainStyledAttributes(attrs); - } - - @Implementation - public final TypedArray obtainStyledAttributes( - int resid, int[] attrs) throws Resources.NotFoundException { - return getTheme().obtainStyledAttributes(resid, attrs); - } - - @Implementation - public final TypedArray obtainStyledAttributes( - AttributeSet set, int[] attrs) { - return getTheme().obtainStyledAttributes(set, attrs, 0, 0); - } - - @Implementation - public final TypedArray obtainStyledAttributes( - AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes) { - return getTheme().obtainStyledAttributes( - set, attrs, defStyleAttr, defStyleRes); - } - - @Implementation - public File getCacheDir() { - CACHE_DIR.mkdirs(); - return CACHE_DIR; - } - - @Implementation - public File getFilesDir() { - FILES_DIR.mkdirs(); - return FILES_DIR; - } - - @Implementation - public File getExternalCacheDir() { - EXTERNAL_CACHE_DIR.mkdir(); - return EXTERNAL_CACHE_DIR; - } - - @Implementation - public File getExternalFilesDir(String type) { - File f = (type == null) ? EXTERNAL_FILES_DIR : new File( EXTERNAL_FILES_DIR, type ); - f.mkdirs(); - return f; - } - - @Implementation - public FileInputStream openFileInput(String path) throws FileNotFoundException { - return new FileInputStream(getFileStreamPath(path)); - } - - @Implementation - public FileOutputStream openFileOutput(String path, int mode) throws FileNotFoundException { - return new FileOutputStream(getFileStreamPath(path)); - } - - @Implementation - public File getFileStreamPath(String name) { - if (name.contains(File.separator)) { - throw new IllegalArgumentException("File " + name + " contains a path separator"); - } - return new File(getFilesDir(), name); - } - - @Implementation - public boolean deleteFile(String name) { - return getFileStreamPath(name).delete(); - } - - /** - * Non-Android accessor. - * - * @return the {@code ResourceLoader} associated with this {@code Context} - */ - public ResourceLoader getResourceLoader() { - return shadowOf((Application) realContext.getApplicationContext()).getResourceLoader(); - } - - public static void clearFilesAndCache() { - clearFiles(FILES_DIR); - clearFiles(CACHE_DIR); - clearFiles(EXTERNAL_CACHE_DIR); - clearFiles(EXTERNAL_FILES_DIR); - } - - public static void clearFiles(File dir) { - if (dir != null && dir.isDirectory()) { - File[] files = dir.listFiles(); - if (files != null) { - for (File f : files) { - if (f.isDirectory()) { - clearFiles(f); - } - f.delete(); - } - } - } - } - - private static File createTempDir(String name) { - try { - File tmp = File.createTempFile(name, "robolectric"); - if (!tmp.delete()) throw new IOException("could not delete "+tmp); - if (!tmp.mkdirs()) throw new IOException("could not create "+tmp); - tmp.deleteOnExit(); - - return tmp; - } catch (IOException e) { - throw new RuntimeException(e); - } - } -} |