Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 9b218349 authored by Sunik Kupfer's avatar Sunik Kupfer Committed by GitHub
Browse files

Remove whitespace values from content providers (#109)



* Extend removeEmptyStrings to remove blank strings as well

* Apply removeEmptyAndBlankStrings to populateTask()

* Move removeBlankStrings() to extension method; minor changes

* Minor MiscUtils restructurizing

---------

Co-authored-by: default avatarRicki Hirner <hirner@bitfire.at>
parent aaf607c3
Loading
Loading
Loading
Loading
+4 −8
Original line number Original line Diff line number Diff line
@@ -16,17 +16,13 @@ import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.rule.GrantPermissionRule
import androidx.test.rule.GrantPermissionRule
import at.bitfire.ical4android.impl.TestCalendar
import at.bitfire.ical4android.impl.TestCalendar
import at.bitfire.ical4android.impl.TestEvent
import at.bitfire.ical4android.impl.TestEvent
import at.bitfire.ical4android.util.MiscUtils.ContentProviderClientHelper.closeCompat
import at.bitfire.ical4android.util.MiscUtils.asSyncAdapter
import at.bitfire.ical4android.util.MiscUtils.UriHelper.asSyncAdapter
import at.bitfire.ical4android.util.MiscUtils.closeCompat
import net.fortuna.ical4j.model.property.DtEnd
import net.fortuna.ical4j.model.property.DtEnd
import net.fortuna.ical4j.model.property.DtStart
import net.fortuna.ical4j.model.property.DtStart
import org.junit.AfterClass
import org.junit.*
import org.junit.Assert.assertEquals
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertNotNull
import org.junit.Before
import org.junit.BeforeClass
import org.junit.ClassRule
import org.junit.Test


class AndroidCalendarTest {
class AndroidCalendarTest {


@@ -121,7 +117,7 @@ class AndroidCalendarTest {
    }
    }


    private fun countColors(account: Account): Int {
    private fun countColors(account: Account): Int {
        val uri = Colors.CONTENT_URI.asSyncAdapter(testAccount)
        val uri = Colors.CONTENT_URI.asSyncAdapter(account)
        provider.query(uri, null, null, null, null)!!.use { cursor ->
        provider.query(uri, null, null, null, null)!!.use { cursor ->
            cursor.moveToNext()
            cursor.moveToNext()
            return cursor.count
            return cursor.count
+7 −36
Original line number Original line Diff line number Diff line
@@ -10,51 +10,22 @@ import android.content.ContentUris
import android.content.ContentValues
import android.content.ContentValues
import android.database.DatabaseUtils
import android.database.DatabaseUtils
import android.net.Uri
import android.net.Uri
import android.provider.CalendarContract.ACCOUNT_TYPE_LOCAL
import android.provider.CalendarContract.*
import android.provider.CalendarContract.AUTHORITY
import android.provider.CalendarContract.Attendees
import android.provider.CalendarContract.Calendars
import android.provider.CalendarContract.Events
import android.provider.CalendarContract.ExtendedProperties
import android.provider.CalendarContract.Reminders
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
import androidx.test.rule.GrantPermissionRule
import androidx.test.rule.GrantPermissionRule
import at.bitfire.ical4android.impl.TestCalendar
import at.bitfire.ical4android.impl.TestCalendar
import at.bitfire.ical4android.impl.TestEvent
import at.bitfire.ical4android.impl.TestEvent
import at.bitfire.ical4android.util.AndroidTimeUtils
import at.bitfire.ical4android.util.AndroidTimeUtils
import at.bitfire.ical4android.util.DateUtils
import at.bitfire.ical4android.util.DateUtils
import at.bitfire.ical4android.util.MiscUtils.ContentProviderClientHelper.closeCompat
import at.bitfire.ical4android.util.MiscUtils.asSyncAdapter
import at.bitfire.ical4android.util.MiscUtils.UriHelper.asSyncAdapter
import at.bitfire.ical4android.util.MiscUtils.closeCompat
import net.fortuna.ical4j.model.Date
import net.fortuna.ical4j.model.*
import net.fortuna.ical4j.model.DateList
import net.fortuna.ical4j.model.DateTime
import net.fortuna.ical4j.model.Parameter
import net.fortuna.ical4j.model.ParameterList
import net.fortuna.ical4j.model.Property
import net.fortuna.ical4j.model.component.VAlarm
import net.fortuna.ical4j.model.component.VAlarm
import net.fortuna.ical4j.model.parameter.Cn
import net.fortuna.ical4j.model.parameter.*
import net.fortuna.ical4j.model.parameter.CuType
import net.fortuna.ical4j.model.parameter.Email
import net.fortuna.ical4j.model.parameter.Language
import net.fortuna.ical4j.model.parameter.PartStat
import net.fortuna.ical4j.model.parameter.Related
import net.fortuna.ical4j.model.parameter.Role
import net.fortuna.ical4j.model.parameter.Rsvp
import net.fortuna.ical4j.model.parameter.Value
import net.fortuna.ical4j.model.property.*
import net.fortuna.ical4j.model.property.*
import net.fortuna.ical4j.util.TimeZones
import net.fortuna.ical4j.util.TimeZones
import org.junit.After
import org.junit.*
import org.junit.AfterClass
import org.junit.Assert.*
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertNotEquals
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertNull
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.BeforeClass
import org.junit.ClassRule
import org.junit.Test
import java.net.URI
import java.net.URI
import java.time.Duration
import java.time.Duration
import java.time.Period
import java.time.Period
+50 −71
Original line number Original line Diff line number Diff line
@@ -16,36 +16,15 @@ import at.bitfire.ical4android.util.DateUtils
import net.fortuna.ical4j.model.Date
import net.fortuna.ical4j.model.Date
import net.fortuna.ical4j.model.DateList
import net.fortuna.ical4j.model.DateList
import net.fortuna.ical4j.model.DateTime
import net.fortuna.ical4j.model.DateTime
import net.fortuna.ical4j.model.parameter.Email
import net.fortuna.ical4j.model.parameter.*
import net.fortuna.ical4j.model.parameter.RelType
import net.fortuna.ical4j.model.parameter.TzId
import net.fortuna.ical4j.model.parameter.TzId
import net.fortuna.ical4j.model.parameter.Value
import net.fortuna.ical4j.model.property.*
import net.fortuna.ical4j.model.parameter.XParameter
import net.fortuna.ical4j.model.property.Clazz
import net.fortuna.ical4j.model.property.Completed
import net.fortuna.ical4j.model.property.DtStart
import net.fortuna.ical4j.model.property.Due
import net.fortuna.ical4j.model.property.Duration
import net.fortuna.ical4j.model.property.ExDate
import net.fortuna.ical4j.model.property.Geo
import net.fortuna.ical4j.model.property.Organizer
import net.fortuna.ical4j.model.property.RDate
import net.fortuna.ical4j.model.property.RRule
import net.fortuna.ical4j.model.property.RelatedTo
import net.fortuna.ical4j.model.property.Status
import net.fortuna.ical4j.model.property.XProperty
import org.dmfs.tasks.contract.TaskContract
import org.dmfs.tasks.contract.TaskContract
import org.dmfs.tasks.contract.TaskContract.Properties
import org.dmfs.tasks.contract.TaskContract.*
import org.dmfs.tasks.contract.TaskContract.Property.Category
import org.dmfs.tasks.contract.TaskContract.Property.Category
import org.dmfs.tasks.contract.TaskContract.Property.Relation
import org.dmfs.tasks.contract.TaskContract.Property.Relation
import org.dmfs.tasks.contract.TaskContract.PropertyColumns
import org.dmfs.tasks.contract.TaskContract.Tasks
import org.junit.After
import org.junit.After
import org.junit.Assert.assertEquals
import org.junit.Assert.*
import org.junit.Assert.assertFalse
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertNull
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Before
import org.junit.Test
import org.junit.Test
import java.time.ZoneId
import java.time.ZoneId
@@ -97,7 +76,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Sequence() {
    fun testBuildTask_Sequence() {
        buildTask() {
        buildTask {
            sequence = 12345
            sequence = 12345
        }.let { result ->
        }.let { result ->
            assertEquals(12345, result.getAsInteger(Tasks.SYNC_VERSION))
            assertEquals(12345, result.getAsInteger(Tasks.SYNC_VERSION))
@@ -106,7 +85,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_CreatedAt() {
    fun testBuildTask_CreatedAt() {
        buildTask() {
        buildTask {
            createdAt = 1593771404  // Fri Jul 03 10:16:44 2020 UTC
            createdAt = 1593771404  // Fri Jul 03 10:16:44 2020 UTC
        }.let { result ->
        }.let { result ->
            assertEquals(1593771404, result.getAsLong(Tasks.CREATED))
            assertEquals(1593771404, result.getAsLong(Tasks.CREATED))
@@ -115,7 +94,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_LastModified() {
    fun testBuildTask_LastModified() {
        buildTask() {
        buildTask {
            lastModified = 1593771404
            lastModified = 1593771404
        }.let { result ->
        }.let { result ->
            assertEquals(1593771404, result.getAsLong(Tasks.LAST_MODIFIED))
            assertEquals(1593771404, result.getAsLong(Tasks.LAST_MODIFIED))
@@ -124,7 +103,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Summary() {
    fun testBuildTask_Summary() {
        buildTask() {
        buildTask {
            summary = "Sample Summary"
            summary = "Sample Summary"
        }.let { result ->
        }.let { result ->
            assertEquals("Sample Summary", result.get(Tasks.TITLE))
            assertEquals("Sample Summary", result.get(Tasks.TITLE))
@@ -133,7 +112,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Location() {
    fun testBuildTask_Location() {
        buildTask() {
        buildTask {
            location = "Sample Location"
            location = "Sample Location"
        }.let { result ->
        }.let { result ->
            assertEquals("Sample Location", result.get(Tasks.LOCATION))
            assertEquals("Sample Location", result.get(Tasks.LOCATION))
@@ -142,7 +121,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Geo() {
    fun testBuildTask_Geo() {
        buildTask() {
        buildTask {
            geoPosition = Geo(47.913563.toBigDecimal(), 16.159601.toBigDecimal())
            geoPosition = Geo(47.913563.toBigDecimal(), 16.159601.toBigDecimal())
        }.let { result ->
        }.let { result ->
            assertEquals("16.159601,47.913563", result.get(Tasks.GEO))
            assertEquals("16.159601,47.913563", result.get(Tasks.GEO))
@@ -151,7 +130,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Description() {
    fun testBuildTask_Description() {
        buildTask() {
        buildTask {
            description = "Sample Description"
            description = "Sample Description"
        }.let { result ->
        }.let { result ->
            assertEquals("Sample Description", result.get(Tasks.DESCRIPTION))
            assertEquals("Sample Description", result.get(Tasks.DESCRIPTION))
@@ -160,7 +139,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Color() {
    fun testBuildTask_Color() {
        buildTask() {
        buildTask {
            color = 0x11223344
            color = 0x11223344
        }.let { result ->
        }.let { result ->
            assertEquals(0x11223344, result.getAsInteger(Tasks.TASK_COLOR))
            assertEquals(0x11223344, result.getAsInteger(Tasks.TASK_COLOR))
@@ -169,7 +148,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Url() {
    fun testBuildTask_Url() {
        buildTask() {
        buildTask {
            url = "https://www.example.com"
            url = "https://www.example.com"
        }.let { result ->
        }.let { result ->
            assertEquals("https://www.example.com", result.getAsString(Tasks.URL))
            assertEquals("https://www.example.com", result.getAsString(Tasks.URL))
@@ -178,7 +157,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Organizer_MailTo() {
    fun testBuildTask_Organizer_MailTo() {
        buildTask() {
        buildTask {
            organizer = Organizer("mailto:organizer@example.com")
            organizer = Organizer("mailto:organizer@example.com")
        }.let { result ->
        }.let { result ->
            assertEquals("organizer@example.com", result.getAsString(Tasks.ORGANIZER))
            assertEquals("organizer@example.com", result.getAsString(Tasks.ORGANIZER))
@@ -187,7 +166,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Organizer_EmailParameter() {
    fun testBuildTask_Organizer_EmailParameter() {
        buildTask() {
        buildTask {
            organizer = Organizer("uri:unknown").apply {
            organizer = Organizer("uri:unknown").apply {
                parameters.add(Email("organizer@example.com"))
                parameters.add(Email("organizer@example.com"))
            }
            }
@@ -198,7 +177,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Organizer_NotEmail() {
    fun testBuildTask_Organizer_NotEmail() {
        buildTask() {
        buildTask {
            organizer = Organizer("uri:unknown")
            organizer = Organizer("uri:unknown")
        }.let { result ->
        }.let { result ->
            assertNull(result.get(Tasks.ORGANIZER))
            assertNull(result.get(Tasks.ORGANIZER))
@@ -207,7 +186,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Priority() {
    fun testBuildTask_Priority() {
        buildTask() {
        buildTask {
            priority = 2
            priority = 2
        }.let { result ->
        }.let { result ->
            assertEquals(2, result.getAsInteger(Tasks.PRIORITY))
            assertEquals(2, result.getAsInteger(Tasks.PRIORITY))
@@ -216,7 +195,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Classification_Public() {
    fun testBuildTask_Classification_Public() {
        buildTask() {
        buildTask {
            classification = Clazz.PUBLIC
            classification = Clazz.PUBLIC
        }.let { result ->
        }.let { result ->
            assertEquals(Tasks.CLASSIFICATION_PUBLIC, result.getAsInteger(Tasks.CLASSIFICATION))
            assertEquals(Tasks.CLASSIFICATION_PUBLIC, result.getAsInteger(Tasks.CLASSIFICATION))
@@ -225,7 +204,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Classification_Private() {
    fun testBuildTask_Classification_Private() {
        buildTask() {
        buildTask {
            classification = Clazz.PRIVATE
            classification = Clazz.PRIVATE
        }.let { result ->
        }.let { result ->
            assertEquals(Tasks.CLASSIFICATION_PRIVATE, result.getAsInteger(Tasks.CLASSIFICATION))
            assertEquals(Tasks.CLASSIFICATION_PRIVATE, result.getAsInteger(Tasks.CLASSIFICATION))
@@ -234,7 +213,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Classification_Confidential() {
    fun testBuildTask_Classification_Confidential() {
        buildTask() {
        buildTask {
            classification = Clazz.CONFIDENTIAL
            classification = Clazz.CONFIDENTIAL
        }.let { result ->
        }.let { result ->
            assertEquals(Tasks.CLASSIFICATION_CONFIDENTIAL, result.getAsInteger(Tasks.CLASSIFICATION))
            assertEquals(Tasks.CLASSIFICATION_CONFIDENTIAL, result.getAsInteger(Tasks.CLASSIFICATION))
@@ -243,7 +222,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Classification_Custom() {
    fun testBuildTask_Classification_Custom() {
        buildTask() {
        buildTask {
            classification = Clazz("x-custom")
            classification = Clazz("x-custom")
        }.let { result ->
        }.let { result ->
            assertEquals(Tasks.CLASSIFICATION_PRIVATE, result.getAsInteger(Tasks.CLASSIFICATION))
            assertEquals(Tasks.CLASSIFICATION_PRIVATE, result.getAsInteger(Tasks.CLASSIFICATION))
@@ -252,7 +231,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Classification_None() {
    fun testBuildTask_Classification_None() {
        buildTask() {
        buildTask {
        }.let { result ->
        }.let { result ->
            assertEquals(Tasks.CLASSIFICATION_DEFAULT /* null */, result.getAsInteger(Tasks.CLASSIFICATION))
            assertEquals(Tasks.CLASSIFICATION_DEFAULT /* null */, result.getAsInteger(Tasks.CLASSIFICATION))
        }
        }
@@ -260,7 +239,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Status_NeedsAction() {
    fun testBuildTask_Status_NeedsAction() {
        buildTask() {
        buildTask {
            status = Status.VTODO_NEEDS_ACTION
            status = Status.VTODO_NEEDS_ACTION
        }.let { result ->
        }.let { result ->
            assertEquals(Tasks.STATUS_NEEDS_ACTION, result.getAsInteger(Tasks.STATUS))
            assertEquals(Tasks.STATUS_NEEDS_ACTION, result.getAsInteger(Tasks.STATUS))
@@ -269,7 +248,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Status_Completed() {
    fun testBuildTask_Status_Completed() {
        buildTask() {
        buildTask {
            status = Status.VTODO_COMPLETED
            status = Status.VTODO_COMPLETED
        }.let { result ->
        }.let { result ->
            assertEquals(Tasks.STATUS_COMPLETED, result.getAsInteger(Tasks.STATUS))
            assertEquals(Tasks.STATUS_COMPLETED, result.getAsInteger(Tasks.STATUS))
@@ -278,7 +257,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Status_InProcess() {
    fun testBuildTask_Status_InProcess() {
        buildTask() {
        buildTask {
            status = Status.VTODO_IN_PROCESS
            status = Status.VTODO_IN_PROCESS
        }.let { result ->
        }.let { result ->
            assertEquals(Tasks.STATUS_IN_PROCESS, result.getAsInteger(Tasks.STATUS))
            assertEquals(Tasks.STATUS_IN_PROCESS, result.getAsInteger(Tasks.STATUS))
@@ -287,7 +266,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Status_Cancelled() {
    fun testBuildTask_Status_Cancelled() {
        buildTask() {
        buildTask {
            status = Status.VTODO_CANCELLED
            status = Status.VTODO_CANCELLED
        }.let { result ->
        }.let { result ->
            assertEquals(Tasks.STATUS_CANCELLED, result.getAsInteger(Tasks.STATUS))
            assertEquals(Tasks.STATUS_CANCELLED, result.getAsInteger(Tasks.STATUS))
@@ -296,7 +275,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_DtStart() {
    fun testBuildTask_DtStart() {
        buildTask() {
        buildTask {
            dtStart = DtStart("20200703T155722", tzVienna)
            dtStart = DtStart("20200703T155722", tzVienna)
        }.let { result ->
        }.let { result ->
            assertEquals(1593784642000L, result.getAsLong(Tasks.DTSTART))
            assertEquals(1593784642000L, result.getAsLong(Tasks.DTSTART))
@@ -307,7 +286,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_DtStart_AllDay() {
    fun testBuildTask_DtStart_AllDay() {
        buildTask() {
        buildTask {
            dtStart = DtStart(Date("20200703"))
            dtStart = DtStart(Date("20200703"))
        }.let { result ->
        }.let { result ->
            assertEquals(1593734400000L, result.getAsLong(Tasks.DTSTART))
            assertEquals(1593734400000L, result.getAsLong(Tasks.DTSTART))
@@ -318,7 +297,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Due() {
    fun testBuildTask_Due() {
        buildTask() {
        buildTask {
            due = Due(DateTime("20200703T155722", tzVienna))
            due = Due(DateTime("20200703T155722", tzVienna))
        }.let { result ->
        }.let { result ->
            assertEquals(1593784642000L, result.getAsLong(Tasks.DUE))
            assertEquals(1593784642000L, result.getAsLong(Tasks.DUE))
@@ -329,7 +308,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Due_AllDay() {
    fun testBuildTask_Due_AllDay() {
        buildTask() {
        buildTask {
            due = Due(Date("20200703"))
            due = Due(Date("20200703"))
        }.let { result ->
        }.let { result ->
            assertEquals(1593734400000L, result.getAsLong(Tasks.DUE))
            assertEquals(1593734400000L, result.getAsLong(Tasks.DUE))
@@ -340,7 +319,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_DtStart_NonAllDay_Due_AllDay() {
    fun testBuildTask_DtStart_NonAllDay_Due_AllDay() {
        buildTask() {
        buildTask {
            dtStart = DtStart(DateTime("20200101T010203"))
            dtStart = DtStart(DateTime("20200101T010203"))
            due = Due(Date("20200201"))
            due = Due(Date("20200201"))
        }.let { result ->
        }.let { result ->
@@ -351,7 +330,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_DtStart_AllDay_Due_NonAllDay() {
    fun testBuildTask_DtStart_AllDay_Due_NonAllDay() {
        buildTask() {
        buildTask {
            dtStart = DtStart(Date("20200101"))
            dtStart = DtStart(Date("20200101"))
            due = Due(DateTime("20200201T010203"))
            due = Due(DateTime("20200201T010203"))
        }.let { result ->
        }.let { result ->
@@ -362,7 +341,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_DtStart_AllDay_Due_AllDay() {
    fun testBuildTask_DtStart_AllDay_Due_AllDay() {
        buildTask() {
        buildTask {
            dtStart = DtStart(Date("20200101"))
            dtStart = DtStart(Date("20200101"))
            due = Due(Date("20200201"))
            due = Due(Date("20200201"))
        }.let { result ->
        }.let { result ->
@@ -372,7 +351,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_DtStart_FloatingTime() {
    fun testBuildTask_DtStart_FloatingTime() {
        buildTask() {
        buildTask {
            dtStart = DtStart("20200703T010203")
            dtStart = DtStart("20200703T010203")
        }.let { result ->
        }.let { result ->
            assertEquals(DateTime("20200703T010203").time, result.getAsLong(Tasks.DTSTART))
            assertEquals(DateTime("20200703T010203").time, result.getAsLong(Tasks.DTSTART))
@@ -383,7 +362,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_DtStart_Utc() {
    fun testBuildTask_DtStart_Utc() {
        buildTask() {
        buildTask {
            dtStart = DtStart(DateTime(1593730923000), true)
            dtStart = DtStart(DateTime(1593730923000), true)
        }.let { result ->
        }.let { result ->
            assertEquals(1593730923000L, result.getAsLong(Tasks.DTSTART))
            assertEquals(1593730923000L, result.getAsLong(Tasks.DTSTART))
@@ -394,7 +373,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Due_FloatingTime() {
    fun testBuildTask_Due_FloatingTime() {
        buildTask() {
        buildTask {
            due = Due("20200703T010203")
            due = Due("20200703T010203")
        }.let { result ->
        }.let { result ->
            assertEquals(DateTime("20200703T010203").time, result.getAsLong(Tasks.DUE))
            assertEquals(DateTime("20200703T010203").time, result.getAsLong(Tasks.DUE))
@@ -405,7 +384,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Due_Utc() {
    fun testBuildTask_Due_Utc() {
        buildTask() {
        buildTask {
            due = Due(DateTime(1593730923000).apply { isUtc = true })
            due = Due(DateTime(1593730923000).apply { isUtc = true })
        }.let { result ->
        }.let { result ->
            assertEquals(1593730923000L, result.getAsLong(Tasks.DUE))
            assertEquals(1593730923000L, result.getAsLong(Tasks.DUE))
@@ -416,7 +395,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_Duration() {
    fun testBuildTask_Duration() {
        buildTask() {
        buildTask {
            dtStart = DtStart(DateTime())
            dtStart = DtStart(DateTime())
            duration = Duration(null, "P1D")
            duration = Duration(null, "P1D")
        }.let { result ->
        }.let { result ->
@@ -427,7 +406,7 @@ class AndroidTaskTest(
    @Test
    @Test
    fun testBuildTask_CompletedAt() {
    fun testBuildTask_CompletedAt() {
        val now = DateTime()
        val now = DateTime()
        buildTask() {
        buildTask {
            completedAt = Completed(now)
            completedAt = Completed(now)
        }.let { result ->
        }.let { result ->
            // Note: iCalendar does not allow COMPLETED to be all-day [RFC 5545 3.8.2.1]
            // Note: iCalendar does not allow COMPLETED to be all-day [RFC 5545 3.8.2.1]
@@ -438,7 +417,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_PercentComplete() {
    fun testBuildTask_PercentComplete() {
        buildTask() {
        buildTask {
            percentComplete = 50
            percentComplete = 50
        }.let { result ->
        }.let { result ->
            assertEquals(50, result.getAsInteger(Tasks.PERCENT_COMPLETE))
            assertEquals(50, result.getAsInteger(Tasks.PERCENT_COMPLETE))
@@ -448,7 +427,7 @@ class AndroidTaskTest(
    @Test
    @Test
    fun testBuildTask_RRule() {
    fun testBuildTask_RRule() {
        // Note: OpenTasks only supports one RRULE per VTODO (iCalendar: multiple RRULEs are allowed, but SHOULD not be used)
        // Note: OpenTasks only supports one RRULE per VTODO (iCalendar: multiple RRULEs are allowed, but SHOULD not be used)
        buildTask() {
        buildTask {
            rRule = RRule("FREQ=DAILY;COUNT=10")
            rRule = RRule("FREQ=DAILY;COUNT=10")
        }.let { result ->
        }.let { result ->
            assertEquals("FREQ=DAILY;COUNT=10", result.getAsString(Tasks.RRULE))
            assertEquals("FREQ=DAILY;COUNT=10", result.getAsString(Tasks.RRULE))
@@ -457,7 +436,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_RDate() {
    fun testBuildTask_RDate() {
        buildTask() {
        buildTask {
            dtStart = DtStart(DateTime("20200101T010203", tzVienna))
            dtStart = DtStart(DateTime("20200101T010203", tzVienna))
            rDates += RDate(DateList("20200102T020304", Value.DATE_TIME, tzVienna))
            rDates += RDate(DateList("20200102T020304", Value.DATE_TIME, tzVienna))
            rDates += RDate(DateList("20200102T020304", Value.DATE_TIME, tzChicago))
            rDates += RDate(DateList("20200102T020304", Value.DATE_TIME, tzChicago))
@@ -471,7 +450,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_ExDate() {
    fun testBuildTask_ExDate() {
        buildTask() {
        buildTask {
            dtStart = DtStart(DateTime("20200101T010203", tzVienna))
            dtStart = DtStart(DateTime("20200101T010203", tzVienna))
            rRule = RRule("FREQ=DAILY;COUNT=10")
            rRule = RRule("FREQ=DAILY;COUNT=10")
            exDates += ExDate(DateList("20200102T020304", Value.DATE_TIME, tzVienna))
            exDates += ExDate(DateList("20200102T020304", Value.DATE_TIME, tzVienna))
@@ -488,7 +467,7 @@ class AndroidTaskTest(
    fun testBuildTask_Categories() {
    fun testBuildTask_Categories() {
        var hasCat1 = false
        var hasCat1 = false
        var hasCat2 = false
        var hasCat2 = false
        buildTask() {
        buildTask {
            categories.addAll(arrayOf("Cat_1", "Cat 2"))
            categories.addAll(arrayOf("Cat_1", "Cat 2"))
        }.let { result ->
        }.let { result ->
            val id = result.getAsLong(Tasks._ID)
            val id = result.getAsLong(Tasks._ID)
@@ -521,7 +500,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_RelatedTo_Parent() {
    fun testBuildTask_RelatedTo_Parent() {
        buildTask() {
        buildTask {
            relatedTo.add(RelatedTo("Parent-Task").apply {
            relatedTo.add(RelatedTo("Parent-Task").apply {
                parameters.add(RelType.PARENT)
                parameters.add(RelType.PARENT)
            })
            })
@@ -536,7 +515,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_RelatedTo_Child() {
    fun testBuildTask_RelatedTo_Child() {
        buildTask() {
        buildTask {
            relatedTo.add(RelatedTo("Child-Task").apply {
            relatedTo.add(RelatedTo("Child-Task").apply {
                parameters.add(RelType.CHILD)
                parameters.add(RelType.CHILD)
            })
            })
@@ -551,7 +530,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_RelatedTo_Sibling() {
    fun testBuildTask_RelatedTo_Sibling() {
        buildTask() {
        buildTask {
            relatedTo.add(RelatedTo("Sibling-Task").apply {
            relatedTo.add(RelatedTo("Sibling-Task").apply {
                parameters.add(RelType.SIBLING)
                parameters.add(RelType.SIBLING)
            })
            })
@@ -566,7 +545,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_RelatedTo_Custom() {
    fun testBuildTask_RelatedTo_Custom() {
        buildTask() {
        buildTask {
            relatedTo.add(RelatedTo("Sibling-Task").apply {
            relatedTo.add(RelatedTo("Sibling-Task").apply {
                parameters.add(RelType("custom-relationship"))
                parameters.add(RelType("custom-relationship"))
            })
            })
@@ -581,7 +560,7 @@ class AndroidTaskTest(


    @Test
    @Test
    fun testBuildTask_RelatedTo_Default() {
    fun testBuildTask_RelatedTo_Default() {
        buildTask() {
        buildTask {
            relatedTo.add(RelatedTo("Parent-Task"))
            relatedTo.add(RelatedTo("Parent-Task"))
        }.let { result ->
        }.let { result ->
            val taskId = result.getAsLong(Tasks._ID)
            val taskId = result.getAsLong(Tasks._ID)
@@ -599,7 +578,7 @@ class AndroidTaskTest(
            parameters.add(TzId(tzVienna.id))
            parameters.add(TzId(tzVienna.id))
            parameters.add(XParameter("X-TEST-PARAMETER", "12345"))
            parameters.add(XParameter("X-TEST-PARAMETER", "12345"))
        }
        }
        buildTask() {
        buildTask {
            unknownProperties.add(xProperty)
            unknownProperties.add(xProperty)
        }.let { result ->
        }.let { result ->
            val taskId = result.getAsLong(Tasks._ID)
            val taskId = result.getAsLong(Tasks._ID)
+1 −1
Original line number Original line Diff line number Diff line
@@ -12,7 +12,7 @@ import android.net.Uri
import android.provider.CalendarContract
import android.provider.CalendarContract
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.rule.GrantPermissionRule
import androidx.test.rule.GrantPermissionRule
import at.bitfire.ical4android.util.MiscUtils.ContentProviderClientHelper.closeCompat
import at.bitfire.ical4android.util.MiscUtils.closeCompat
import org.junit.After
import org.junit.After
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertNotNull
import org.junit.Before
import org.junit.Before
+2 −7
Original line number Original line Diff line number Diff line
@@ -15,18 +15,13 @@ import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.rule.GrantPermissionRule
import androidx.test.rule.GrantPermissionRule
import at.bitfire.ical4android.impl.TestCalendar
import at.bitfire.ical4android.impl.TestCalendar
import at.bitfire.ical4android.impl.TestEvent
import at.bitfire.ical4android.impl.TestEvent
import at.bitfire.ical4android.util.MiscUtils.ContentProviderClientHelper.closeCompat
import at.bitfire.ical4android.util.MiscUtils.closeCompat
import net.fortuna.ical4j.model.property.Attendee
import net.fortuna.ical4j.model.property.Attendee
import net.fortuna.ical4j.model.property.DtEnd
import net.fortuna.ical4j.model.property.DtEnd
import net.fortuna.ical4j.model.property.DtStart
import net.fortuna.ical4j.model.property.DtStart
import org.junit.After
import org.junit.*
import org.junit.AfterClass
import org.junit.Assert.assertEquals
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertNotNull
import org.junit.Before
import org.junit.BeforeClass
import org.junit.ClassRule
import org.junit.Test
import java.net.URI
import java.net.URI
import java.util.Arrays
import java.util.Arrays


Loading