Lines 508-514
function run_test() {
Link Here
|
508 |
}); |
508 |
}); |
509 |
} |
509 |
} |
510 |
|
510 |
|
511 |
add_task(function* test_migrate_cache() { |
511 |
add_task(async function test_migrate_cache() { |
512 |
let uriString = "googleapi://xpcshell/?calendar=xpcshell%40example.com"; |
512 |
let uriString = "googleapi://xpcshell/?calendar=xpcshell%40example.com"; |
513 |
let uri = Services.io.newURI(uriString); |
513 |
let uri = Services.io.newURI(uriString); |
514 |
let client = cal.getCalendarManager().createCalendar("gdata", uri); |
514 |
let client = cal.getCalendarManager().createCalendar("gdata", uri); |
Lines 520-545
add_task(function* test_migrate_cache() {
Link Here
|
520 |
}); |
520 |
}); |
521 |
|
521 |
|
522 |
// No version, should not reset |
522 |
// No version, should not reset |
523 |
equal(yield migrateStorageCache(), false); |
523 |
equal(await migrateStorageCache(), false); |
524 |
equal(client.getProperty("cache.version"), 3); |
524 |
equal(client.getProperty("cache.version"), 3); |
525 |
|
525 |
|
526 |
// Check migrate 1 -> 2 |
526 |
// Check migrate 1 -> 2 |
527 |
unwrapped.CACHE_DB_VERSION = 2; |
527 |
unwrapped.CACHE_DB_VERSION = 2; |
528 |
client.setProperty("cache.version", 1); |
528 |
client.setProperty("cache.version", 1); |
529 |
equal(yield migrateStorageCache(), true); |
529 |
equal(await migrateStorageCache(), true); |
530 |
equal(client.getProperty("cache.version"), 2); |
530 |
equal(client.getProperty("cache.version"), 2); |
531 |
|
531 |
|
532 |
// Check migrate 2 -> 3 normal calendar |
532 |
// Check migrate 2 -> 3 normal calendar |
533 |
unwrapped.CACHE_DB_VERSION = 3; |
533 |
unwrapped.CACHE_DB_VERSION = 3; |
534 |
client.setProperty("cache.version", 2); |
534 |
client.setProperty("cache.version", 2); |
535 |
equal(yield migrateStorageCache(), false); |
535 |
equal(await migrateStorageCache(), false); |
536 |
|
536 |
|
537 |
// Check migrate 2 -> 3 birthday calendar |
537 |
// Check migrate 2 -> 3 birthday calendar |
538 |
unwrapped.CACHE_DB_VERSION = 3; |
538 |
unwrapped.CACHE_DB_VERSION = 3; |
539 |
uri = "googleapi://xpcshell/?calendar=%23contacts%40group.v.calendar.google.com"; |
539 |
uri = "googleapi://xpcshell/?calendar=%23contacts%40group.v.calendar.google.com"; |
540 |
unwrapped.uri = Services.io.newURI(uri); |
540 |
unwrapped.uri = Services.io.newURI(uri); |
541 |
client.setProperty("cache.version", 2); |
541 |
client.setProperty("cache.version", 2); |
542 |
equal(yield migrateStorageCache(), true); |
542 |
equal(await migrateStorageCache(), true); |
543 |
}); |
543 |
}); |
544 |
|
544 |
|
545 |
add_test(function test_migrate_uri() { |
545 |
add_test(function test_migrate_uri() { |
Lines 573-579
add_test(function test_migrate_uri() {
Link Here
|
573 |
run_next_test(); |
573 |
run_next_test(); |
574 |
}); |
574 |
}); |
575 |
|
575 |
|
576 |
add_task(function* test_dateToJSON() { |
576 |
add_task(async function test_dateToJSON() { |
577 |
function _createDateTime(tzid, offset=0) { |
577 |
function _createDateTime(tzid, offset=0) { |
578 |
let offsetFrom = offset <= 0 ? "-0" + (offset - 1) : "+0" + (offset - 1) + "00"; |
578 |
let offsetFrom = offset <= 0 ? "-0" + (offset - 1) : "+0" + (offset - 1) + "00"; |
579 |
let offsetTo = "+0" + offset + "00"; |
579 |
let offsetTo = "+0" + offset + "00"; |
Lines 672-678
add_task(function* test_dateToJSON() {
Link Here
|
672 |
deepEqual(dateToJSON(date), { date: "2015-01-30" }); |
672 |
deepEqual(dateToJSON(date), { date: "2015-01-30" }); |
673 |
}); |
673 |
}); |
674 |
|
674 |
|
675 |
add_task(function* test_JSONToDate() { |
675 |
add_task(async function test_JSONToDate() { |
676 |
function convert(aEntry, aTimezone="Europe/Berlin") { |
676 |
function convert(aEntry, aTimezone="Europe/Berlin") { |
677 |
let tzs = cal.getTimezoneService(); |
677 |
let tzs = cal.getTimezoneService(); |
678 |
let calendarTz = tzs.getTimezone(aTimezone); |
678 |
let calendarTz = tzs.getTimezone(aTimezone); |
Lines 716-724
add_task(function* test_JSONToDate() {
Link Here
|
716 |
equal(convert({ dateTime: "2015-01-02T03:04:05+05:00" }), "20150102T030405 in Antarctica/Mawson"); |
716 |
equal(convert({ dateTime: "2015-01-02T03:04:05+05:00" }), "20150102T030405 in Antarctica/Mawson"); |
717 |
}); |
717 |
}); |
718 |
|
718 |
|
719 |
add_task(function* test_organizerCN() { |
719 |
add_task(async function test_organizerCN() { |
720 |
gServer.events = []; |
720 |
gServer.events = []; |
721 |
let client = yield gServer.getClient(); |
721 |
let client = await gServer.getClient(); |
722 |
equal(client.getProperty("organizerCN"), null); |
722 |
equal(client.getProperty("organizerCN"), null); |
723 |
gServer.resetClient(client); |
723 |
gServer.resetClient(client); |
724 |
|
724 |
|
Lines 735-746
add_task(function* test_organizerCN() {
Link Here
|
735 |
end: { dateTime: "2006-06-10T20:00:00+02:00" }, |
735 |
end: { dateTime: "2006-06-10T20:00:00+02:00" }, |
736 |
iCalUID: "go6ijb0b46hlpbu4eeu92njevo@google.com" |
736 |
iCalUID: "go6ijb0b46hlpbu4eeu92njevo@google.com" |
737 |
}]; |
737 |
}]; |
738 |
client = yield gServer.getClient(); |
738 |
client = await gServer.getClient(); |
739 |
equal(client.getProperty("organizerCN"), gServer.creator.displayName); |
739 |
equal(client.getProperty("organizerCN"), gServer.creator.displayName); |
740 |
gServer.resetClient(client); |
740 |
gServer.resetClient(client); |
741 |
}); |
741 |
}); |
742 |
|
742 |
|
743 |
add_task(function* test_always_readOnly() { |
743 |
add_task(async function test_always_readOnly() { |
744 |
gServer.events = [{ |
744 |
gServer.events = [{ |
745 |
kind: "calendar#event", |
745 |
kind: "calendar#event", |
746 |
etag: "\"2299601498276000\"", |
746 |
etag: "\"2299601498276000\"", |
Lines 755-780
add_task(function* test_always_readOnly() {
Link Here
|
755 |
iCalUID: "go6ijb0b46hlpbu4eeu92njevo@google.com" |
755 |
iCalUID: "go6ijb0b46hlpbu4eeu92njevo@google.com" |
756 |
}]; |
756 |
}]; |
757 |
gServer.calendarListData.accessRole = "freeBusyReader"; |
757 |
gServer.calendarListData.accessRole = "freeBusyReader"; |
758 |
let client = yield gServer.getClient(); |
758 |
let client = await gServer.getClient(); |
759 |
let pclient = cal.async.promisifyCalendar(client); |
759 |
let pclient = cal.async.promisifyCalendar(client); |
760 |
ok(client.readOnly); |
760 |
ok(client.readOnly); |
761 |
client.readOnly = false; |
761 |
client.readOnly = false; |
762 |
ok(client.readOnly); |
762 |
ok(client.readOnly); |
763 |
|
763 |
|
764 |
let items = yield pclient.getAllItems(); |
764 |
let items = await pclient.getAllItems(); |
765 |
equal(items.length, 1); |
765 |
equal(items.length, 1); |
766 |
notEqual(items[0].title, "New Event"); |
766 |
notEqual(items[0].title, "New Event"); |
767 |
gServer.resetClient(client); |
767 |
gServer.resetClient(client); |
768 |
|
768 |
|
769 |
gServer.calendarListData.accessRole = "reader"; |
769 |
gServer.calendarListData.accessRole = "reader"; |
770 |
client = yield gServer.getClient(); |
770 |
client = await gServer.getClient(); |
771 |
ok(client.readOnly); |
771 |
ok(client.readOnly); |
772 |
client.readOnly = false; |
772 |
client.readOnly = false; |
773 |
ok(client.readOnly); |
773 |
ok(client.readOnly); |
774 |
gServer.resetClient(client); |
774 |
gServer.resetClient(client); |
775 |
}); |
775 |
}); |
776 |
|
776 |
|
777 |
add_task(function* test_reset_sync() { |
777 |
add_task(async function test_reset_sync() { |
778 |
gServer.tasks = [{ |
778 |
gServer.tasks = [{ |
779 |
kind: "tasks#task", |
779 |
kind: "tasks#task", |
780 |
id: "MTEyMDE2MDE5NzE0NjYzMDk4ODI6MDo0MDI1NDg2NjU", |
780 |
id: "MTEyMDE2MDE5NzE0NjYzMDk4ODI6MDo0MDI1NDg2NjU", |
Lines 819-836
add_task(function* test_reset_sync() {
Link Here
|
819 |
end: { dateTime: "2006-06-10T20:00:00+02:00" }, |
819 |
end: { dateTime: "2006-06-10T20:00:00+02:00" }, |
820 |
iCalUID: "fepf8uf6n7n04w7feukucs9n8e@google.com" |
820 |
iCalUID: "fepf8uf6n7n04w7feukucs9n8e@google.com" |
821 |
}]; |
821 |
}]; |
822 |
let client = yield gServer.getClient(); |
822 |
let client = await gServer.getClient(); |
823 |
let uncached = client.wrappedJSObject.mUncachedCalendar.wrappedJSObject; |
823 |
let uncached = client.wrappedJSObject.mUncachedCalendar.wrappedJSObject; |
824 |
let pclient = cal.async.promisifyCalendar(client); |
824 |
let pclient = cal.async.promisifyCalendar(client); |
825 |
|
825 |
|
826 |
let items = yield pclient.getAllItems(); |
826 |
let items = await pclient.getAllItems(); |
827 |
equal(items.length, 4); |
827 |
equal(items.length, 4); |
828 |
|
828 |
|
829 |
notEqual(client.getProperty("syncToken.events"), ""); |
829 |
notEqual(client.getProperty("syncToken.events"), ""); |
830 |
notEqual(client.getProperty("lastUpdated.tasks"), ""); |
830 |
notEqual(client.getProperty("lastUpdated.tasks"), ""); |
831 |
|
831 |
|
832 |
yield uncached.resetSync(); |
832 |
await uncached.resetSync(); |
833 |
items = yield pclient.getAllItems(); |
833 |
items = await pclient.getAllItems(); |
834 |
equal(items.length, 0); |
834 |
equal(items.length, 0); |
835 |
|
835 |
|
836 |
equal(client.getProperty("syncToken.events"), ""); |
836 |
equal(client.getProperty("syncToken.events"), ""); |
Lines 839-845
add_task(function* test_reset_sync() {
Link Here
|
839 |
gServer.resetClient(client); |
839 |
gServer.resetClient(client); |
840 |
}); |
840 |
}); |
841 |
|
841 |
|
842 |
add_task(function* test_basicItems() { |
842 |
add_task(async function test_basicItems() { |
843 |
gServer.events = [{ |
843 |
gServer.events = [{ |
844 |
kind: "calendar#event", |
844 |
kind: "calendar#event", |
845 |
etag: "\"2299601498276000\"", |
845 |
etag: "\"2299601498276000\"", |
Lines 903-912
add_task(function* test_basicItems() {
Link Here
|
903 |
}] |
903 |
}] |
904 |
}]; |
904 |
}]; |
905 |
|
905 |
|
906 |
let client = yield gServer.getClient(); |
906 |
let client = await gServer.getClient(); |
907 |
let pclient = cal.async.promisifyCalendar(client); |
907 |
let pclient = cal.async.promisifyCalendar(client); |
908 |
|
908 |
|
909 |
let items = yield pclient.getAllItems(); |
909 |
let items = await pclient.getAllItems(); |
910 |
equal(items.length, 2); |
910 |
equal(items.length, 2); |
911 |
|
911 |
|
912 |
let event = cal.item.isEvent(items[0]) ? items[0] : items[1]; |
912 |
let event = cal.item.isEvent(items[0]) ? items[0] : items[1]; |
Lines 965-972
add_task(function* test_basicItems() {
Link Here
|
965 |
gServer.resetClient(client); |
965 |
gServer.resetClient(client); |
966 |
}); |
966 |
}); |
967 |
|
967 |
|
968 |
add_task(function* test_addModifyDeleteItem() { |
968 |
add_task(async function test_addModifyDeleteItem() { |
969 |
let client = yield gServer.getClient(); |
969 |
let client = await gServer.getClient(); |
970 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
970 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
971 |
equal(gServer.events.length, 0); |
971 |
equal(gServer.events.length, 0); |
972 |
equal(gServer.tasks.length, 0); |
972 |
equal(gServer.tasks.length, 0); |
Lines 1016-1026
add_task(function* test_addModifyDeleteItem() {
Link Here
|
1016 |
].join("\r\n")); |
1016 |
].join("\r\n")); |
1017 |
|
1017 |
|
1018 |
// Add an event |
1018 |
// Add an event |
1019 |
let addedEvent = yield pclient.adoptItem(event); |
1019 |
let addedEvent = await pclient.adoptItem(event); |
1020 |
notEqual(addedEvent.id, null); |
1020 |
notEqual(addedEvent.id, null); |
1021 |
equal(addedEvent.organizer.id, "mailto:xpcshell@example.com"); |
1021 |
equal(addedEvent.organizer.id, "mailto:xpcshell@example.com"); |
1022 |
|
1022 |
|
1023 |
let items = yield pclient.getAllItems(); |
1023 |
let items = await pclient.getAllItems(); |
1024 |
equal(items.length, 1); |
1024 |
equal(items.length, 1); |
1025 |
equal(items[0].id, addedEvent.id); |
1025 |
equal(items[0].id, addedEvent.id); |
1026 |
equal(items[0].organizer.id, "mailto:xpcshell@example.com"); |
1026 |
equal(items[0].organizer.id, "mailto:xpcshell@example.com"); |
Lines 1029-1038
add_task(function* test_addModifyDeleteItem() {
Link Here
|
1029 |
equal(gServer.tasks.length, 0); |
1029 |
equal(gServer.tasks.length, 0); |
1030 |
|
1030 |
|
1031 |
// Add a task |
1031 |
// Add a task |
1032 |
let addedTask = yield pclient.adoptItem(task); |
1032 |
let addedTask = await pclient.adoptItem(task); |
1033 |
notEqual(addedTask.id, null); |
1033 |
notEqual(addedTask.id, null); |
1034 |
|
1034 |
|
1035 |
items = yield pclient.getAllItems(); |
1035 |
items = await pclient.getAllItems(); |
1036 |
equal(items.length, 2); |
1036 |
equal(items.length, 2); |
1037 |
equal(items[1].id, addedTask.id); |
1037 |
equal(items[1].id, addedTask.id); |
1038 |
|
1038 |
|
Lines 1043-1052
add_task(function* test_addModifyDeleteItem() {
Link Here
|
1043 |
let newEvent = items[0].clone(); |
1043 |
let newEvent = items[0].clone(); |
1044 |
newEvent.title = "changed"; |
1044 |
newEvent.title = "changed"; |
1045 |
|
1045 |
|
1046 |
let modifiedEvent = yield pclient.modifyItem(newEvent, items[0]); |
1046 |
let modifiedEvent = await pclient.modifyItem(newEvent, items[0]); |
1047 |
equal(modifiedEvent.title, "changed"); |
1047 |
equal(modifiedEvent.title, "changed"); |
1048 |
notEqual(modifiedEvent.getProperty("LAST-MODIFIED"), addedEvent.getProperty("LAST-MODIFIED")); |
1048 |
notEqual(modifiedEvent.getProperty("LAST-MODIFIED"), addedEvent.getProperty("LAST-MODIFIED")); |
1049 |
items = yield pclient.getAllItems(); |
1049 |
items = await pclient.getAllItems(); |
1050 |
equal(items.length, 2); |
1050 |
equal(items.length, 2); |
1051 |
equal(items[0].title, "changed"); |
1051 |
equal(items[0].title, "changed"); |
1052 |
equal(items[0].id, addedEvent.id); |
1052 |
equal(items[0].id, addedEvent.id); |
Lines 1058-1067
add_task(function* test_addModifyDeleteItem() {
Link Here
|
1058 |
let newTask = items[1].clone(); |
1058 |
let newTask = items[1].clone(); |
1059 |
newTask.title = "changed"; |
1059 |
newTask.title = "changed"; |
1060 |
|
1060 |
|
1061 |
let modifiedTask = yield pclient.modifyItem(newTask, items[1]); |
1061 |
let modifiedTask = await pclient.modifyItem(newTask, items[1]); |
1062 |
equal(modifiedTask.title, "changed"); |
1062 |
equal(modifiedTask.title, "changed"); |
1063 |
notEqual(modifiedTask.getProperty("LAST-MODIFIED"), addedTask.getProperty("LAST-MODIFIED")); |
1063 |
notEqual(modifiedTask.getProperty("LAST-MODIFIED"), addedTask.getProperty("LAST-MODIFIED")); |
1064 |
items = yield pclient.getAllItems(); |
1064 |
items = await pclient.getAllItems(); |
1065 |
equal(items.length, 2); |
1065 |
equal(items.length, 2); |
1066 |
equal(items[1].title, "changed"); |
1066 |
equal(items[1].title, "changed"); |
1067 |
equal(items[1].id, addedTask.id); |
1067 |
equal(items[1].id, addedTask.id); |
Lines 1070-1084
add_task(function* test_addModifyDeleteItem() {
Link Here
|
1070 |
equal(gServer.tasks.length, 1); |
1070 |
equal(gServer.tasks.length, 1); |
1071 |
|
1071 |
|
1072 |
// Delete an event |
1072 |
// Delete an event |
1073 |
yield pclient.deleteItem(modifiedEvent); |
1073 |
await pclient.deleteItem(modifiedEvent); |
1074 |
items = yield pclient.getAllItems(); |
1074 |
items = await pclient.getAllItems(); |
1075 |
equal(items.length, 1); |
1075 |
equal(items.length, 1); |
1076 |
equal(gServer.events.length, 0); |
1076 |
equal(gServer.events.length, 0); |
1077 |
equal(gServer.tasks.length, 1); |
1077 |
equal(gServer.tasks.length, 1); |
1078 |
|
1078 |
|
1079 |
// Delete a task |
1079 |
// Delete a task |
1080 |
yield pclient.deleteItem(modifiedTask); |
1080 |
await pclient.deleteItem(modifiedTask); |
1081 |
items = yield pclient.getAllItems(); |
1081 |
items = await pclient.getAllItems(); |
1082 |
equal(items.length, 0); |
1082 |
equal(items.length, 0); |
1083 |
equal(gServer.events.length, 0); |
1083 |
equal(gServer.events.length, 0); |
1084 |
equal(gServer.tasks.length, 0); |
1084 |
equal(gServer.tasks.length, 0); |
Lines 1086-1093
add_task(function* test_addModifyDeleteItem() {
Link Here
|
1086 |
gServer.resetClient(client); |
1086 |
gServer.resetClient(client); |
1087 |
}); |
1087 |
}); |
1088 |
|
1088 |
|
1089 |
add_task(function* test_recurring_event() { |
1089 |
add_task(async function test_recurring_event() { |
1090 |
let client = yield gServer.getClient(); |
1090 |
let client = await gServer.getClient(); |
1091 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1091 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1092 |
|
1092 |
|
1093 |
let event = cal.createEvent([ |
1093 |
let event = cal.createEvent([ |
Lines 1099-1105
add_task(function* test_recurring_event() {
Link Here
|
1099 |
"END:VEVENT" |
1099 |
"END:VEVENT" |
1100 |
].join("\r\n")); |
1100 |
].join("\r\n")); |
1101 |
|
1101 |
|
1102 |
event = yield pclient.addItem(event); |
1102 |
event = await pclient.addItem(event); |
1103 |
equal(gServer.events.length, 1); |
1103 |
equal(gServer.events.length, 1); |
1104 |
equal(gServer.events[0].recurrence.length, 1); |
1104 |
equal(gServer.events[0].recurrence.length, 1); |
1105 |
equal(gServer.events[0].recurrence[0], "RRULE:FREQ=WEEKLY"); |
1105 |
equal(gServer.events[0].recurrence[0], "RRULE:FREQ=WEEKLY"); |
Lines 1109-1115
add_task(function* test_recurring_event() {
Link Here
|
1109 |
changedOcc.title = "changed"; |
1109 |
changedOcc.title = "changed"; |
1110 |
event.recurrenceInfo.modifyException(occ, true); |
1110 |
event.recurrenceInfo.modifyException(occ, true); |
1111 |
|
1111 |
|
1112 |
event = yield pclient.modifyItem(changedOcc, occ); |
1112 |
event = await pclient.modifyItem(changedOcc, occ); |
1113 |
occ = event.recurrenceInfo.getNextOccurrence(event.startDate); |
1113 |
occ = event.recurrenceInfo.getNextOccurrence(event.startDate); |
1114 |
equal(occ.title, "changed"); |
1114 |
equal(occ.title, "changed"); |
1115 |
equal(gServer.events.length, 2); |
1115 |
equal(gServer.events.length, 2); |
Lines 1117-1123
add_task(function* test_recurring_event() {
Link Here
|
1117 |
gServer.resetClient(client); |
1117 |
gServer.resetClient(client); |
1118 |
}); |
1118 |
}); |
1119 |
|
1119 |
|
1120 |
add_task(function* test_recurring_exception() { |
1120 |
add_task(async function test_recurring_exception() { |
1121 |
gServer.syncs = [{ |
1121 |
gServer.syncs = [{ |
1122 |
token: "1", |
1122 |
token: "1", |
1123 |
events: [{ |
1123 |
events: [{ |
Lines 1162-1171
add_task(function* test_recurring_exception() {
Link Here
|
1162 |
}] |
1162 |
}] |
1163 |
}]; |
1163 |
}]; |
1164 |
|
1164 |
|
1165 |
let client = yield gServer.getClient(); |
1165 |
let client = await gServer.getClient(); |
1166 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1166 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1167 |
|
1167 |
|
1168 |
let items = yield pclient.getAllItems(); |
1168 |
let items = await pclient.getAllItems(); |
1169 |
equal(items.length, 1); |
1169 |
equal(items.length, 1); |
1170 |
|
1170 |
|
1171 |
let exIds = items[0].recurrenceInfo.getExceptionIds({}); |
1171 |
let exIds = items[0].recurrenceInfo.getExceptionIds({}); |
Lines 1175-1183
add_task(function* test_recurring_exception() {
Link Here
|
1175 |
equal(ex.title, "New Event changed"); |
1175 |
equal(ex.title, "New Event changed"); |
1176 |
|
1176 |
|
1177 |
client.refresh(); |
1177 |
client.refresh(); |
1178 |
yield gServer.waitForLoad(client); |
1178 |
await gServer.waitForLoad(client); |
1179 |
|
1179 |
|
1180 |
items = yield pclient.getAllItems(); |
1180 |
items = await pclient.getAllItems(); |
1181 |
equal(items.length, 1); |
1181 |
equal(items.length, 1); |
1182 |
|
1182 |
|
1183 |
exIds = items[0].recurrenceInfo.getExceptionIds({}); |
1183 |
exIds = items[0].recurrenceInfo.getExceptionIds({}); |
Lines 1186-1192
add_task(function* test_recurring_exception() {
Link Here
|
1186 |
gServer.resetClient(client); |
1186 |
gServer.resetClient(client); |
1187 |
}); |
1187 |
}); |
1188 |
|
1188 |
|
1189 |
add_task(function* test_recurring_cancelled_exception() { |
1189 |
add_task(async function test_recurring_cancelled_exception() { |
1190 |
gServer.syncs = [{ |
1190 |
gServer.syncs = [{ |
1191 |
token: "1", |
1191 |
token: "1", |
1192 |
events: [{ |
1192 |
events: [{ |
Lines 1204-1221
add_task(function* test_recurring_cancelled_exception() {
Link Here
|
1204 |
}] |
1204 |
}] |
1205 |
}]; |
1205 |
}]; |
1206 |
|
1206 |
|
1207 |
let client = yield gServer.getClient(); |
1207 |
let client = await gServer.getClient(); |
1208 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1208 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1209 |
|
1209 |
|
1210 |
let items = yield pclient.getAllItems(); |
1210 |
let items = await pclient.getAllItems(); |
1211 |
equal(items.length, 0); |
1211 |
equal(items.length, 0); |
1212 |
|
1212 |
|
1213 |
gServer.resetClient(client); |
1213 |
gServer.resetClient(client); |
1214 |
}); |
1214 |
}); |
1215 |
|
1215 |
|
1216 |
add_task(function* test_import_invitation() { |
1216 |
add_task(async function test_import_invitation() { |
1217 |
Preferences.set("calendar.google.enableAttendees", true); |
1217 |
Preferences.set("calendar.google.enableAttendees", true); |
1218 |
let client = yield gServer.getClient(); |
1218 |
let client = await gServer.getClient(); |
1219 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1219 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1220 |
let event = cal.createEvent([ |
1220 |
let event = cal.createEvent([ |
1221 |
"BEGIN:VEVENT", |
1221 |
"BEGIN:VEVENT", |
Lines 1236-1249
add_task(function* test_import_invitation() {
Link Here
|
1236 |
"END:VEVENT" |
1236 |
"END:VEVENT" |
1237 |
].join("\r\n")); |
1237 |
].join("\r\n")); |
1238 |
|
1238 |
|
1239 |
let addedItem = yield pclient.adoptItem(event); |
1239 |
let addedItem = await pclient.adoptItem(event); |
1240 |
equal(gServer.events.length, 1); |
1240 |
equal(gServer.events.length, 1); |
1241 |
equal(addedItem.icalString, event.icalString); |
1241 |
equal(addedItem.icalString, event.icalString); |
1242 |
gServer.resetClient(client); |
1242 |
gServer.resetClient(client); |
1243 |
Preferences.set("calendar.google.enableAttendees", false); |
1243 |
Preferences.set("calendar.google.enableAttendees", false); |
1244 |
}); |
1244 |
}); |
1245 |
|
1245 |
|
1246 |
add_task(function* test_modify_invitation() { |
1246 |
add_task(async function test_modify_invitation() { |
1247 |
Preferences.set("calendar.google.enableAttendees", true); |
1247 |
Preferences.set("calendar.google.enableAttendees", true); |
1248 |
let organizer = { |
1248 |
let organizer = { |
1249 |
displayName: "organizer name", |
1249 |
displayName: "organizer name", |
Lines 1278-1287
add_task(function* test_modify_invitation() {
Link Here
|
1278 |
}]; |
1278 |
}]; |
1279 |
|
1279 |
|
1280 |
// Case #1: User is attendee |
1280 |
// Case #1: User is attendee |
1281 |
let client = yield gServer.getClient(); |
1281 |
let client = await gServer.getClient(); |
1282 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1282 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1283 |
|
1283 |
|
1284 |
let items = yield pclient.getAllItems(); |
1284 |
let items = await pclient.getAllItems(); |
1285 |
equal(items.length, 1); |
1285 |
equal(items.length, 1); |
1286 |
|
1286 |
|
1287 |
let item = items[0]; |
1287 |
let item = items[0]; |
Lines 1297-1303
add_task(function* test_modify_invitation() {
Link Here
|
1297 |
att.participationStatus = "ACCEPTED"; |
1297 |
att.participationStatus = "ACCEPTED"; |
1298 |
newItem.addAttendee(att); |
1298 |
newItem.addAttendee(att); |
1299 |
|
1299 |
|
1300 |
yield pclient.modifyItem(newItem, items[0]); |
1300 |
await pclient.modifyItem(newItem, items[0]); |
1301 |
equal(gServer.lastMethod, "PATCH"); |
1301 |
equal(gServer.lastMethod, "PATCH"); |
1302 |
|
1302 |
|
1303 |
// Case #2: User is organizer |
1303 |
// Case #2: User is organizer |
Lines 1318-1327
add_task(function* test_modify_invitation() {
Link Here
|
1318 |
gServer.events[0].creator = gServer.creator; |
1318 |
gServer.events[0].creator = gServer.creator; |
1319 |
gServer.events[0].attendees = [organizer, attendee]; |
1319 |
gServer.events[0].attendees = [organizer, attendee]; |
1320 |
|
1320 |
|
1321 |
client = yield gServer.getClient(); |
1321 |
client = await gServer.getClient(); |
1322 |
pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1322 |
pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1323 |
|
1323 |
|
1324 |
items = yield pclient.getAllItems(); |
1324 |
items = await pclient.getAllItems(); |
1325 |
equal(items.length, 1); |
1325 |
equal(items.length, 1); |
1326 |
|
1326 |
|
1327 |
item = items[0]; |
1327 |
item = items[0]; |
Lines 1337-1349
add_task(function* test_modify_invitation() {
Link Here
|
1337 |
org.participationStatus = "TENTATIVE"; |
1337 |
org.participationStatus = "TENTATIVE"; |
1338 |
newItem.addAttendee(org); |
1338 |
newItem.addAttendee(org); |
1339 |
|
1339 |
|
1340 |
modifiedItem = yield pclient.modifyItem(newItem, items[0]); |
1340 |
modifiedItem = await pclient.modifyItem(newItem, items[0]); |
1341 |
equal(gServer.lastMethod, "PUT"); |
1341 |
equal(gServer.lastMethod, "PUT"); |
1342 |
|
1342 |
|
1343 |
gServer.resetClient(client); |
1343 |
gServer.resetClient(client); |
1344 |
}); |
1344 |
}); |
1345 |
|
1345 |
|
1346 |
add_task(function* test_metadata() { |
1346 |
add_task(async function test_metadata() { |
1347 |
gServer.events = [{ |
1347 |
gServer.events = [{ |
1348 |
kind: "calendar#event", |
1348 |
kind: "calendar#event", |
1349 |
etag: "\"1\"", |
1349 |
etag: "\"1\"", |
Lines 1367-1378
add_task(function* test_metadata() {
Link Here
|
1367 |
notes: "description" |
1367 |
notes: "description" |
1368 |
}]; |
1368 |
}]; |
1369 |
|
1369 |
|
1370 |
let client = yield gServer.getClient(); |
1370 |
let client = await gServer.getClient(); |
1371 |
let offline = client.wrappedJSObject.mCachedCalendar; |
1371 |
let offline = client.wrappedJSObject.mCachedCalendar; |
1372 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1372 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1373 |
|
1373 |
|
1374 |
// Check initial metadata |
1374 |
// Check initial metadata |
1375 |
let items = yield pclient.getAllItems(); |
1375 |
let items = await pclient.getAllItems(); |
1376 |
let meta = getAllMeta(offline); |
1376 |
let meta = getAllMeta(offline); |
1377 |
let [event, task] = items; |
1377 |
let [event, task] = items; |
1378 |
ok(cal.item.isEvent(event)); |
1378 |
ok(cal.item.isEvent(event)); |
Lines 1385-1393
add_task(function* test_metadata() {
Link Here
|
1385 |
gServer.nextEtag = '"3"'; |
1385 |
gServer.nextEtag = '"3"'; |
1386 |
let newEvent = event.clone(); |
1386 |
let newEvent = event.clone(); |
1387 |
newEvent.title = "changed"; |
1387 |
newEvent.title = "changed"; |
1388 |
yield pclient.modifyItem(newEvent, event); |
1388 |
await pclient.modifyItem(newEvent, event); |
1389 |
|
1389 |
|
1390 |
items = yield pclient.getAllItems(); |
1390 |
items = await pclient.getAllItems(); |
1391 |
meta = getAllMeta(offline); |
1391 |
meta = getAllMeta(offline); |
1392 |
[event, task] = items; |
1392 |
[event, task] = items; |
1393 |
ok(cal.item.isEvent(event)); |
1393 |
ok(cal.item.isEvent(event)); |
Lines 1400-1408
add_task(function* test_metadata() {
Link Here
|
1400 |
gServer.nextEtag = '"4"'; |
1400 |
gServer.nextEtag = '"4"'; |
1401 |
let newTask = task.clone(); |
1401 |
let newTask = task.clone(); |
1402 |
newTask.title = "changed"; |
1402 |
newTask.title = "changed"; |
1403 |
yield pclient.modifyItem(newTask, task); |
1403 |
await pclient.modifyItem(newTask, task); |
1404 |
|
1404 |
|
1405 |
items = yield pclient.getAllItems(); |
1405 |
items = await pclient.getAllItems(); |
1406 |
meta = getAllMeta(offline); |
1406 |
meta = getAllMeta(offline); |
1407 |
[event, task] = items; |
1407 |
[event, task] = items; |
1408 |
equal(meta.size, 2); |
1408 |
equal(meta.size, 2); |
Lines 1410-1428
add_task(function* test_metadata() {
Link Here
|
1410 |
equal(meta.get(task.hashId), ['"4"', "MTEyMDE2MDE5NzE0NjYzMDk4ODI6MDo0MDI1NDg2NjU", false].join("\u001A")); |
1410 |
equal(meta.get(task.hashId), ['"4"', "MTEyMDE2MDE5NzE0NjYzMDk4ODI6MDo0MDI1NDg2NjU", false].join("\u001A")); |
1411 |
|
1411 |
|
1412 |
// Delete an event |
1412 |
// Delete an event |
1413 |
yield pclient.deleteItem(event); |
1413 |
await pclient.deleteItem(event); |
1414 |
meta = getAllMeta(offline); |
1414 |
meta = getAllMeta(offline); |
1415 |
equal(meta.size, 1); |
1415 |
equal(meta.size, 1); |
1416 |
equal(meta.get(task.hashId), ['"4"', "MTEyMDE2MDE5NzE0NjYzMDk4ODI6MDo0MDI1NDg2NjU", false].join("\u001A")); |
1416 |
equal(meta.get(task.hashId), ['"4"', "MTEyMDE2MDE5NzE0NjYzMDk4ODI6MDo0MDI1NDg2NjU", false].join("\u001A")); |
1417 |
|
1417 |
|
1418 |
// Delete a task |
1418 |
// Delete a task |
1419 |
yield pclient.deleteItem(task); |
1419 |
await pclient.deleteItem(task); |
1420 |
meta = getAllMeta(offline); |
1420 |
meta = getAllMeta(offline); |
1421 |
equal(meta.size, 0); |
1421 |
equal(meta.size, 0); |
1422 |
|
1422 |
|
1423 |
// Add an event |
1423 |
// Add an event |
1424 |
gServer.nextEtag = '"6"'; |
1424 |
gServer.nextEtag = '"6"'; |
1425 |
newEvent = yield pclient.addItem(event); |
1425 |
newEvent = await pclient.addItem(event); |
1426 |
meta = getAllMeta(offline); |
1426 |
meta = getAllMeta(offline); |
1427 |
equal(meta.size, 1); |
1427 |
equal(meta.size, 1); |
1428 |
equal(gServer.events.length, 1); |
1428 |
equal(gServer.events.length, 1); |
Lines 1430-1436
add_task(function* test_metadata() {
Link Here
|
1430 |
|
1430 |
|
1431 |
// Add a task |
1431 |
// Add a task |
1432 |
gServer.nextEtag = '"7"'; |
1432 |
gServer.nextEtag = '"7"'; |
1433 |
newTask = yield pclient.addItem(task); |
1433 |
newTask = await pclient.addItem(task); |
1434 |
meta = getAllMeta(offline); |
1434 |
meta = getAllMeta(offline); |
1435 |
equal(meta.size, 2); |
1435 |
equal(meta.size, 2); |
1436 |
equal(gServer.events.length, 1); |
1436 |
equal(gServer.events.length, 1); |
Lines 1441-1447
add_task(function* test_metadata() {
Link Here
|
1441 |
gServer.resetClient(client); |
1441 |
gServer.resetClient(client); |
1442 |
}); |
1442 |
}); |
1443 |
|
1443 |
|
1444 |
add_task(function* test_metadata_recurring() { |
1444 |
add_task(async function test_metadata_recurring() { |
1445 |
gServer.events = [{ |
1445 |
gServer.events = [{ |
1446 |
kind: "calendar#event", |
1446 |
kind: "calendar#event", |
1447 |
etag: "\"1\"", |
1447 |
etag: "\"1\"", |
Lines 1477-1486
add_task(function* test_metadata_recurring() {
Link Here
|
1477 |
originalStartTime: { dateTime: "2006-06-17T18:00:00+02:00" } |
1477 |
originalStartTime: { dateTime: "2006-06-17T18:00:00+02:00" } |
1478 |
}]; |
1478 |
}]; |
1479 |
|
1479 |
|
1480 |
let client = yield gServer.getClient(); |
1480 |
let client = await gServer.getClient(); |
1481 |
let offline = client.wrappedJSObject.mCachedCalendar; |
1481 |
let offline = client.wrappedJSObject.mCachedCalendar; |
1482 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1482 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1483 |
let items = yield pclient.getAllItems(); |
1483 |
let items = await pclient.getAllItems(); |
1484 |
|
1484 |
|
1485 |
let meta = getAllMeta(offline); |
1485 |
let meta = getAllMeta(offline); |
1486 |
equal(meta.size, 3); |
1486 |
equal(meta.size, 3); |
Lines 1496-1502
add_task(function* test_metadata_recurring() {
Link Here
|
1496 |
let newEx = ex.clone(); |
1496 |
let newEx = ex.clone(); |
1497 |
newEx.title = "New Event changed again"; |
1497 |
newEx.title = "New Event changed again"; |
1498 |
gServer.nextEtag = '"4"'; |
1498 |
gServer.nextEtag = '"4"'; |
1499 |
yield pclient.modifyItem(newEx, ex); |
1499 |
await pclient.modifyItem(newEx, ex); |
1500 |
meta = getAllMeta(offline); |
1500 |
meta = getAllMeta(offline); |
1501 |
equal(meta.size, 3); |
1501 |
equal(meta.size, 3); |
1502 |
equal(meta.get(newEx.hashId), ['"4"', "go6ijb0b46hlpbu4eeu92njevo_20060610T160000Z", false].join("\u001A")); |
1502 |
equal(meta.get(newEx.hashId), ['"4"', "go6ijb0b46hlpbu4eeu92njevo_20060610T160000Z", false].join("\u001A")); |
Lines 1504-1523
add_task(function* test_metadata_recurring() {
Link Here
|
1504 |
// Deleting an exception should delete the metadata, as it turns into an EXDATE |
1504 |
// Deleting an exception should delete the metadata, as it turns into an EXDATE |
1505 |
let newItem = items[0].clone(); |
1505 |
let newItem = items[0].clone(); |
1506 |
newItem.recurrenceInfo.removeOccurrenceAt(exIds[0]); |
1506 |
newItem.recurrenceInfo.removeOccurrenceAt(exIds[0]); |
1507 |
yield pclient.modifyItem(newItem, items[0]); |
1507 |
await pclient.modifyItem(newItem, items[0]); |
1508 |
|
1508 |
|
1509 |
meta = getAllMeta(offline); |
1509 |
meta = getAllMeta(offline); |
1510 |
equal(meta.size, 2); |
1510 |
equal(meta.size, 2); |
1511 |
|
1511 |
|
1512 |
// Deleting the master item should remove all metadata entries |
1512 |
// Deleting the master item should remove all metadata entries |
1513 |
yield pclient.deleteItem(items[0]); |
1513 |
await pclient.deleteItem(items[0]); |
1514 |
meta = getAllMeta(offline); |
1514 |
meta = getAllMeta(offline); |
1515 |
equal(meta.size, 0); |
1515 |
equal(meta.size, 0); |
1516 |
|
1516 |
|
1517 |
gServer.resetClient(client); |
1517 |
gServer.resetClient(client); |
1518 |
}); |
1518 |
}); |
1519 |
|
1519 |
|
1520 |
add_task(function* test_conflict_modify() { |
1520 |
add_task(async function test_conflict_modify() { |
1521 |
// TODO task/event conflicts are handled in the same way so I'm going to |
1521 |
// TODO task/event conflicts are handled in the same way so I'm going to |
1522 |
// skip adding tests for tasks here, but it probably wouldn't hurt to |
1522 |
// skip adding tests for tasks here, but it probably wouldn't hurt to |
1523 |
// create them at some point. |
1523 |
// create them at some point. |
Lines 1534-1542
add_task(function* test_conflict_modify() {
Link Here
|
1534 |
end: { dateTime: "2006-06-10T20:00:00+02:00" }, |
1534 |
end: { dateTime: "2006-06-10T20:00:00+02:00" }, |
1535 |
iCalUID: "go6ijb0b46hlpbu4eeu92njevo@google.com" |
1535 |
iCalUID: "go6ijb0b46hlpbu4eeu92njevo@google.com" |
1536 |
}]; |
1536 |
}]; |
1537 |
let client = yield gServer.getClient(); |
1537 |
let client = await gServer.getClient(); |
1538 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1538 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1539 |
let item = (yield pclient.getAllItems())[0]; |
1539 |
let item = (await pclient.getAllItems())[0]; |
1540 |
|
1540 |
|
1541 |
// Case #1: Modified on server, modify locally, overwrite conflict |
1541 |
// Case #1: Modified on server, modify locally, overwrite conflict |
1542 |
MockConflictPrompt.overwrite = true; |
1542 |
MockConflictPrompt.overwrite = true; |
Lines 1544-1551
add_task(function* test_conflict_modify() {
Link Here
|
1544 |
newItem.title = "local change"; |
1544 |
newItem.title = "local change"; |
1545 |
gServer.events[0].etag = '"2"'; |
1545 |
gServer.events[0].etag = '"2"'; |
1546 |
gServer.events[0].summary = "remote change"; |
1546 |
gServer.events[0].summary = "remote change"; |
1547 |
let modifiedItem = yield pclient.modifyItem(newItem, item); |
1547 |
let modifiedItem = await pclient.modifyItem(newItem, item); |
1548 |
item = (yield pclient.getAllItems())[0]; |
1548 |
item = (await pclient.getAllItems())[0]; |
1549 |
equal(gServer.events[0].summary, "local change"); |
1549 |
equal(gServer.events[0].summary, "local change"); |
1550 |
notEqual(gServer.events[0].etag, '"2"'); |
1550 |
notEqual(gServer.events[0].etag, '"2"'); |
1551 |
equal(item.title, "local change"); |
1551 |
equal(item.title, "local change"); |
Lines 1557-1563
add_task(function* test_conflict_modify() {
Link Here
|
1557 |
gServer.events[0].etag = '"3"'; |
1557 |
gServer.events[0].etag = '"3"'; |
1558 |
gServer.events[0].summary = "remote change"; |
1558 |
gServer.events[0].summary = "remote change"; |
1559 |
try { |
1559 |
try { |
1560 |
modifiedItem = yield pclient.modifyItem(newItem, item); |
1560 |
modifiedItem = await pclient.modifyItem(newItem, item); |
1561 |
do_throw("Expected modifyItem to be cancelled"); |
1561 |
do_throw("Expected modifyItem to be cancelled"); |
1562 |
} catch (e) { |
1562 |
} catch (e) { |
1563 |
// Swallow cancelling the request |
1563 |
// Swallow cancelling the request |
Lines 1566-1574
add_task(function* test_conflict_modify() {
Link Here
|
1566 |
} |
1566 |
} |
1567 |
} |
1567 |
} |
1568 |
|
1568 |
|
1569 |
yield gServer.waitForLoad(client); |
1569 |
await gServer.waitForLoad(client); |
1570 |
|
1570 |
|
1571 |
item = (yield pclient.getAllItems())[0]; |
1571 |
item = (await pclient.getAllItems())[0]; |
1572 |
equal(gServer.events[0].summary, "remote change"); |
1572 |
equal(gServer.events[0].summary, "remote change"); |
1573 |
equal(gServer.events[0].etag, '"3"'); |
1573 |
equal(gServer.events[0].etag, '"3"'); |
1574 |
equal(item.title, "remote change"); |
1574 |
equal(item.title, "remote change"); |
Lines 1578-1584
add_task(function* test_conflict_modify() {
Link Here
|
1578 |
gServer.events[0].etag = '"4"'; |
1578 |
gServer.events[0].etag = '"4"'; |
1579 |
gServer.events[0].summary = "remote change"; |
1579 |
gServer.events[0].summary = "remote change"; |
1580 |
try { |
1580 |
try { |
1581 |
yield pclient.deleteItem(item); |
1581 |
await pclient.deleteItem(item); |
1582 |
do_throw("Expected deleteItem to be cancelled"); |
1582 |
do_throw("Expected deleteItem to be cancelled"); |
1583 |
} catch (e) { |
1583 |
} catch (e) { |
1584 |
// Swallow cancelling the request |
1584 |
// Swallow cancelling the request |
Lines 1587-1595
add_task(function* test_conflict_modify() {
Link Here
|
1587 |
} |
1587 |
} |
1588 |
} |
1588 |
} |
1589 |
|
1589 |
|
1590 |
yield gServer.waitForLoad(client); |
1590 |
await gServer.waitForLoad(client); |
1591 |
|
1591 |
|
1592 |
item = (yield pclient.getAllItems())[0]; |
1592 |
item = (await pclient.getAllItems())[0]; |
1593 |
equal(gServer.events[0].summary, "remote change"); |
1593 |
equal(gServer.events[0].summary, "remote change"); |
1594 |
equal(gServer.events[0].etag, '"4"'); |
1594 |
equal(gServer.events[0].etag, '"4"'); |
1595 |
equal(item.title, "remote change"); |
1595 |
equal(item.title, "remote change"); |
Lines 1598-1611
add_task(function* test_conflict_modify() {
Link Here
|
1598 |
MockConflictPrompt.overwrite = true; |
1598 |
MockConflictPrompt.overwrite = true; |
1599 |
gServer.events[0].etag = '"5"'; |
1599 |
gServer.events[0].etag = '"5"'; |
1600 |
gServer.events[0].summary = "remote change"; |
1600 |
gServer.events[0].summary = "remote change"; |
1601 |
yield pclient.deleteItem(item); |
1601 |
await pclient.deleteItem(item); |
1602 |
item = (yield pclient.getAllItems())[0]; |
1602 |
item = (await pclient.getAllItems())[0]; |
1603 |
equal(gServer.events.length, 0); |
1603 |
equal(gServer.events.length, 0); |
1604 |
|
1604 |
|
1605 |
gServer.resetClient(client); |
1605 |
gServer.resetClient(client); |
1606 |
}); |
1606 |
}); |
1607 |
|
1607 |
|
1608 |
add_task(function* test_conflict_delete() { |
1608 |
add_task(async function test_conflict_delete() { |
1609 |
// TODO task/event conflicts are handled in the same way so I'm going to |
1609 |
// TODO task/event conflicts are handled in the same way so I'm going to |
1610 |
// skip adding tests for tasks here, but it probably wouldn't hurt to |
1610 |
// skip adding tests for tasks here, but it probably wouldn't hurt to |
1611 |
// create them at some point. |
1611 |
// create them at some point. |
Lines 1625-1641
add_task(function* test_conflict_delete() {
Link Here
|
1625 |
|
1625 |
|
1626 |
// Load intial event to server |
1626 |
// Load intial event to server |
1627 |
gServer.events = [coreEvent]; |
1627 |
gServer.events = [coreEvent]; |
1628 |
let client = yield gServer.getClient(); |
1628 |
let client = await gServer.getClient(); |
1629 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1629 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1630 |
let item = (yield pclient.getAllItems())[0]; |
1630 |
let item = (await pclient.getAllItems())[0]; |
1631 |
|
1631 |
|
1632 |
// Case #1: Deleted on server, modify locally, overwrite conflict |
1632 |
// Case #1: Deleted on server, modify locally, overwrite conflict |
1633 |
MockConflictPrompt.overwrite = true; |
1633 |
MockConflictPrompt.overwrite = true; |
1634 |
gServer.events = []; |
1634 |
gServer.events = []; |
1635 |
let newItem = item.clone(); |
1635 |
let newItem = item.clone(); |
1636 |
newItem.title = "local change"; |
1636 |
newItem.title = "local change"; |
1637 |
let modifiedItem = yield pclient.modifyItem(newItem, item); |
1637 |
let modifiedItem = await pclient.modifyItem(newItem, item); |
1638 |
item = (yield pclient.getAllItems())[0]; |
1638 |
item = (await pclient.getAllItems())[0]; |
1639 |
equal(gServer.events[0].summary, "local change"); |
1639 |
equal(gServer.events[0].summary, "local change"); |
1640 |
notEqual(gServer.events[0].etag, '"2"'); |
1640 |
notEqual(gServer.events[0].etag, '"2"'); |
1641 |
equal(item.title, "local change"); |
1641 |
equal(item.title, "local change"); |
Lines 1646-1652
add_task(function* test_conflict_delete() {
Link Here
|
1646 |
MockConflictPrompt.overwrite = false; |
1646 |
MockConflictPrompt.overwrite = false; |
1647 |
gServer.events = []; |
1647 |
gServer.events = []; |
1648 |
try { |
1648 |
try { |
1649 |
modifiedItem = yield pclient.modifyItem(newItem, item); |
1649 |
modifiedItem = await pclient.modifyItem(newItem, item); |
1650 |
do_throw("Expected modifyItem to be cancelled"); |
1650 |
do_throw("Expected modifyItem to be cancelled"); |
1651 |
} catch (e) { |
1651 |
} catch (e) { |
1652 |
// Swallow cancelling the request |
1652 |
// Swallow cancelling the request |
Lines 1658-1681
add_task(function* test_conflict_delete() {
Link Here
|
1658 |
coreEvent.status = "cancelled"; |
1658 |
coreEvent.status = "cancelled"; |
1659 |
gServer.events = [coreEvent]; |
1659 |
gServer.events = [coreEvent]; |
1660 |
|
1660 |
|
1661 |
yield gServer.waitForLoad(client); |
1661 |
await gServer.waitForLoad(client); |
1662 |
|
1662 |
|
1663 |
let items = yield pclient.getAllItems(); |
1663 |
let items = await pclient.getAllItems(); |
1664 |
equal(items.length, 0); |
1664 |
equal(items.length, 0); |
1665 |
equal(gServer.events.length, 1); |
1665 |
equal(gServer.events.length, 1); |
1666 |
|
1666 |
|
1667 |
// Put the event back in the calendar for the next run |
1667 |
// Put the event back in the calendar for the next run |
1668 |
delete gServer.events[0].status; |
1668 |
delete gServer.events[0].status; |
1669 |
client.refresh(); |
1669 |
client.refresh(); |
1670 |
yield gServer.waitForLoad(client); |
1670 |
await gServer.waitForLoad(client); |
1671 |
items = yield pclient.getAllItems(); |
1671 |
items = await pclient.getAllItems(); |
1672 |
equal(items.length, 1); |
1672 |
equal(items.length, 1); |
1673 |
|
1673 |
|
1674 |
// Case #3: Deleted on server, delete locally, don't overwrite conflict |
1674 |
// Case #3: Deleted on server, delete locally, don't overwrite conflict |
1675 |
MockConflictPrompt.overwrite = false; |
1675 |
MockConflictPrompt.overwrite = false; |
1676 |
gServer.events = []; |
1676 |
gServer.events = []; |
1677 |
try { |
1677 |
try { |
1678 |
yield pclient.deleteItem(item); |
1678 |
await pclient.deleteItem(item); |
1679 |
do_throw("Expected deleteItem to be cancelled"); |
1679 |
do_throw("Expected deleteItem to be cancelled"); |
1680 |
} catch (e) { |
1680 |
} catch (e) { |
1681 |
// Swallow cancelling the request |
1681 |
// Swallow cancelling the request |
Lines 1686-1714
add_task(function* test_conflict_delete() {
Link Here
|
1686 |
// The next synchronize should cause the event to be deleted locally. |
1686 |
// The next synchronize should cause the event to be deleted locally. |
1687 |
coreEvent.status = "cancelled"; |
1687 |
coreEvent.status = "cancelled"; |
1688 |
gServer.events = [coreEvent]; |
1688 |
gServer.events = [coreEvent]; |
1689 |
yield gServer.waitForLoad(client); |
1689 |
await gServer.waitForLoad(client); |
1690 |
|
1690 |
|
1691 |
items = yield pclient.getAllItems(); |
1691 |
items = await pclient.getAllItems(); |
1692 |
equal(items.length, 0); |
1692 |
equal(items.length, 0); |
1693 |
|
1693 |
|
1694 |
// Put the event back in the calendar for the next run |
1694 |
// Put the event back in the calendar for the next run |
1695 |
delete gServer.events[0].status; |
1695 |
delete gServer.events[0].status; |
1696 |
client.refresh(); |
1696 |
client.refresh(); |
1697 |
yield gServer.waitForLoad(client); |
1697 |
await gServer.waitForLoad(client); |
1698 |
items = yield pclient.getAllItems(); |
1698 |
items = await pclient.getAllItems(); |
1699 |
equal(items.length, 1); |
1699 |
equal(items.length, 1); |
1700 |
|
1700 |
|
1701 |
// Case #4: Deleted on server, delete locally, overwrite conflict |
1701 |
// Case #4: Deleted on server, delete locally, overwrite conflict |
1702 |
MockConflictPrompt.overwrite = true; |
1702 |
MockConflictPrompt.overwrite = true; |
1703 |
gServer.events = []; |
1703 |
gServer.events = []; |
1704 |
yield pclient.deleteItem(item); |
1704 |
await pclient.deleteItem(item); |
1705 |
items = yield pclient.getAllItems(); |
1705 |
items = await pclient.getAllItems(); |
1706 |
equal(items.length, 0); |
1706 |
equal(items.length, 0); |
1707 |
|
1707 |
|
1708 |
gServer.resetClient(client); |
1708 |
gServer.resetClient(client); |
1709 |
}); |
1709 |
}); |
1710 |
|
1710 |
|
1711 |
add_task(function* test_default_alarms() { |
1711 |
add_task(async function test_default_alarms() { |
1712 |
let defaultReminders = [ |
1712 |
let defaultReminders = [ |
1713 |
{ method: "popup", minutes: 10 }, |
1713 |
{ method: "popup", minutes: 10 }, |
1714 |
{ method: "email", minutes: 20 }, |
1714 |
{ method: "email", minutes: 20 }, |
Lines 1731-1741
add_task(function* test_default_alarms() {
Link Here
|
1731 |
}]; |
1731 |
}]; |
1732 |
|
1732 |
|
1733 |
// Case #1: read default alarms from event stream |
1733 |
// Case #1: read default alarms from event stream |
1734 |
let client = yield gServer.getClient(); |
1734 |
let client = await gServer.getClient(); |
1735 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1735 |
let pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1736 |
equal(client.getProperty("settings.defaultReminders"), JSON.stringify(defaultReminders)); |
1736 |
equal(client.getProperty("settings.defaultReminders"), JSON.stringify(defaultReminders)); |
1737 |
|
1737 |
|
1738 |
let item = (yield pclient.getAllItems())[0]; |
1738 |
let item = (await pclient.getAllItems())[0]; |
1739 |
let alarms = item.getAlarms({}); |
1739 |
let alarms = item.getAlarms({}); |
1740 |
|
1740 |
|
1741 |
equal(alarms.length, 2); |
1741 |
equal(alarms.length, 2); |
Lines 1760-1766
add_task(function* test_default_alarms() {
Link Here
|
1760 |
"END:VEVENT" |
1760 |
"END:VEVENT" |
1761 |
].join("\r\n")); |
1761 |
].join("\r\n")); |
1762 |
|
1762 |
|
1763 |
yield pclient.addItem(event); |
1763 |
await pclient.addItem(event); |
1764 |
ok(gServer.events[1].reminders.useDefault); |
1764 |
ok(gServer.events[1].reminders.useDefault); |
1765 |
equal(gServer.events[1].reminders.overrides.length, 0); |
1765 |
equal(gServer.events[1].reminders.overrides.length, 0); |
1766 |
|
1766 |
|
Lines 1784-1790
add_task(function* test_default_alarms() {
Link Here
|
1784 |
"END:VEVENT" |
1784 |
"END:VEVENT" |
1785 |
].join("\r\n")); |
1785 |
].join("\r\n")); |
1786 |
|
1786 |
|
1787 |
yield pclient.addItem(event); |
1787 |
await pclient.addItem(event); |
1788 |
ok(gServer.events[2].reminders.useDefault); |
1788 |
ok(gServer.events[2].reminders.useDefault); |
1789 |
equal(gServer.events[2].reminders.overrides.length, 1); |
1789 |
equal(gServer.events[2].reminders.overrides.length, 1); |
1790 |
equal(gServer.events[2].reminders.overrides[0].minutes, 5); |
1790 |
equal(gServer.events[2].reminders.overrides[0].minutes, 5); |
Lines 1794-1800
add_task(function* test_default_alarms() {
Link Here
|
1794 |
// Case #4a: Empty default alarms |
1794 |
// Case #4a: Empty default alarms |
1795 |
gServer.calendarListData.defaultReminders = []; |
1795 |
gServer.calendarListData.defaultReminders = []; |
1796 |
gServer.eventsData.defaultReminders = []; |
1796 |
gServer.eventsData.defaultReminders = []; |
1797 |
client = yield gServer.getClient(); |
1797 |
client = await gServer.getClient(); |
1798 |
pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1798 |
pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1799 |
|
1799 |
|
1800 |
event = cal.createEvent([ |
1800 |
event = cal.createEvent([ |
Lines 1806-1812
add_task(function* test_default_alarms() {
Link Here
|
1806 |
"END:VEVENT" |
1806 |
"END:VEVENT" |
1807 |
].join("\r\n")); |
1807 |
].join("\r\n")); |
1808 |
|
1808 |
|
1809 |
yield pclient.addItem(event); |
1809 |
await pclient.addItem(event); |
1810 |
ok(gServer.events[0].reminders.useDefault); |
1810 |
ok(gServer.events[0].reminders.useDefault); |
1811 |
equal(gServer.events[0].reminders.overrides, undefined); |
1811 |
equal(gServer.events[0].reminders.overrides, undefined); |
1812 |
|
1812 |
|
Lines 1815-1830
add_task(function* test_default_alarms() {
Link Here
|
1815 |
|
1815 |
|
1816 |
// Case #4b: Read an item with empty default alarms |
1816 |
// Case #4b: Read an item with empty default alarms |
1817 |
gServer.events = events; |
1817 |
gServer.events = events; |
1818 |
client = yield gServer.getClient(); |
1818 |
client = await gServer.getClient(); |
1819 |
pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1819 |
pclient = cal.async.promisifyCalendar(client.wrappedJSObject); |
1820 |
|
1820 |
|
1821 |
item = (yield pclient.getAllItems())[0]; |
1821 |
item = (await pclient.getAllItems())[0]; |
1822 |
equal(item.getProperty("X-DEFAULT-ALARM"), "TRUE"); |
1822 |
equal(item.getProperty("X-DEFAULT-ALARM"), "TRUE"); |
1823 |
|
1823 |
|
1824 |
gServer.resetClient(client); |
1824 |
gServer.resetClient(client); |
1825 |
}); |
1825 |
}); |
1826 |
|
1826 |
|
1827 |
add_task(function* test_paginate() { |
1827 |
add_task(async function test_paginate() { |
1828 |
gServer.events = [{ |
1828 |
gServer.events = [{ |
1829 |
kind: "calendar#event", |
1829 |
kind: "calendar#event", |
1830 |
etag: "\"1\"", |
1830 |
etag: "\"1\"", |
Lines 1873-1879
add_task(function* test_paginate() {
Link Here
|
1873 |
|
1873 |
|
1874 |
Preferences.set("calendar.google.maxResultsPerRequest", 1); |
1874 |
Preferences.set("calendar.google.maxResultsPerRequest", 1); |
1875 |
|
1875 |
|
1876 |
let client = yield gServer.getClient(); |
1876 |
let client = await gServer.getClient(); |
1877 |
let pclient = cal.async.promisifyCalendar(client); |
1877 |
let pclient = cal.async.promisifyCalendar(client); |
1878 |
|
1878 |
|
1879 |
// Make sure all pages were requested |
1879 |
// Make sure all pages were requested |
Lines 1882-1888
add_task(function* test_paginate() {
Link Here
|
1882 |
|
1882 |
|
1883 |
// ...and we have all items. Not checking props |
1883 |
// ...and we have all items. Not checking props |
1884 |
// because the other tests do this sufficiently. |
1884 |
// because the other tests do this sufficiently. |
1885 |
let items = yield pclient.getAllItems(); |
1885 |
let items = await pclient.getAllItems(); |
1886 |
equal(items.length, 4); |
1886 |
equal(items.length, 4); |
1887 |
|
1887 |
|
1888 |
equal(client.getProperty("syncToken.events"), "next-sync-token"); |
1888 |
equal(client.getProperty("syncToken.events"), "next-sync-token"); |
Lines 1891-1897
add_task(function* test_paginate() {
Link Here
|
1891 |
gServer.resetClient(client); |
1891 |
gServer.resetClient(client); |
1892 |
}); |
1892 |
}); |
1893 |
|
1893 |
|
1894 |
add_task(function* test_incremental_reset() { |
1894 |
add_task(async function test_incremental_reset() { |
1895 |
gServer.syncs = [{ |
1895 |
gServer.syncs = [{ |
1896 |
token: "1", |
1896 |
token: "1", |
1897 |
events: [{ |
1897 |
events: [{ |
Lines 1926-1942
add_task(function* test_incremental_reset() {
Link Here
|
1926 |
iCalUID: "fepf8uf6n7n04w7feukucs9n8e@google.com" |
1926 |
iCalUID: "fepf8uf6n7n04w7feukucs9n8e@google.com" |
1927 |
}] |
1927 |
}] |
1928 |
}]; |
1928 |
}]; |
1929 |
let client = yield gServer.getClient(); |
1929 |
let client = await gServer.getClient(); |
1930 |
let pclient = cal.async.promisifyCalendar(client); |
1930 |
let pclient = cal.async.promisifyCalendar(client); |
1931 |
|
1931 |
|
1932 |
let items = yield pclient.getAllItems(); |
1932 |
let items = await pclient.getAllItems(); |
1933 |
equal(items.length, 1); |
1933 |
equal(items.length, 1); |
1934 |
equal(items[0].title, "New Event"); |
1934 |
equal(items[0].title, "New Event"); |
1935 |
|
1935 |
|
1936 |
client.refresh(); |
1936 |
client.refresh(); |
1937 |
yield gServer.waitForLoad(client); |
1937 |
await gServer.waitForLoad(client); |
1938 |
|
1938 |
|
1939 |
items = yield pclient.getAllItems(); |
1939 |
items = await pclient.getAllItems(); |
1940 |
equal(items.length, 1); |
1940 |
equal(items.length, 1); |
1941 |
equal(items[0].title, "New Event 2"); |
1941 |
equal(items[0].title, "New Event 2"); |
1942 |
|
1942 |
|