mirror of
https://github.com/localForage/localForage.git
synced 2026-01-18 14:31:57 +00:00
194 lines
7.4 KiB
JavaScript
194 lines
7.4 KiB
JavaScript
/* global beforeEach:true, describe:true, expect:true, it:true */
|
|
describe('Driver API', function() {
|
|
'use strict';
|
|
|
|
beforeEach(function(done) {
|
|
if (localforage.supports(localforage.INDEXEDDB)) {
|
|
localforage.setDriver(localforage.INDEXEDDB, function() {
|
|
done();
|
|
});
|
|
} else if (localforage.supports(localforage.WEBSQL)) {
|
|
localforage.setDriver(localforage.WEBSQL, function() {
|
|
done();
|
|
});
|
|
} else {
|
|
done();
|
|
}
|
|
});
|
|
|
|
if (
|
|
(localforage.supports(localforage.INDEXEDDB) &&
|
|
localforage.driver() === localforage.INDEXEDDB) ||
|
|
(localforage.supports(localforage.WEBSQL) &&
|
|
localforage.driver() === localforage.WEBSQL)
|
|
) {
|
|
it(
|
|
'can change to localStorage from ' +
|
|
localforage.driver() +
|
|
' [callback]',
|
|
function(done) {
|
|
var previousDriver = localforage.driver();
|
|
|
|
localforage.setDriver(localforage.LOCALSTORAGE, function() {
|
|
expect(localforage.driver()).to.be(
|
|
localforage.LOCALSTORAGE
|
|
);
|
|
expect(localforage.driver()).to.not.be(previousDriver);
|
|
done();
|
|
});
|
|
}
|
|
);
|
|
it(
|
|
'can change to localStorage from ' +
|
|
localforage.driver() +
|
|
' [promise]',
|
|
function(done) {
|
|
var previousDriver = localforage.driver();
|
|
|
|
localforage
|
|
.setDriver(localforage.LOCALSTORAGE)
|
|
.then(function() {
|
|
expect(localforage.driver()).to.be(
|
|
localforage.LOCALSTORAGE
|
|
);
|
|
expect(localforage.driver()).to.not.be(previousDriver);
|
|
done();
|
|
});
|
|
}
|
|
);
|
|
}
|
|
|
|
if (!localforage.supports(localforage.INDEXEDDB)) {
|
|
it("can't use unsupported IndexedDB [callback]", function(done) {
|
|
var previousDriver = localforage.driver();
|
|
expect(previousDriver).to.not.be(localforage.INDEXEDDB);
|
|
|
|
// These should be rejected in component builds but aren't.
|
|
// TODO: Look into why.
|
|
localforage.setDriver(localforage.INDEXEDDB, null, function() {
|
|
expect(localforage.driver()).to.be(previousDriver);
|
|
done();
|
|
});
|
|
});
|
|
it("can't use unsupported IndexedDB [promise]", function(done) {
|
|
var previousDriver = localforage.driver();
|
|
expect(previousDriver).to.not.be(localforage.INDEXEDDB);
|
|
|
|
// These should be rejected in component builds but aren't.
|
|
// TODO: Look into why.
|
|
localforage.setDriver(localforage.INDEXEDDB).then(null, function() {
|
|
expect(localforage.driver()).to.be(previousDriver);
|
|
done();
|
|
});
|
|
});
|
|
} else {
|
|
it('can set already active IndexedDB [callback]', function(done) {
|
|
var previousDriver = localforage.driver();
|
|
expect(previousDriver).to.be(localforage.INDEXEDDB);
|
|
|
|
localforage.setDriver(localforage.INDEXEDDB, function() {
|
|
expect(localforage.driver()).to.be(previousDriver);
|
|
done();
|
|
});
|
|
});
|
|
it('can set already active IndexedDB [promise]', function(done) {
|
|
var previousDriver = localforage.driver();
|
|
expect(previousDriver).to.be(localforage.INDEXEDDB);
|
|
|
|
localforage.setDriver(localforage.INDEXEDDB).then(function() {
|
|
expect(localforage.driver()).to.be(previousDriver);
|
|
done();
|
|
});
|
|
});
|
|
}
|
|
|
|
if (!localforage.supports(localforage.LOCALSTORAGE)) {
|
|
it("can't use unsupported localStorage [callback]", function(done) {
|
|
var previousDriver = localforage.driver();
|
|
expect(previousDriver).to.not.be(localforage.LOCALSTORAGE);
|
|
|
|
localforage.setDriver(localforage.LOCALSTORAGE, null, function() {
|
|
expect(localforage.driver()).to.be(previousDriver);
|
|
done();
|
|
});
|
|
});
|
|
it("can't use unsupported localStorage [promise]", function(done) {
|
|
var previousDriver = localforage.driver();
|
|
expect(previousDriver).to.not.be(localforage.LOCALSTORAGE);
|
|
|
|
localforage
|
|
.setDriver(localforage.LOCALSTORAGE)
|
|
.then(null, function() {
|
|
expect(localforage.driver()).to.be(previousDriver);
|
|
done();
|
|
});
|
|
});
|
|
} else if (
|
|
!localforage.supports(localforage.INDEXEDDB) &&
|
|
!localforage.supports(localforage.WEBSQL)
|
|
) {
|
|
it('can set already active localStorage [callback]', function(done) {
|
|
var previousDriver = localforage.driver();
|
|
expect(previousDriver).to.be(localforage.LOCALSTORAGE);
|
|
|
|
localforage.setDriver(localforage.LOCALSTORAGE, function() {
|
|
expect(localforage.driver()).to.be(previousDriver);
|
|
done();
|
|
});
|
|
});
|
|
it('can set already active localStorage [promise]', function(done) {
|
|
var previousDriver = localforage.driver();
|
|
expect(previousDriver).to.be(localforage.LOCALSTORAGE);
|
|
|
|
localforage.setDriver(localforage.LOCALSTORAGE).then(function() {
|
|
expect(localforage.driver()).to.be(previousDriver);
|
|
done();
|
|
});
|
|
});
|
|
}
|
|
|
|
if (!localforage.supports(localforage.WEBSQL)) {
|
|
it("can't use unsupported WebSQL [callback]", function(done) {
|
|
var previousDriver = localforage.driver();
|
|
expect(previousDriver).to.not.be(localforage.WEBSQL);
|
|
|
|
localforage.setDriver(localforage.WEBSQL, null, function() {
|
|
expect(localforage.driver()).to.be(previousDriver);
|
|
done();
|
|
});
|
|
});
|
|
it("can't use unsupported WebSQL [promise]", function(done) {
|
|
var previousDriver = localforage.driver();
|
|
expect(previousDriver).to.not.be(localforage.WEBSQL);
|
|
|
|
localforage.setDriver(localforage.WEBSQL).then(null, function() {
|
|
expect(localforage.driver()).to.be(previousDriver);
|
|
done();
|
|
});
|
|
});
|
|
} else {
|
|
it('can set already active WebSQL [callback]', function(done) {
|
|
localforage.setDriver(localforage.WEBSQL, function() {
|
|
var previousDriver = localforage.driver();
|
|
expect(previousDriver).to.be(localforage.WEBSQL);
|
|
|
|
localforage.setDriver(localforage.WEBSQL, function() {
|
|
expect(localforage.driver()).to.be(previousDriver);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
it('can set already active WebSQL [promise]', function(done) {
|
|
localforage.setDriver(localforage.WEBSQL).then(function() {
|
|
var previousDriver = localforage.driver();
|
|
expect(previousDriver).to.be(localforage.WEBSQL);
|
|
|
|
localforage.setDriver(localforage.WEBSQL).then(function() {
|
|
expect(localforage.driver()).to.be(previousDriver);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
}
|
|
});
|