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 SharedPreferences mPrefs;
private String mLastKnownAccount = null;
@Override
protected void setUp() throws Exception {
super.setUp();
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
protected void tearDown() throws Exception {
super.tearDown();
// Remove all preferences before the next test.
mPrefs.edit().clear();
// Restore the account that was present before running the test.
updateAccountName(mLastKnownAccount);
}
public void testUnknownIntent() {
@ -95,9 +98,11 @@ public class AccountsChangedReceiverTests extends AndroidTestCase {
}
private void updateAccountName(String accountName) {
mPrefs.edit()
.putString(Settings.PREF_ACCOUNT_NAME, accountName)
.commit();
if (accountName == null) {
mPrefs.edit().remove(Settings.PREF_ACCOUNT_NAME).apply();
} else {
mPrefs.edit().putString(Settings.PREF_ACCOUNT_NAME, accountName).apply();
}
}
private void assertAccountName(String expectedAccountName) {