michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: package org.mozilla.gecko.background.testhelpers; michael@0: michael@0: import android.content.SharedPreferences; michael@0: michael@0: import java.util.HashMap; michael@0: import java.util.Map; michael@0: import java.util.Set; michael@0: michael@0: /** michael@0: * A programmable mock content provider. michael@0: */ michael@0: public class MockSharedPreferences implements SharedPreferences, SharedPreferences.Editor { michael@0: private HashMap mValues; michael@0: private HashMap mTempValues; michael@0: michael@0: public MockSharedPreferences() { michael@0: mValues = new HashMap(); michael@0: mTempValues = new HashMap(); michael@0: } michael@0: michael@0: public Editor edit() { michael@0: return this; michael@0: } michael@0: michael@0: public boolean contains(String key) { michael@0: return mValues.containsKey(key); michael@0: } michael@0: michael@0: public Map getAll() { michael@0: return new HashMap(mValues); michael@0: } michael@0: michael@0: public boolean getBoolean(String key, boolean defValue) { michael@0: if (mValues.containsKey(key)) { michael@0: return ((Boolean)mValues.get(key)).booleanValue(); michael@0: } michael@0: return defValue; michael@0: } michael@0: michael@0: public float getFloat(String key, float defValue) { michael@0: if (mValues.containsKey(key)) { michael@0: return ((Float)mValues.get(key)).floatValue(); michael@0: } michael@0: return defValue; michael@0: } michael@0: michael@0: public int getInt(String key, int defValue) { michael@0: if (mValues.containsKey(key)) { michael@0: return ((Integer)mValues.get(key)).intValue(); michael@0: } michael@0: return defValue; michael@0: } michael@0: michael@0: public long getLong(String key, long defValue) { michael@0: if (mValues.containsKey(key)) { michael@0: return ((Long)mValues.get(key)).longValue(); michael@0: } michael@0: return defValue; michael@0: } michael@0: michael@0: public String getString(String key, String defValue) { michael@0: if (mValues.containsKey(key)) michael@0: return (String)mValues.get(key); michael@0: return defValue; michael@0: } michael@0: michael@0: @SuppressWarnings("unchecked") michael@0: public Set getStringSet(String key, Set defValues) { michael@0: if (mValues.containsKey(key)) { michael@0: return (Set) mValues.get(key); michael@0: } michael@0: return defValues; michael@0: } michael@0: michael@0: public void registerOnSharedPreferenceChangeListener( michael@0: OnSharedPreferenceChangeListener listener) { michael@0: throw new UnsupportedOperationException(); michael@0: } michael@0: michael@0: public void unregisterOnSharedPreferenceChangeListener( michael@0: OnSharedPreferenceChangeListener listener) { michael@0: throw new UnsupportedOperationException(); michael@0: } michael@0: michael@0: public Editor putBoolean(String key, boolean value) { michael@0: mTempValues.put(key, Boolean.valueOf(value)); michael@0: return this; michael@0: } michael@0: michael@0: public Editor putFloat(String key, float value) { michael@0: mTempValues.put(key, value); michael@0: return this; michael@0: } michael@0: michael@0: public Editor putInt(String key, int value) { michael@0: mTempValues.put(key, value); michael@0: return this; michael@0: } michael@0: michael@0: public Editor putLong(String key, long value) { michael@0: mTempValues.put(key, value); michael@0: return this; michael@0: } michael@0: michael@0: public Editor putString(String key, String value) { michael@0: mTempValues.put(key, value); michael@0: return this; michael@0: } michael@0: michael@0: public Editor putStringSet(String key, Set values) { michael@0: mTempValues.put(key, values); michael@0: return this; michael@0: } michael@0: michael@0: public Editor remove(String key) { michael@0: mTempValues.remove(key); michael@0: return this; michael@0: } michael@0: michael@0: public Editor clear() { michael@0: mTempValues.clear(); michael@0: return this; michael@0: } michael@0: michael@0: @SuppressWarnings("unchecked") michael@0: public boolean commit() { michael@0: mValues = (HashMap)mTempValues.clone(); michael@0: return true; michael@0: } michael@0: michael@0: public void apply() { michael@0: commit(); michael@0: } michael@0: }