Add Synology Calendar tests

pull/795/head
Alex Baker 5 years ago
parent 50ebd15a76
commit 05028004b3

@ -0,0 +1,19 @@
BEGIN:VCALENDAR
PRODID:-//Synology//EN
VERSION:2.0
BEGIN:VTODO
CREATED:20190111T085445
LAST-MOD:20190111T085445
UID:20190111T085445-ce536afd@172.18.0.1
DTSTAMP:20190111T085445
SUMMARY:No date
SEQUENCE:2
PRIORITY:0
PERCENT-COMPLETE:0
STATUS:COMPLETED
DESCRIPTION:
LOCATION:
PERCENT_COMPLETE:100
TRANSP:TRANSPARENT
END:VTODO
END:VCALENDAR

@ -0,0 +1,21 @@
BEGIN:VCALENDAR
PRODID:-//Synology//EN
VERSION:2.0
BEGIN:VTODO
CREATED:20190111T085501
LAST-MOD:20190111T085501
UID:20190111T085501-5f79396d@172.18.0.1
DTSTAMP:20190111T085501
SUMMARY:Date
DTSTART;VALUE=DATE:20190112
DUE;VALUE=DATE:20190112
SEQUENCE:2
PRIORITY:0
PERCENT-COMPLETE:0
STATUS:COMPLETED
DESCRIPTION:
LOCATION:
PERCENT_COMPLETE:100
TRANSP:TRANSPARENT
END:VTODO
END:VCALENDAR

@ -0,0 +1,115 @@
BEGIN:VCALENDAR
PRODID:-//Synology//EN
VERSION:2.0
BEGIN:VTODO
CREATED:20190111T085521
LAST-MOD:20190111T085521
UID:20190111T085521-951a3cf8@172.18.0.1
DTSTAMP:20190111T085521
SUMMARY:Date Time
DTSTART;TZID=Europe/Prague:20190112T080000
DUE;TZID=Europe/Prague:20190112T080000
SEQUENCE:2
PRIORITY:0
PERCENT-COMPLETE:0
STATUS:COMPLETED
DESCRIPTION:
LOCATION:
PERCENT_COMPLETE:100
TRANSP:TRANSPARENT
END:VTODO
BEGIN:VTIMEZONE
TZID:Europe/Prague
TZURL:http://tzurl.org/zoneinfo/Europe/Prague
X-LIC-LOCATION:Europe/Prague
LAST-MODIFIED:20160904T031233Z
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19810329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19961027T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:+005744
TZOFFSETTO:+005744
TZNAME:PMT
DTSTART:18500101T000000
RDATE:18500101T000000
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:+005744
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:18911001T000000
RDATE:18911001T000000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19160430T230000
RDATE:19160430T230000
RDATE:19170416T020000
RDATE:19180415T020000
RDATE:19400401T020000
RDATE:19430329T020000
RDATE:19440403T020000
RDATE:19450408T020000
RDATE:19460506T020000
RDATE:19470420T020000
RDATE:19480418T020000
RDATE:19490409T020000
RDATE:19790401T020000
RDATE:19800406T020000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19161001T010000
RDATE:19161001T010000
RDATE:19170917T030000
RDATE:19180916T030000
RDATE:19421102T030000
RDATE:19431004T030000
RDATE:19440917T030000
RDATE:19451118T030000
RDATE:19461006T030000
RDATE:19471005T030000
RDATE:19481003T030000
RDATE:19491002T030000
RDATE:19790930T030000
RDATE:19800928T030000
RDATE:19810927T030000
RDATE:19820926T030000
RDATE:19830925T030000
RDATE:19840930T030000
RDATE:19850929T030000
RDATE:19860928T030000
RDATE:19870927T030000
RDATE:19880925T030000
RDATE:19890924T030000
RDATE:19900930T030000
RDATE:19910929T030000
RDATE:19920927T030000
RDATE:19930926T030000
RDATE:19940925T030000
RDATE:19950924T030000
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19790101T000000
RDATE:19790101T000000
END:STANDARD
END:VTIMEZONE
END:VCALENDAR

@ -1,5 +1,29 @@
package com.todoroo.astrid.reminders;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InOrder;
import org.tasks.R;
import org.tasks.Snippet;
import org.tasks.injection.InjectingTestCase;
import org.tasks.injection.TestComponent;
import org.tasks.jobs.NotificationQueue;
import org.tasks.jobs.ReminderEntry;
import org.tasks.jobs.WorkManager;
import org.tasks.preferences.Preferences;
import org.tasks.reminders.Random;
import org.tasks.time.DateTime;
import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
import androidx.test.runner.AndroidJUnit4;
import static com.natpryce.makeiteasy.MakeItEasy.with;
import static com.todoroo.andlib.utility.DateUtilities.ONE_HOUR;
import static com.todoroo.andlib.utility.DateUtilities.ONE_WEEK;
@ -24,38 +48,21 @@ import static org.tasks.makers.TaskMaker.REMINDER_LAST;
import static org.tasks.makers.TaskMaker.SNOOZE_TIME;
import static org.tasks.makers.TaskMaker.newTask;
import androidx.test.runner.AndroidJUnit4;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InOrder;
import org.tasks.R;
import org.tasks.Snippet;
import org.tasks.injection.InjectingTestCase;
import org.tasks.injection.TestComponent;
import org.tasks.jobs.NotificationQueue;
import org.tasks.jobs.ReminderEntry;
import org.tasks.preferences.Preferences;
import org.tasks.reminders.Random;
import org.tasks.time.DateTime;
@RunWith(AndroidJUnit4.class)
public class ReminderServiceTest extends InjectingTestCase {
@Inject Preferences preferences;
@Inject TaskDao taskDao;
@Inject WorkManager workManager;
private ReminderService service;
private Random random;
private NotificationQueue jobs;
@Before
public void before() {
@Override
public void setUp() {
super.setUp();
workManager.init();
jobs = mock(NotificationQueue.class);
random = mock(Random.class);
when(random.nextFloat()).thenReturn(1.0f);

@ -26,6 +26,7 @@ import org.junit.runner.RunWith;
import org.tasks.R;
import org.tasks.injection.InjectingTestCase;
import org.tasks.injection.TestComponent;
import org.tasks.jobs.WorkManager;
import org.tasks.preferences.Preferences;
import org.tasks.time.DateTime;
@ -35,10 +36,12 @@ public class TitleParserTest extends InjectingTestCase {
@Inject TagService tagService;
@Inject Preferences preferences;
@Inject TaskCreator taskCreator;
@Inject WorkManager workManager;
@Override
public void setUp() {
super.setUp();
workManager.init();
preferences.setStringFromInteger(R.string.p_default_urgency_key, 0);
}

@ -0,0 +1,44 @@
package org.tasks.caldav;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.TimeZone;
import androidx.test.runner.AndroidJUnit4;
import static junit.framework.Assert.assertTrue;
import static org.tasks.TestUtilities.vtodo;
@RunWith(AndroidJUnit4.class)
public class SynologyTests {
private TimeZone defaultTimeZone = TimeZone.getDefault();
@Before
public void before() {
TimeZone.setDefault(TimeZone.getTimeZone("America/Chicago"));
}
@After
public void after() {
TimeZone.setDefault(defaultTimeZone);
}
@Test
public void completedWithoutDueDate() {
assertTrue(vtodo("synology/complete_no_due_date.txt").isCompleted());
}
@Test
public void completedWithDueDate() {
assertTrue(vtodo("synology/complete_with_date.txt").isCompleted());
}
@Test
public void completedWithDateTime() {
assertTrue(vtodo("synology/complete_with_date_time.txt").isCompleted());
}
}

@ -2,6 +2,8 @@ package org.tasks.injection;
import org.junit.Before;
import timber.log.Timber;
import static androidx.test.InstrumentationRegistry.getTargetContext;
import static org.tasks.TestUtilities.initializeMockito;
@ -9,6 +11,8 @@ public abstract class InjectingTestCase {
@Before
public void setUp() {
Thread.setDefaultUncaughtExceptionHandler((t, e) -> Timber.e(e));
initializeMockito(getTargetContext());
TestComponent component =

@ -5,6 +5,8 @@
*/
package org.tasks.jobs;
import android.net.Uri;
import static androidx.test.InstrumentationRegistry.getTargetContext;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;
@ -52,7 +54,7 @@ public class BackupServiceTests extends InjectingTestCase {
"Could not create temp directory: " + temporaryDirectory.getAbsolutePath());
}
preferences.setString(R.string.p_backup_dir, temporaryDirectory.getAbsolutePath());
preferences.setUri(R.string.p_backup_dir, Uri.fromFile(temporaryDirectory));
// make a temporary task
Task task = new Task();

@ -1,5 +1,6 @@
package org.tasks.caldav;
import static com.todoroo.andlib.utility.DateUtilities.now;
import static com.todoroo.astrid.data.Task.URGENCY_SPECIFIC_DAY;
import static com.todoroo.astrid.data.Task.URGENCY_SPECIFIC_DAY_TIME;
import static org.tasks.date.DateTimeUtils.newDateTime;
@ -29,7 +30,13 @@ public class CaldavConverter {
public static void apply(Task local, at.bitfire.ical4android.Task remote) {
Completed completedAt = remote.getCompletedAt();
if (completedAt == null) {
local.setCompletionDate(0L);
if (remote.getStatus() == Status.VTODO_COMPLETED) {
if (!local.isCompleted()) {
local.setCompletionDate(now());
}
} else {
local.setCompletionDate(0L);
}
} else {
local.setCompletionDate(remote.getCompletedAt().getDate().getTime());
}

Loading…
Cancel
Save