diff options
author | James Lal <james@lightsofapollo.com> | 2012-07-07 09:24:12 -0700 |
---|---|---|
committer | James Lal <james@lightsofapollo.com> | 2012-07-07 09:24:12 -0700 |
commit | 6f6a52f4307a97b61cc57c0ba272c5e61c13fb7a (patch) | |
tree | 21cc177ee997fde87825f72d96da210be0383e98 /test | |
parent | a3f59b6298d87c3a72c167142546a816b3f2e73d (diff) | |
download | jsCalDAV-6f6a52f4307a97b61cc57c0ba272c5e61c13fb7a.tar.gz |
Calendar resource creation
Diffstat (limited to 'test')
-rw-r--r-- | test/caldav/resources/calendar_test.js | 90 |
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'); + }); + + }); + + + }); |