Save/restore account preference when running tests

Change-Id: I0b1ec2144007b60fc53b4fcfa04be1b6dc21ced2
main
Sandeep Siddhartha 2014-09-24 18:29:47 -07:00
parent 88984aedae
commit 3980675f18
1 changed files with 10 additions and 5 deletions

View File

@ -33,18 +33,21 @@ public class AccountsChangedReceiverTests extends AndroidTestCase {
private static final String ACCOUNT_2 = "account2@example.com"; private static final String ACCOUNT_2 = "account2@example.com";
private SharedPreferences mPrefs; private SharedPreferences mPrefs;
private String mLastKnownAccount = null;
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
mPrefs = PreferenceManager.getDefaultSharedPreferences(getContext()); mPrefs = PreferenceManager.getDefaultSharedPreferences(getContext());
// Keep track of the current account so that we restore it when the test finishes.
mLastKnownAccount = mPrefs.getString(Settings.PREF_ACCOUNT_NAME, null);
} }
@Override @Override
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
super.tearDown(); super.tearDown();
// Remove all preferences before the next test. // Restore the account that was present before running the test.
mPrefs.edit().clear(); updateAccountName(mLastKnownAccount);
} }
public void testUnknownIntent() { public void testUnknownIntent() {
@ -95,9 +98,11 @@ public class AccountsChangedReceiverTests extends AndroidTestCase {
} }
private void updateAccountName(String accountName) { private void updateAccountName(String accountName) {
mPrefs.edit() if (accountName == null) {
.putString(Settings.PREF_ACCOUNT_NAME, accountName) mPrefs.edit().remove(Settings.PREF_ACCOUNT_NAME).apply();
.commit(); } else {
mPrefs.edit().putString(Settings.PREF_ACCOUNT_NAME, accountName).apply();
}
} }
private void assertAccountName(String expectedAccountName) { private void assertAccountName(String expectedAccountName) {