aboutsummaryrefslogtreecommitdiff
path: root/tests/src/com/android
diff options
context:
space:
mode:
authorIsaac Katzenelson <isaack@android.com>2012-01-18 12:32:30 -0800
committerIsaac Katzenelson <isaack@android.com>2012-01-18 14:53:43 -0800
commitbbcfb96060e9b518b810015984081a25c8ae2c26 (patch)
tree418fc0b791532a6b556d6484bf4d754b91b3a52e /tests/src/com/android
parent996f12565f11ea0130cbdc570c0853ae53073f18 (diff)
downloadcalendar-bbcfb96060e9b518b810015984081a25c8ae2c26.tar.gz
Bug: 5876746 Android calendar syncing broken by certain repeated events Change-Id: Ia0b2bc610148302b1cc3d751c47a958950abfb46
Diffstat (limited to 'tests/src/com/android')
-rw-r--r--tests/src/com/android/calendarcommon/RecurrenceSetTest.java46
1 files changed, 37 insertions, 9 deletions
diff --git a/tests/src/com/android/calendarcommon/RecurrenceSetTest.java b/tests/src/com/android/calendarcommon/RecurrenceSetTest.java
index 5b29fc3..3b348b0 100644
--- a/tests/src/com/android/calendarcommon/RecurrenceSetTest.java
+++ b/tests/src/com/android/calendarcommon/RecurrenceSetTest.java
@@ -38,7 +38,7 @@ public class RecurrenceSetTest extends TestCase {
+ "RRULE:FREQ=DAILY;UNTIL=20080222T000000Z\n"
+ "EXDATE:20080222T120000Z";
verifyPopulateContentValues(recurrence, "FREQ=DAILY;UNTIL=20080222T000000Z", null,
- null, "20080222T120000Z", 1203595200000L, "America/New_York", "P43200S", 0);
+ null, "20080222T120000Z", 1203595200000L, "America/New_York", "P43200S", 0, false);
}
// Test 1 day all-day event
@@ -47,7 +47,7 @@ public class RecurrenceSetTest extends TestCase {
String recurrence = "DTSTART;VALUE=DATE:20090821\nDTEND;VALUE=DATE:20090822\n"
+ "RRULE:FREQ=YEARLY;WKST=SU";
verifyPopulateContentValues(recurrence, "FREQ=YEARLY;WKST=SU", null,
- null, null, 1250812800000L, "UTC", "P1D", 1);
+ null, null, 1250812800000L, "UTC", "P1D", 1, false);
}
// Test 2 day all-day event
@@ -56,7 +56,7 @@ public class RecurrenceSetTest extends TestCase {
String recurrence = "DTSTART;VALUE=DATE:20090821\nDTEND;VALUE=DATE:20090823\n"
+ "RRULE:FREQ=YEARLY;WKST=SU";
verifyPopulateContentValues(recurrence, "FREQ=YEARLY;WKST=SU", null,
- null, null, 1250812800000L, "UTC", "P2D", 1);
+ null, null, 1250812800000L, "UTC", "P2D", 1, false);
}
// Test multi-rule RRULE.
@@ -67,7 +67,7 @@ public class RecurrenceSetTest extends TestCase {
+ "RRULE:FREQ=MONTHLY;COUNT=3\n"
+ "DURATION:P2H";
verifyPopulateContentValues(recurrence, "FREQ=YEARLY;WKST=SU\nFREQ=MONTHLY;COUNT=3", null,
- null, null, 1250812800000L, "UTC", "P2H", 1 /*allDay*/);
+ null, null, 1250812800000L, "UTC", "P2H", 1 /*allDay*/, false);
// allDay=1 just means the start time is 00:00:00 UTC.
}
@@ -80,7 +80,7 @@ public class RecurrenceSetTest extends TestCase {
verifyPopulateContentValues(recurrence, null,
//"TZID=America/Los_Angeles;VALUE=DATE:20110601,20110602,20110603",
"America/Los_Angeles;20110601,20110602,20110603", // incorrect
- null, null, 1250841723000L, "America/Los_Angeles", "P2H", 0 /*allDay*/);
+ null, null, 1250841723000L, "America/Los_Angeles", "P2H", 0 /*allDay*/, false);
// allDay=1 just means the start time is 00:00:00 UTC.
}
@@ -91,29 +91,56 @@ public class RecurrenceSetTest extends TestCase {
+ "DTEND;TZID=America/New_York:20090821T110000\n"
+ "RRULE:FREQ=YEARLY\n";
verifyPopulateContentValues(recurrence, "FREQ=YEARLY", null,
- null, null, 1250863200000L, "America/Los_Angeles", "P3600S" /*P1H*/, 0 /*allDay*/);
+ null, null, 1250863200000L, "America/Los_Angeles", "P3600S" /*P1H*/, 0 /*allDay*/,
+ false);
// TODO: would like to use P1H for duration
String recurrence2 = "DTSTART;TZID=America/New_York:20090821T100000\n"
+ "DTEND;TZID=America/Los_Angeles:20090821T080000\n"
+ "RRULE:FREQ=YEARLY\n";
verifyPopulateContentValues(recurrence, "FREQ=YEARLY", null,
- null, null, 1250863200000L, "America/Los_Angeles", "P3600S" /*P1H*/, 0 /*allDay*/);
+ null, null, 1250863200000L, "America/Los_Angeles", "P3600S" /*P1H*/, 0 /*allDay*/,
+ false);
// TODO: should we rigorously define which tzid becomes the "event timezone"?
}
+ // Test a failure to parse the recurrence data
+ @SmallTest
+ public void testRecurrenceSetBadDstart() throws Exception {
+ String recurrence = "DTSTART;TZID=GMT+05:30:20080221T070000\n"
+ + "DTEND;TZID=GMT+05:30:20080221T190000\n"
+ + "RRULE:FREQ=DAILY;UNTIL=20080222T000000Z\n"
+ + "EXDATE:20080222T120000Z";
+ verifyPopulateContentValues(recurrence, "FREQ=DAILY;UNTIL=20080222T000000Z", null,
+ null, "20080222T120000Z", 1203595200000L, "America/New_York", "P43200S", 0, true);
+ }
+
+ @SmallTest
+ public void testRecurrenceSetBadRrule() throws Exception {
+ String recurrence = "DTSTART;TZID=America/New_York:20080221T070000\n"
+ + "DTEND;TZID=GMT+05:30:20080221T190000\n"
+ + "RRULE:FREQ=NEVER;UNTIL=20080222T000000Z\n"
+ + "EXDATE:20080222T120000Z";
+ verifyPopulateContentValues(recurrence, "FREQ=DAILY;UNTIL=20080222T000000Z", null,
+ null, "20080222T120000Z", 1203595200000L, "America/New_York", "P43200S", 0, true);
+ }
// run populateContentValues and verify the results
private void verifyPopulateContentValues(String recurrence, String rrule, String rdate,
- String exrule, String exdate, long dtstart, String tzid, String duration, int allDay)
+ String exrule, String exdate, long dtstart, String tzid, String duration, int allDay,
+ boolean badFormat)
throws ICalendar.FormatException {
ICalendar.Component recurrenceComponent =
new ICalendar.Component("DUMMY", null /* parent */);
ICalendar.parseComponent(recurrenceComponent, recurrence);
ContentValues values = new ContentValues();
- RecurrenceSet.populateContentValues(recurrenceComponent, values);
+ boolean result = RecurrenceSet.populateContentValues(recurrenceComponent, values);
Log.d("KS", "values " + values);
+ if (badFormat) {
+ assertEquals(result, !badFormat);
+ return;
+ }
assertEquals(rrule, values.get(android.provider.CalendarContract.Events.RRULE));
assertEquals(rdate, values.get(android.provider.CalendarContract.Events.RDATE));
assertEquals(exrule, values.get(android.provider.CalendarContract.Events.EXRULE));
@@ -124,4 +151,5 @@ public class RecurrenceSetTest extends TestCase {
assertEquals(allDay,
(int) values.getAsInteger(android.provider.CalendarContract.Events.ALL_DAY));
}
+
}