|
|
@ -2,6 +2,8 @@ package com.todoroo.astrid.repeats;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import android.content.Intent;
|
|
|
|
|
|
|
|
|
|
|
|
import com.google.ical.values.Frequency;
|
|
|
|
import com.google.ical.values.Frequency;
|
|
|
|
import com.google.ical.values.RRule;
|
|
|
|
import com.google.ical.values.RRule;
|
|
|
|
import com.timsu.astrid.R;
|
|
|
|
import com.timsu.astrid.R;
|
|
|
@ -9,6 +11,7 @@ import com.todoroo.andlib.data.TodorooCursor;
|
|
|
|
import com.todoroo.andlib.service.Autowired;
|
|
|
|
import com.todoroo.andlib.service.Autowired;
|
|
|
|
import com.todoroo.andlib.sql.Query;
|
|
|
|
import com.todoroo.andlib.sql.Query;
|
|
|
|
import com.todoroo.andlib.utility.DateUtilities;
|
|
|
|
import com.todoroo.andlib.utility.DateUtilities;
|
|
|
|
|
|
|
|
import com.todoroo.astrid.api.AstridApiConstants;
|
|
|
|
import com.todoroo.astrid.dao.MetadataDao;
|
|
|
|
import com.todoroo.astrid.dao.MetadataDao;
|
|
|
|
import com.todoroo.astrid.dao.TaskDao;
|
|
|
|
import com.todoroo.astrid.dao.TaskDao;
|
|
|
|
import com.todoroo.astrid.data.Metadata;
|
|
|
|
import com.todoroo.astrid.data.Metadata;
|
|
|
@ -18,8 +21,6 @@ import com.todoroo.astrid.utility.Preferences;
|
|
|
|
|
|
|
|
|
|
|
|
public class RepeatTests extends DatabaseTestCase {
|
|
|
|
public class RepeatTests extends DatabaseTestCase {
|
|
|
|
|
|
|
|
|
|
|
|
private static final int REPEAT_WAIT = 1500;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
TaskDao taskDao;
|
|
|
|
TaskDao taskDao;
|
|
|
|
|
|
|
|
|
|
|
@ -39,10 +40,7 @@ public class RepeatTests extends DatabaseTestCase {
|
|
|
|
taskDao.save(task);
|
|
|
|
taskDao.save(task);
|
|
|
|
|
|
|
|
|
|
|
|
task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
|
|
|
|
task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
|
|
|
|
taskDao.save(task);
|
|
|
|
saveAndTriggerRepeatListener(task);
|
|
|
|
|
|
|
|
|
|
|
|
// wait for repeat handler
|
|
|
|
|
|
|
|
Thread.sleep(REPEAT_WAIT);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.ID));
|
|
|
|
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.ID));
|
|
|
|
try {
|
|
|
|
try {
|
|
|
@ -52,6 +50,16 @@ public class RepeatTests extends DatabaseTestCase {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void saveAndTriggerRepeatListener(Task task) {
|
|
|
|
|
|
|
|
if(task.isSaved())
|
|
|
|
|
|
|
|
taskDao.saveExisting(task);
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
taskDao.createNew(task);
|
|
|
|
|
|
|
|
Intent intent = new Intent(AstridApiConstants.BROADCAST_EVENT_TASK_COMPLETED);
|
|
|
|
|
|
|
|
intent.putExtra(AstridApiConstants.EXTRAS_TASK_ID, task.getId());
|
|
|
|
|
|
|
|
new RepeatTaskCompleteListener().onReceive(getContext(), intent);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/** test daily repeat from due date, but with no due date set */
|
|
|
|
/** test daily repeat from due date, but with no due date set */
|
|
|
|
public void testDailyWithNoDueDate() throws Exception {
|
|
|
|
public void testDailyWithNoDueDate() throws Exception {
|
|
|
|
Task task = new Task();
|
|
|
|
Task task = new Task();
|
|
|
@ -63,10 +71,7 @@ public class RepeatTests extends DatabaseTestCase {
|
|
|
|
taskDao.save(task);
|
|
|
|
taskDao.save(task);
|
|
|
|
|
|
|
|
|
|
|
|
task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
|
|
|
|
task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
|
|
|
|
taskDao.save(task);
|
|
|
|
saveAndTriggerRepeatListener(task);
|
|
|
|
|
|
|
|
|
|
|
|
// wait for repeat handler
|
|
|
|
|
|
|
|
Thread.sleep(REPEAT_WAIT);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES));
|
|
|
|
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES));
|
|
|
|
try {
|
|
|
|
try {
|
|
|
@ -105,10 +110,7 @@ public class RepeatTests extends DatabaseTestCase {
|
|
|
|
taskDao.save(task);
|
|
|
|
taskDao.save(task);
|
|
|
|
|
|
|
|
|
|
|
|
task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
|
|
|
|
task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
|
|
|
|
taskDao.save(task);
|
|
|
|
saveAndTriggerRepeatListener(task);
|
|
|
|
|
|
|
|
|
|
|
|
// wait for repeat handler
|
|
|
|
|
|
|
|
Thread.sleep(REPEAT_WAIT);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES));
|
|
|
|
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES));
|
|
|
|
try {
|
|
|
|
try {
|
|
|
@ -147,10 +149,7 @@ public class RepeatTests extends DatabaseTestCase {
|
|
|
|
taskDao.save(task);
|
|
|
|
taskDao.save(task);
|
|
|
|
|
|
|
|
|
|
|
|
task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
|
|
|
|
task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
|
|
|
|
taskDao.save(task);
|
|
|
|
saveAndTriggerRepeatListener(task);
|
|
|
|
|
|
|
|
|
|
|
|
// wait for repeat handler
|
|
|
|
|
|
|
|
Thread.sleep(2 * REPEAT_WAIT);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES));
|
|
|
|
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES));
|
|
|
|
try {
|
|
|
|
try {
|
|
|
@ -190,10 +189,7 @@ public class RepeatTests extends DatabaseTestCase {
|
|
|
|
taskDao.save(task);
|
|
|
|
taskDao.save(task);
|
|
|
|
|
|
|
|
|
|
|
|
task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
|
|
|
|
task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
|
|
|
|
taskDao.save(task);
|
|
|
|
saveAndTriggerRepeatListener(task);
|
|
|
|
|
|
|
|
|
|
|
|
// wait for repeat handler
|
|
|
|
|
|
|
|
Thread.sleep(REPEAT_WAIT);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES));
|
|
|
|
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES));
|
|
|
|
try {
|
|
|
|
try {
|
|
|
@ -235,10 +231,7 @@ public class RepeatTests extends DatabaseTestCase {
|
|
|
|
metadataDao.persist(metadata);
|
|
|
|
metadataDao.persist(metadata);
|
|
|
|
|
|
|
|
|
|
|
|
task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
|
|
|
|
task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
|
|
|
|
taskDao.save(task);
|
|
|
|
saveAndTriggerRepeatListener(task);
|
|
|
|
|
|
|
|
|
|
|
|
// wait for repeat handler
|
|
|
|
|
|
|
|
Thread.sleep(REPEAT_WAIT);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TodorooCursor<Metadata> cursor = metadataDao.query(Query.select(Metadata.TASK));
|
|
|
|
TodorooCursor<Metadata> cursor = metadataDao.query(Query.select(Metadata.TASK));
|
|
|
|
try {
|
|
|
|
try {
|
|
|
@ -269,10 +262,7 @@ public class RepeatTests extends DatabaseTestCase {
|
|
|
|
taskDao.save(task);
|
|
|
|
taskDao.save(task);
|
|
|
|
|
|
|
|
|
|
|
|
task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
|
|
|
|
task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
|
|
|
|
taskDao.save(task);
|
|
|
|
saveAndTriggerRepeatListener(task);
|
|
|
|
|
|
|
|
|
|
|
|
// wait for repeat handler
|
|
|
|
|
|
|
|
Thread.sleep(REPEAT_WAIT);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES));
|
|
|
|
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES));
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|