@@ -6,15 +6,14 @@ package at.bitfire.ical4android.validation
66
77import org.junit.Assert.assertEquals
88import org.junit.Assert.assertFalse
9+ import org.junit.Assert.assertNotEquals
910import org.junit.Assert.assertTrue
1011import org.junit.Test
1112import java.time.Duration
12- import java.time.format.DateTimeParseException
1313
1414class FixInvalidDayOffsetPreprocessorTest {
1515
16- private fun fixAndAssert (expected : String , testValue : String ) {
17-
16+ private fun fixParseAssertEqual (expected : String , testValue : String ) {
1817 // Fix the duration string
1918 val fixed = FixInvalidDayOffsetPreprocessor .fixString(testValue)
2019
@@ -28,6 +27,14 @@ class FixInvalidDayOffsetPreprocessorTest {
2827 assertEquals(expected, fixed)
2928 }
3029
30+ private fun fixAssertNotEqual (expected : String , testValue : String ) {
31+ // Fix the duration string
32+ val fixed = FixInvalidDayOffsetPreprocessor .fixString(testValue)
33+
34+ // Assert not equal
35+ assertNotEquals(expected, fixed)
36+ }
37+
3138 @Test
3239 fun test_FixString_NoOccurrence () {
3340 assertEquals(
@@ -40,48 +47,53 @@ class FixInvalidDayOffsetPreprocessorTest {
4047 fun test_FixString_SucceedsAsValueOnCorrectProperties () {
4148 // By RFC 5545 the only properties allowed to hold DURATION as a VALUE are:
4249 // DURATION, REFRESH, RELATED, TRIGGER
43- fixAndAssert (" DURATION;VALUE=DURATION:P1D" , " DURATION;VALUE=DURATION:PT1D" )
44- fixAndAssert (" REFRESH-INTERVAL;VALUE=DURATION:P1D" , " REFRESH-INTERVAL;VALUE=DURATION:PT1D" )
45- fixAndAssert (" RELATED-TO;VALUE=DURATION:P1D" , " RELATED-TO;VALUE=DURATION:PT1D" )
46- fixAndAssert (" TRIGGER;VALUE=DURATION:P1D" , " TRIGGER;VALUE=DURATION:PT1D" )
50+ fixParseAssertEqual (" DURATION;VALUE=DURATION:P1D" , " DURATION;VALUE=DURATION:PT1D" )
51+ fixParseAssertEqual (" REFRESH-INTERVAL;VALUE=DURATION:P1D" , " REFRESH-INTERVAL;VALUE=DURATION:PT1D" )
52+ fixParseAssertEqual (" RELATED-TO;VALUE=DURATION:P1D" , " RELATED-TO;VALUE=DURATION:PT1D" )
53+ fixParseAssertEqual (" TRIGGER;VALUE=DURATION:P1D" , " TRIGGER;VALUE=DURATION:PT1D" )
4754 }
4855
49- @Test(expected = DateTimeParseException :: class )
56+ @Test
5057 fun test_FixString_FailsAsValueOnWrongProperty () {
5158 // The update from RFC 2445 to RFC 5545 disallows using DURATION as a VALUE in FREEBUSY
52- fixAndAssert(" FREEBUSY;VALUE=DURATION:P1D" , " FREEBUSY;VALUE=DURATION:PT1D" )
59+ fixAssertNotEqual(" FREEBUSY;VALUE=DURATION:P1D" , " FREEBUSY;VALUE=DURATION:PT1D" )
60+ }
61+
62+ @Test
63+ fun test_FixString_FailsIfNotAtStartOfLine () {
64+ fixAssertNotEqual(" xxDURATION;VALUE=DURATION:P1D" , " xxDURATION;VALUE=DURATION:PT1D" )
5365 }
5466
5567 @Test
5668 fun test_FixString_DayOffsetFrom_Invalid () {
57- fixAndAssert (" DURATION:-P1D" , " DURATION:-PT1D" )
58- fixAndAssert (" TRIGGER:-P2D" , " TRIGGER:-PT2D" )
69+ fixParseAssertEqual (" DURATION:-P1D" , " DURATION:-PT1D" )
70+ fixParseAssertEqual (" TRIGGER:-P2D" , " TRIGGER:-PT2D" )
5971
60- fixAndAssert (" DURATION:-P1D" , " DURATION:-P1DT" )
61- fixAndAssert (" TRIGGER:-P2D" , " TRIGGER:-P2DT" )
72+ fixParseAssertEqual (" DURATION:-P1D" , " DURATION:-P1DT" )
73+ fixParseAssertEqual (" TRIGGER:-P2D" , " TRIGGER:-P2DT" )
6274 }
6375
6476 @Test
6577 fun test_FixString_DayOffsetFrom_Valid () {
66- fixAndAssert (" DURATION:-PT12H" , " DURATION:-PT12H" )
67- fixAndAssert (" TRIGGER:-PT12H" , " TRIGGER:-PT12H" )
78+ fixParseAssertEqual (" DURATION:-PT12H" , " DURATION:-PT12H" )
79+ fixParseAssertEqual (" TRIGGER:-PT12H" , " TRIGGER:-PT12H" )
6880 }
6981
7082 @Test
7183 fun test_FixString_DayOffsetFromMultiple_Invalid () {
72- fixAndAssert (" DURATION:-P1D\n TRIGGER:-P2D" , " DURATION:-PT1D\n TRIGGER:-PT2D" )
73- fixAndAssert (" DURATION:-P1D\n TRIGGER:-P2D" , " DURATION:-P1DT\n TRIGGER:-P2DT" )
84+ fixParseAssertEqual (" DURATION:-P1D\n TRIGGER:-P2D" , " DURATION:-PT1D\n TRIGGER:-PT2D" )
85+ fixParseAssertEqual (" DURATION:-P1D\n TRIGGER:-P2D" , " DURATION:-P1DT\n TRIGGER:-P2DT" )
7486 }
7587
7688 @Test
7789 fun test_FixString_DayOffsetFromMultiple_Valid () {
78- fixAndAssert (" DURATION:-PT12H\n TRIGGER:-PT12H" , " DURATION:-PT12H\n TRIGGER:-PT12H" )
90+ fixParseAssertEqual (" DURATION:-PT12H\n TRIGGER:-PT12H" , " DURATION:-PT12H\n TRIGGER:-PT12H" )
7991 }
8092
8193 @Test
8294 fun test_FixString_DayOffsetFromMultiple_Mixed () {
83- fixAndAssert (" DURATION:-P1D\n DURATION:-PT12H\n TRIGGER:-P2D" , " DURATION:-PT1D\n DURATION:-PT12H\n TRIGGER:-PT2D" )
84- fixAndAssert (" DURATION:-P1D\n DURATION:-PT12H\n TRIGGER:-P2D" , " DURATION:-P1DT\n DURATION:-PT12H\n TRIGGER:-P2DT" )
95+ fixParseAssertEqual (" DURATION:-P1D\n DURATION:-PT12H\n TRIGGER:-P2D" , " DURATION:-PT1D\n DURATION:-PT12H\n TRIGGER:-PT2D" )
96+ fixParseAssertEqual (" DURATION:-P1D\n DURATION:-PT12H\n TRIGGER:-P2D" , " DURATION:-P1DT\n DURATION:-PT12H\n TRIGGER:-P2DT" )
8597 }
8698
8799 @Test
0 commit comments