Skip to content

Commit d2dc900

Browse files
committed
[WIP] InitCalendarProviderRule
1 parent 2724e33 commit d2dc900

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

lib/src/androidTest/kotlin/at/bitfire/ical4android/impl/TestCalendar.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ package at.bitfire.ical4android.impl
99
import android.accounts.Account
1010
import android.content.ContentProviderClient
1111
import android.provider.CalendarContract.Calendars
12-
import android.provider.CalendarContract.Reminders
1312
import androidx.core.content.contentValuesOf
1413
import at.bitfire.synctools.storage.calendar.AndroidCalendar
1514
import at.bitfire.synctools.storage.calendar.AndroidCalendarProvider
@@ -30,7 +29,7 @@ object TestCalendar {
3029
?: provider.createAndGetCalendar(contentValuesOf(
3130
Calendars.NAME to UUID.randomUUID().toString(),
3231
Calendars.CALENDAR_DISPLAY_NAME to "ical4android Test Calendar",
33-
Calendars.ALLOWED_REMINDERS to Reminders.METHOD_DEFAULT)
32+
Calendars.CALENDAR_ACCESS_LEVEL to Calendars.CAL_ACCESS_ROOT)
3433
)
3534
}
3635

lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/AndroidCalendarTest.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,11 @@ class AndroidCalendarTest {
369369

370370
@Test
371371
fun testNumInstances_RecurringWithExceptions_MatchingOrigInstanceTime() {
372+
// TODO: Fails when
373+
// 1) Force-stop calendar storage
374+
// 2) Clear calendar storage
375+
// 3) Run this this class
376+
372377
val syncId = "recurring-with-exceptions"
373378
val id = calendar.addEvent(Entity(contentValuesOf(
374379
Events.CALENDAR_ID to calendar.id,

lib/src/main/kotlin/at/bitfire/synctools/test/InitCalendarProviderRule.kt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import android.Manifest
1010
import android.accounts.Account
1111
import android.content.ContentProviderClient
1212
import android.content.Entity
13-
import android.os.Build
1413
import android.provider.CalendarContract
1514
import android.provider.CalendarContract.Calendars
1615
import android.provider.CalendarContract.Events
@@ -53,8 +52,7 @@ class InitCalendarProviderRule private constructor() : ExternalResource() {
5352
override fun before() {
5453
if (!isInitialized) {
5554
logger.info("Initializing calendar provider")
56-
if (Build.VERSION.SDK_INT < 31)
57-
logger.warning("Calendar provider initialization may or may not work. See InitCalendarProviderRule")
55+
logger.warning("Calendar provider initialization may or may not work. See InitCalendarProviderRule")
5856

5957
val context = InstrumentationRegistry.getInstrumentation().targetContext
6058
val client = context.contentResolver.acquireContentProviderClient(CalendarContract.AUTHORITY)
@@ -84,18 +82,25 @@ class InitCalendarProviderRule private constructor() : ExternalResource() {
8482
val normalLocalEventId = calendar.addEvent(Entity(contentValuesOf(
8583
Events.CALENDAR_ID to calendar.id,
8684
Events.DTSTART to 1752075270000,
85+
Events.DURATION to "PT1H",
8786
Events.TITLE to "Event with 1 instance"
8887
)))
8988
calendar.numInstances(normalLocalEventId)
9089

9190
// recurring event init
9291
val recurringEventId = calendar.addEvent(Entity(contentValuesOf(
9392
Events.CALENDAR_ID to calendar.id,
94-
Events.DTSTART to 1752075410000,
93+
Events.DTSTART to 1752075410000, // Wed Jul 09 2025 15:36:50 GMT
94+
Events.DURATION to "PT1H",
9595
Events.TITLE to "Event over 22 years",
9696
Events.RRULE to "FREQ=YEARLY;UNTIL=20740119T010203Z"
9797
)))
98-
calendar.numInstances(recurringEventId)
98+
calendar.numInstances(recurringEventId) // 49
99+
100+
calendar.client.update(CalendarContract.CalendarCache.URI, contentValuesOf(
101+
CalendarContract.CalendarCache.KEY to CalendarContract.CalendarCache.KEY_TIMEZONE_TYPE,
102+
CalendarContract.CalendarCache.VALUE to CalendarContract.CalendarCache.TIMEZONE_TYPE_AUTO,
103+
),"${CalendarContract.CalendarCache.KEY}=?", arrayOf(CalendarContract.CalendarCache.KEY_TIMEZONE_TYPE))
99104
} finally {
100105
calendar.delete()
101106
}

0 commit comments

Comments
 (0)