1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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();
});
});
});
|