You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tasks/src/androidTest/java/com/todoroo/astrid/utility/AstridDefaultPreferenceSpec...

127 lines
3.3 KiB
Java

package com.todoroo.astrid.utility;
import android.annotation.SuppressLint;
import android.test.AndroidTestCase;
import org.tasks.R;
import org.tasks.preferences.Preferences;
import java.util.concurrent.TimeUnit;
public class AstridDefaultPreferenceSpecTest extends AndroidTestCase {
@SuppressLint("NewApi")
private static final int MILLIS_PER_HOUR = (int) TimeUnit.HOURS.toMillis(1);
Preferences preferences;
AstridDefaultPreferenceSpec spec;
@Override
public void setUp() {
preferences = new Preferences(getContext());
spec = new AstridDefaultPreferenceSpec(getContext(), preferences);
preferences.clear();
assertFalse(hasMigrated());
}
public void testQuietHoursEnabledAfterMigration() {
setOldQuietHoursStart(1);
spec.migrateToNewQuietHours();
assertTrue(quietHoursEnabled());
}
public void testQuietHoursDisabledAfterMigration() {
preferences.setString(getContext().getString(R.string.p_rmd_quietStart_old), "");
spec.migrateToNewQuietHours();
assertFalse(quietHoursEnabled());
}
public void testMigrateFromStartOfDefaultReminderTimeArray() {
setOldReminderTime(0);
spec.migrateToNewQuietHours();
assertEquals(0, newReminderTime());
}
public void testMigrateFromEndOfDefaultReminderTimeArray() {
setOldReminderTime(23);
spec.migrateToNewQuietHours();
assertEquals(23 * MILLIS_PER_HOUR, newReminderTime());
}
public void testMigrateFromStartOfQuietHourStartArray() {
setOldQuietHoursStart(1);
spec.migrateToNewQuietHours();
assertEquals(MILLIS_PER_HOUR, newQuietHoursStartTime());
}
public void testMigrateFromEndOfQuietHoursStartArray() {
setOldQuietHoursStart(23);
spec.migrateToNewQuietHours();
assertEquals(23 * MILLIS_PER_HOUR, newQuietHoursStartTime());
}
public void testMigrateFromStartOfQuietHoursEndArray() {
setOldQuietHoursStart(1);
setOldQuietHoursEnd(0);
spec.migrateToNewQuietHours();
assertEquals(0, newQuietHoursEndTime());
}
public void testMigrateFromEndOfQuietHoursEndArray() {
setOldQuietHoursStart(1);
setOldQuietHoursEnd(23);
spec.migrateToNewQuietHours();
assertEquals(23 * MILLIS_PER_HOUR, newQuietHoursEndTime());
}
private boolean quietHoursEnabled() {
return preferences.getBoolean(R.string.p_rmd_enable_quiet, false);
}
private boolean hasMigrated() {
return preferences.getBoolean(R.string.p_rmd_hasMigrated, false);
}
private void setOldQuietHoursStart(int index) {
preferences.setStringFromInteger(R.string.p_rmd_quietStart_old, index);
}
private void setOldQuietHoursEnd(int index) {
preferences.setStringFromInteger(R.string.p_rmd_quietEnd_old, index);
}
private void setOldReminderTime(int index) {
preferences.setStringFromInteger(R.string.p_rmd_time_old, index);
}
private int newQuietHoursStartTime() {
return preferences.getInt(R.string.p_rmd_quietStart);
}
private int newQuietHoursEndTime() {
return preferences.getInt(R.string.p_rmd_quietEnd);
}
private int newReminderTime() {
return preferences.getInt(R.string.p_rmd_time);
}
}