diff options
author | James Lal <james@lightsofapollo.com> | 2012-09-30 14:24:23 -0700 |
---|---|---|
committer | James Lal <james@lightsofapollo.com> | 2012-09-30 14:24:23 -0700 |
commit | b73354819340234dbf20d47c1777e4b486e1195c (patch) | |
tree | 3170a45ff1a84621ec1ab44bb1647cb9d7701a92 /test | |
parent | adcd11c2570d2e11eb201ce7d216b5067521afe0 (diff) | |
download | jsCalDAV-b73354819340234dbf20d47c1777e4b486e1195c.tar.gz |
added Caldav.Request.Asset for adding/deleting/updating single assets
Diffstat (limited to 'test')
-rw-r--r-- | test/caldav/request/asset_test.js | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/test/caldav/request/asset_test.js b/test/caldav/request/asset_test.js new file mode 100644 index 0000000..3f9ebcd --- /dev/null +++ b/test/caldav/request/asset_test.js @@ -0,0 +1,108 @@ +requireRequest(); +testSupport.lib('request/asset'); + +suite('caldav/request/asset.js', function() { + + // classes + var Asset; + var Xhr; + var Connection; + var SAX; + var FakeXhr; + + // instances + var subject; + var oldXhrClass; + var con; + var url = '/foo.ics'; + var options = { + url: url, + configOpt: true + }; + + function lastXHR() { + return FakeXhr.instances.pop(); + } + + suiteSetup(function() { + Asset = Caldav.require('request/asset'); + FakeXhr = Caldav.require('support/fake_xhr'); + Xhr = Caldav.require('xhr'); + Connection = Caldav.require('connection'); + + oldXhrClass = Xhr.prototype.xhrClass; + Xhr.prototype.xhrClass = FakeXhr; + }); + + suiteTeardown(function() { + Xhr.prototype.xhrClass = oldXhrClass; + }); + + setup(function() { + con = new Connection({ + password: 'password', + user: 'user' + }); + + subject = new Asset(con, url); + FakeXhr.instances.length = 0; + }); + + test('#initializer', function() { + assert.equal(subject.connection, con); + assert.equal(subject.url, url); + }); + + suite('#get', function() { + + test('with etag', function(done) { + subject.get({ etag: 'foo' }, function(err, data, xhr) { + assert.equal(xhr.headers['If-None-Match'], 'foo'); + done(); + }); + + var xhr = lastXHR(); + xhr.respond('', 200); + }); + + test('no options', function(done) { + var content = 'content'; + + subject.get(function(err, data, xhr) { + assert.ok(!err); + assert.equal(data, content); + assert.equal(xhr.openArgs[0], 'GET'); + assert.equal(xhr.headers['Content-Type'], subject.contentType); + done(); + }); + + var xhr = lastXHR(); + xhr.respond(content, 200); + }); + + }); + + test('#put', function(done) { + var content = 'foo'; + + subject.put({ etag: 'x' }, content, function(err, data, xhr) { + assert.equal(xhr.openArgs[0], 'PUT'); + assert.equal(xhr.sendArgs[0], content); + done(); + }); + + var xhr = lastXHR(); + xhr.respond('', 201); + }); + + test('#delete', function(done) { + subject.delete({ etag: 'x' }, function(err, data, xhr) { + assert.equal(xhr.openArgs[0], 'DELETE'); + done(); + }); + + var xhr = lastXHR(); + xhr.respond('', 201); + }); + +}); |