Skip to content

Commit 8ed5798

Browse files
authored
Add test for #113 (#114)
1 parent d3f1c22 commit 8ed5798

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

lib/src/test/kotlin/at/bitfire/synctools/icalendar/Ical4jTest.kt

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
package at.bitfire.synctools.icalendar
88

99
import at.bitfire.ical4android.EventReader
10+
import at.bitfire.synctools.icalendar.validation.ICalPreprocessor
1011
import net.fortuna.ical4j.data.CalendarBuilder
1112
import net.fortuna.ical4j.data.ParserException
1213
import net.fortuna.ical4j.model.Component
@@ -15,6 +16,7 @@ import net.fortuna.ical4j.model.Parameter
1516
import net.fortuna.ical4j.model.TemporalAmountAdapter
1617
import net.fortuna.ical4j.model.TimeZone
1718
import net.fortuna.ical4j.model.TimeZoneRegistryFactory
19+
import net.fortuna.ical4j.model.component.VEvent
1820
import net.fortuna.ical4j.model.component.VTimeZone
1921
import net.fortuna.ical4j.model.parameter.Email
2022
import org.junit.Assert.assertEquals
@@ -108,6 +110,43 @@ class Ical4jTest {
108110
assertEquals("20210108T151500", dt.toString())
109111
}
110112

113+
@Test
114+
fun `DTSTART in America_Asuncion from KOrganizer`() {
115+
// See https://github.com/bitfireAT/synctools/issues/113
116+
val vtzFromKOrganizer = "BEGIN:VCALENDAR\n" +
117+
"CALSCALE:GREGORIAN\n" +
118+
"VERSION:2.0\n" +
119+
"PRODID:-//K Desktop Environment//NONSGML KOrganizer 6.5.0 (25.08.0)//EN\n" +
120+
"BEGIN:VTIMEZONE\n" +
121+
"TZID:America/Asuncion\n" +
122+
"BEGIN:STANDARD\n" +
123+
"TZNAME:-03\n" +
124+
"TZOFFSETFROM:-0300\n" +
125+
"TZOFFSETTO:-0300\n" +
126+
"DTSTART:19700101T000000\n" +
127+
"END:STANDARD\n" +
128+
"END:VTIMEZONE\n" +
129+
"BEGIN:VEVENT\n" +
130+
"DTSTAMP:20250828T233827Z\n" +
131+
"CREATED:20250828T233750Z\n" +
132+
"UID:e5d424b9-d3f6-4ee0-bf95-da7537fca1fe\n" +
133+
"LAST-MODIFIED:20250828T233827Z\n" +
134+
"SUMMARY:Test Timezones\n" +
135+
"RRULE:FREQ=WEEKLY;COUNT=3;BYDAY=TH\n" +
136+
"DTSTART;TZID=America/Asuncion:20250828T130000\n" +
137+
"DTEND;TZID=America/Asuncion:20250828T133000\n" +
138+
"TRANSP:OPAQUE\n" +
139+
"END:VEVENT\n" +
140+
"END:VCALENDAR"
141+
val iCalFromKOrganizer = CalendarBuilder().build(StringReader(vtzFromKOrganizer))
142+
ICalPreprocessor().preprocessCalendar(iCalFromKOrganizer)
143+
val vEvent = iCalFromKOrganizer.getComponent<VEvent>(Component.VEVENT)
144+
val dtStart = vEvent.startDate
145+
// SHOULD BE UTC -3:
146+
// assertEquals(1756396800000, dtStart.date.time)
147+
// However is one hour later: 1756400400000
148+
}
149+
111150
@Test
112151
fun testTzKarachi() {
113152
// https://github.com/ical4j/ical4j/issues/491

0 commit comments

Comments
 (0)