From 7f8b11af0c5f05fa54f779986355b358d8ee1b08 Mon Sep 17 00:00:00 2001 From: Matthew Riley MacPherson Date: Sat, 17 May 2014 03:00:22 -0400 Subject: [PATCH] Add arraybuffer tests --- test/test.datatypes.js | 58 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/test/test.datatypes.js b/test/test.datatypes.js index fcec27c..b097597 100644 --- a/test/test.datatypes.js +++ b/test/test.datatypes.js @@ -240,5 +240,63 @@ DRIVERS.forEach(function(driverName) { done(); }); }); + + it('saves binary data [callback]', function(done) { + var request = new XMLHttpRequest(); + + request.open('GET', '/test/photo.jpg', true); + request.responseType = 'arraybuffer'; + + // When the AJAX state changes, save the photo locally. + request.addEventListener('readystatechange', function() { + if (request.readyState === 4) { // readyState DONE + var response = request.response; + localforage.setItem('ab', request.response, function(sab) { + expect(sab.toString()).to.be('[object ArrayBuffer]'); + expect(sab.byteLength).to.be(response.byteLength); + + localforage.getItem('ab', function(ab) { + expect(ab.toString()) + .to.be('[object ArrayBuffer]'); + expect(ab.byteLength) + .to.be(request.response.byteLength); + + done(); + }); + }); + } + }); + + request.send(); + }); + it('saves binary data [promise]', function(done) { + var request = new XMLHttpRequest(); + + request.open('GET', '/test/photo.jpg', true); + request.responseType = 'arraybuffer'; + + // When the AJAX state changes, save the photo locally. + request.addEventListener('readystatechange', function() { + if (request.readyState === 4) { // readyState DONE + var response = request.response; + localforage.setItem('ab', response).then(function(ab) { + expect(ab.toString()) + .to.be('[object ArrayBuffer]'); + expect(ab.byteLength) + .to.be(response.byteLength); + return localforage.getItem('ab'); + }).then(function(ab) { + expect(ab.toString()) + .to.be('[object ArrayBuffer]'); + expect(ab.byteLength) + .to.be(response.byteLength); + + done(); + }); + } + }); + + request.send(); + }); }); });