blob: 5aa272647489771946a4463e553de7b1060476c4 [file] [log] [blame]
<html>
<head>
<title>Pouch DB Capacity Tests</title>
<script src="../../dist/pouchdb.js"></script>
</head>
<body>
<div><h1>Check your console logs to see what's going on.</h1></div>
<script>
var db,
test = { iteration: 0, delay:100, docSize:500000 };
var delayedIteration = function(delay) {
if(!delay) delay = test.delay;
setTimeout(iterate, delay);
};
var iterate = function() {
console.log('iterating: ' + ++test.iteration);
addRandomDoc(test.docSize, delayedIteration);
};
var uuid = function() {
console.log('generating uuid...');
// from https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
return v.toString(16);
});
console.log('uuid generated.');
return uuid;
};
var randomString = function(length) {
var s = '', add;
while(length > 0) {
add = Math.random().toString(36).substring(2, 2+Math.min(10, length));
length -= add.length;
s += add;
}
console.log('string generated.');
return s;
};
var addRandomDoc = function(len, successCallback) {
console.log('adding a random doc of len: ' + len + '...');
var doc = { content:randomString(len), _id:uuid() };
console.log('putting ...');
db.put(doc, function(err, res) {
if (err) {
console.error(err);
if (err.reason === 'QuotaExceededError') {
console.log('Received expected write failure, passing tests');
document.body.innerHTML = ':) Tests passed';
}
return;
}
console.log('Document add was successful.');
if(successCallback) successCallback();
});
};
console.log('dropping database...');
db = new PouchDB('test');
db.destroy(function(err, res) {
if(err) return console.log('[drop]' + err);
console.log('database dropped. Starting puts...');
db = new PouchDB('test');
delayedIteration(0);
});
</script>
</body>
</html>