dom-storage.js/tests/test.js

60 lines
1.6 KiB
JavaScript
Raw Normal View History

2011-07-22 19:21:23 +00:00
(function () {
"use strict";
var assert = require('assert')
2012-08-16 19:15:28 +00:00
, fs = require('fs')
, Storage = require('../')
2012-08-16 19:15:28 +00:00
, dbPath = './db.json'
2011-07-22 19:21:23 +00:00
;
2012-08-16 19:15:28 +00:00
function runTest(storage) {
// should not return prototype properties
assert.strictEqual(null, storage.getItem('key'));
2012-08-16 19:15:28 +00:00
assert.strictEqual(0, Object.keys(storage).length);
assert.strictEqual(0, storage.length);
2011-07-22 19:21:23 +00:00
2012-08-16 19:15:28 +00:00
// can't make assuptions about key positioning
storage.setItem('a', 1);
assert.strictEqual(storage.key(0), 'a');
2011-07-22 19:21:23 +00:00
2012-08-16 19:15:28 +00:00
storage.setItem('b', '2');
assert.strictEqual(storage.getItem('a'), 1);
2012-08-16 19:15:28 +00:00
assert.strictEqual(storage.getItem('b'), '2');
assert.strictEqual(storage.length, 2);
2011-07-22 19:21:23 +00:00
2012-08-16 19:15:28 +00:00
assert.strictEqual(storage['c'], undefined);
assert.strictEqual(storage.getItem('c'), null);
2011-07-22 19:21:23 +00:00
2012-08-16 19:15:28 +00:00
storage.setItem('c');
assert.strictEqual(storage.getItem('c'), null);
2012-08-16 19:15:28 +00:00
assert.strictEqual(storage.length, 3);
2011-07-22 19:21:23 +00:00
2012-08-16 19:15:28 +00:00
storage.removeItem('c');
assert.strictEqual(storage.getItem('c'), null);
assert.strictEqual(storage.length, 2);
2011-07-22 19:21:23 +00:00
2012-08-16 19:15:28 +00:00
storage.clear();
assert.strictEqual(storage.getItem('a'), null);
assert.strictEqual(storage.getItem('b'), null);
assert.strictEqual(storage.length, 0);
}
function runAll() {
var localStorage = new Storage(dbPath, { strict: false, ws: ' ' })
, sessionStorage = new Storage(null, { strict: false })
2012-08-16 19:15:28 +00:00
;
runTest(sessionStorage);
runTest(localStorage);
localStorage.setItem('a', 1);
setTimeout(function () {
assert.deepEqual({ a: 1 }, JSON.parse(fs.readFileSync(dbPath)));
console.log('All tests passed');
}, 100);
}
fs.unlink(dbPath, runAll);
2011-07-22 19:21:23 +00:00
}());