fix repeat unit tests

pull/14/head
Tim Su 15 years ago
parent afd0bc090b
commit 3d533ab96d

@ -23,6 +23,7 @@ import com.todoroo.astrid.reminders.Notifications;
import com.todoroo.astrid.reminders.ReminderService; import com.todoroo.astrid.reminders.ReminderService;
import com.todoroo.astrid.service.StatisticsService; import com.todoroo.astrid.service.StatisticsService;
import com.todoroo.astrid.utility.AstridPreferences; import com.todoroo.astrid.utility.AstridPreferences;
import com.todoroo.astrid.utility.Flags;
/** /**
* Data Access layer for {@link Task}-related operations. * Data Access layer for {@link Task}-related operations.
@ -252,7 +253,7 @@ public class TaskDao extends DatabaseDao<Task> {
* Astrid. Order matters here! * Astrid. Order matters here!
*/ */
public static void afterSave(Task task, ContentValues values) { public static void afterSave(Task task, ContentValues values) {
if(values == null) if(values == null || Flags.checkAndClear(Flags.SUPPRESS_HOOKS))
return; return;
task.markSaved(); task.markSaved();

@ -26,6 +26,11 @@ public class Flags {
*/ */
public static final int SUPPRESS_SYNC = 1 << 3; public static final int SUPPRESS_SYNC = 1 << 3;
/**
* If set, indicates save hooks should be suppressed
*/
public static final int SUPPRESS_HOOKS = 1 << 4;
public static boolean checkAndClear(int flag) { public static boolean checkAndClear(int flag) {
boolean set = (state & flag) > 0; boolean set = (state & flag) > 0;
state &= ~flag; state &= ~flag;

@ -18,6 +18,7 @@ import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.test.DatabaseTestCase; import com.todoroo.astrid.test.DatabaseTestCase;
import com.todoroo.astrid.utility.Flags;
public class RepeatTests extends DatabaseTestCase { public class RepeatTests extends DatabaseTestCase {
@ -51,15 +52,12 @@ public class RepeatTests extends DatabaseTestCase {
} }
private void saveAndTriggerRepeatListener(Task task) { private void saveAndTriggerRepeatListener(Task task) {
Flags.set(Flags.SUPPRESS_HOOKS);
if(task.isSaved()) if(task.isSaved())
taskDao.saveExisting(task); taskDao.saveExisting(task);
else else
taskDao.createNew(task); taskDao.createNew(task);
TodorooCursor<Task> query = taskDao.query(Query.select(Task.PROPERTIES));
System.err.println("START TRIGGER REPEAT LISTENER - " + query.getCount());
query.close();
Intent intent = new Intent(AstridApiConstants.BROADCAST_EVENT_TASK_COMPLETED); Intent intent = new Intent(AstridApiConstants.BROADCAST_EVENT_TASK_COMPLETED);
intent.putExtra(AstridApiConstants.EXTRAS_TASK_ID, task.getId()); intent.putExtra(AstridApiConstants.EXTRAS_TASK_ID, task.getId());
new RepeatTaskCompleteListener().onReceive(getContext(), intent); new RepeatTaskCompleteListener().onReceive(getContext(), intent);

Loading…
Cancel
Save