aboutsummaryrefslogtreecommitdiffstats
path: root/test/caldav/resources
diff options
context:
space:
mode:
authorJames Lal <james@lightsofapollo.com>2012-07-07 09:24:12 -0700
committerJames Lal <james@lightsofapollo.com>2012-07-07 09:24:12 -0700
commit6f6a52f4307a97b61cc57c0ba272c5e61c13fb7a (patch)
tree21cc177ee997fde87825f72d96da210be0383e98 /test/caldav/resources
parenta3f59b6298d87c3a72c167142546a816b3f2e73d (diff)
downloadjsCalDAV-6f6a52f4307a97b61cc57c0ba272c5e61c13fb7a.tar.gz
Calendar resource creation
Diffstat (limited to 'test/caldav/resources')
-rw-r--r--test/caldav/resources/calendar_test.js90
1 files changed, 90 insertions, 0 deletions
diff --git a/test/caldav/resources/calendar_test.js b/test/caldav/resources/calendar_test.js
index 312d8f7..aa23918 100644
--- a/test/caldav/resources/calendar_test.js
+++ b/test/caldav/resources/calendar_test.js
@@ -1,11 +1,101 @@
testSupport.lib('resources/calendar'),
+testSupport.lib('xhr');
+testSupport.lib('connection');
suite('caldav/resources/calendar', function() {
var Calendar;
+ var Connection;
+ var con;
+ var url = 'foobar.com';
+ var subject;
suiteSetup(function() {
Calendar = Caldav.require('resources/calendar');
+ Connection = Caldav.require('connection');
});
+ setup(function() {
+ con = new Connection();
+ subject = new Calendar(con, {
+ url: url
+ });
+ });
+
+ suite('initialization', function() {
+
+ test('without calendar data', function() {
+ assert.equal(subject.url, url);
+ });
+
+ test('with calendar data', function() {
+ return;
+ var calledWith, data = { value: 'wow'};
+ subject.updateFromServer = function() {
+ calledWith = arguments;
+ }
+
+ subject.constructor.call(this, con, data);
+
+ assert.equal(calledWith[0], data);
+ });
+
+ });
+
+ suite('#updateFromServer', function() {
+
+ function status(value, status) {
+ if (typeof(status) === 'undefined') {
+ status = '200';
+ }
+
+ return { status: status, value: value };
+ }
+
+ var input = {
+ displayname: status('name'),
+ 'calendar-color': status('#FFF'),
+ 'calendar-description': status('desc'),
+ 'getctag': status('17'),
+ 'resourcetype': status(['calendar']),
+ 'current-user-privilege-set': status(null, 404)
+ };
+
+ var expected = {
+ name: 'name',
+ color: '#FFF',
+ description: 'desc',
+ ctag: '17',
+ resourcetype: ['calendar'],
+ privilegeSet: []
+ };
+
+ test('full set', function() {
+ var key;
+ subject.updateFromServer(input);
+
+ for (key in expected) {
+ if (expected.hasOwnProperty(key)) {
+ assert.deepEqual(
+ subject[key], expected[key],
+ key + ' was not set'
+ );
+ }
+ }
+ });
+
+ test('partial update', function() {
+ subject.updateFromServer(input);
+ subject.updateFromServer({
+ 'calendar-description': status('baz')
+ });
+
+ assert.equal(subject.color, '#FFF', 'should not clear old values');
+ assert.equal(subject.description, 'baz');
+ });
+
+ });
+
+
+
});