diff options
Diffstat (limited to 'test/servers/resources_test.js')
-rw-r--r-- | test/servers/resources_test.js | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/test/servers/resources_test.js b/test/servers/resources_test.js new file mode 100644 index 0000000..840b17c --- /dev/null +++ b/test/servers/resources_test.js @@ -0,0 +1,71 @@ +var debug = require('debug')('caldav:test:detailed'); +var helper = require('./helper.js'); +var Caldav = require('../../lib/caldav'); +var assert = require('assert'); + +suite('resources', function() { + + suiteSetup(function(done) { + if (!testEnv.homeUrl) { + helper.findEnvHome(done); + } else { + done(); + } + }); + + function checkCalendarCap(url, calendar) { + + function cap(field) { + var value = calendar[field]; + + if (!value && value != 0) { + helper.log(url + ' missing ' + field, false, 'cap'); + } else { + helper.log(url + ' ' + field, value, 'cap'); + } + } + + cap('color'); + cap('ctag'); + cap('privilegeSet'); + cap('name'); + cap('description'); + } + + test('find calendars', function(done) { + var con = helper.connection(); + var resources = new Caldav.Request.Resources(con, { + url: testEnv.homeUrl + }); + + resources.addResource('calendar', Caldav.Resources.Calendar); + resources.prop(['ical', 'calendar-color']); + resources.prop(['caldav', 'calendar-description']); + resources.prop(['caldav', 'calendar-timezone']); + resources.prop('displayname'); + resources.prop('resourcetype'); + resources.prop('getlastmodified'); + resources.prop('current-user-privilege-set'); + resources.prop(['calserver', 'getctag']); + + // found calendar home find calendars. + resources.send(function(err, data) { + helper.log('calendars:', data, 'detailed'); + + if (!data || !data.calendar) { + console.log('no calendars - fatal exiting.'); + helper.log('no calendars', err, 'fatal'); + process.exit(0); + } + + helper.log('found calendars:', Object.keys(data.calendar)); + + for (var id in data.calendar) { + checkCalendarCap(id, data.calendar[id]); + } + + done(); + }); + }); + +}); |