/* global before:true, beforeEach:true, describe:true, expect:true, it:true, Modernizr:true */ var DRIVERS = [ localforage.INDEXEDDB, // localforage.LOCALSTORAGE, localforage.WEBSQL ]; DRIVERS.forEach(function(driverName) { if ((!Modernizr.indexeddb && driverName === localforage.INDEXEDDB) || (!Modernizr.localstorage && driverName === localforage.LOCALSTORAGE) || (!Modernizr.websqldatabase && driverName === localforage.WEBSQL)) { // Browser doesn't support this storage library, so we exit the API // tests. return; } describe.skip('Web Worker support in ' + driverName, function() { 'use strict'; before(function(done) { localforage.setDriver(driverName).then(done); }); beforeEach(function(done) { localforage.clear(done); }); if (!Modernizr.webworkers) { it.skip("doesn't have web worker support"); return; } it('saves data', function(done) { var webWorker = new Worker('/test/webworker.js'); webWorker.addEventListener('message', function(e) { var body = e.data.body; window.console.log(body); expect(body.value).to.be('I have been set'); done(); }); webWorker.addEventListener('error', function(e) { window.console.log(e); }); webWorker.postMessage({ driver: driverName, value: 'I have been set' }); }); }); });