From 97c1d83968e0b323b2bb873eb4403b9ca55a1e4b Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Mon, 21 Dec 2020 17:02:59 -0600 Subject: [PATCH] Add disabled test for Thunderbird repeating task --- .../java/org/tasks/TestUtilities.kt | 14 ++++-- .../java/org/tasks/caldav/ThunderbirdTests.kt | 7 +++ .../thunderbird/completed_repeating_task.txt | 46 +++++++++++++++++++ 3 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 app/src/test/resources/thunderbird/completed_repeating_task.txt diff --git a/app/src/commonTest/java/org/tasks/TestUtilities.kt b/app/src/commonTest/java/org/tasks/TestUtilities.kt index bbe341a2c..0530588ca 100644 --- a/app/src/commonTest/java/org/tasks/TestUtilities.kt +++ b/app/src/commonTest/java/org/tasks/TestUtilities.kt @@ -31,12 +31,16 @@ object TestUtilities { private fun fromResource(path: String): at.bitfire.ical4android.Task = fromString(readFile(path)) - fun readFile(path: String): String { - val url = javaClass.classLoader!!.getResource(path) - val paths = Paths.get(url!!.toURI()) + private fun readFile(path: String): String { + val uri = javaClass.classLoader?.getResource(path)?.toURI() + ?: throw IllegalArgumentException() + val paths = Paths.get(uri) return String(Files.readAllBytes(paths), Charsets.UTF_8) } - fun fromString(task: String): at.bitfire.ical4android.Task = - task.let { tasksFromReader(StringReader(it))[0] } + private fun fromString(task: String): at.bitfire.ical4android.Task = + tasksFromReader(StringReader(task)) + .takeIf { it.size == 1 } + ?.first() + ?: throw IllegalStateException() } \ No newline at end of file diff --git a/app/src/test/java/org/tasks/caldav/ThunderbirdTests.kt b/app/src/test/java/org/tasks/caldav/ThunderbirdTests.kt index daec919c5..139cea540 100644 --- a/app/src/test/java/org/tasks/caldav/ThunderbirdTests.kt +++ b/app/src/test/java/org/tasks/caldav/ThunderbirdTests.kt @@ -4,6 +4,7 @@ import com.todoroo.astrid.data.Task import org.junit.After import org.junit.Assert.assertEquals import org.junit.Before +import org.junit.Ignore import org.junit.Test import org.tasks.TestUtilities.setup import org.tasks.TestUtilities.vtodo @@ -100,4 +101,10 @@ class ThunderbirdTests { "FREQ=WEEKLY;UNTIL=20200731T160000Z;BYDAY=MO,TU,WE,TH,FR", remote.rRule!!.value) } + + @Test + @Ignore + fun dontCrashOnMultipleTasks() { + vtodo("thunderbird/completed_repeating_task.txt") + } } \ No newline at end of file diff --git a/app/src/test/resources/thunderbird/completed_repeating_task.txt b/app/src/test/resources/thunderbird/completed_repeating_task.txt new file mode 100644 index 000000000..eae32ff1f --- /dev/null +++ b/app/src/test/resources/thunderbird/completed_repeating_task.txt @@ -0,0 +1,46 @@ +BEGIN:VCALENDAR +PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN +VERSION:2.0 +BEGIN:VTIMEZONE +TZID:America/Chicago +BEGIN:DAYLIGHT +TZOFFSETFROM:-0600 +TZOFFSETTO:-0500 +TZNAME:CDT +DTSTART:19700308T020000 +RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3 +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:-0500 +TZOFFSETTO:-0600 +TZNAME:CST +DTSTART:19701101T020000 +RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11 +END:STANDARD +END:VTIMEZONE +BEGIN:VTODO +CREATED:20201220T220126Z +LAST-MODIFIED:20201220T220139Z +DTSTAMP:20201220T220139Z +UID:e0600bbe-b9d0-ba48-80b0-998409625d03 +SUMMARY:Recurring +RRULE:FREQ=DAILY +DTSTART;TZID=America/Chicago:20201220T170000 +DUE;TZID=America/Chicago:20201220T170000 +X-MOZ-GENERATION:1 +END:VTODO +BEGIN:VTODO +CREATED:20201220T220135Z +LAST-MODIFIED:20201220T220139Z +DTSTAMP:20201220T220139Z +UID:e0600bbe-b9d0-ba48-80b0-998409625d03 +SUMMARY:Recurring +STATUS:COMPLETED +RECURRENCE-ID;TZID=America/Chicago:20201220T170000 +DTSTART;TZID=America/Chicago:20201220T170000 +DUE;TZID=America/Chicago:20201220T170000 +COMPLETED:20201220T220139Z +PERCENT-COMPLETE:100 +SEQUENCE:1 +END:VTODO +END:VCALENDAR \ No newline at end of file