blob: 4225c0b3714d431f80aaa6c709b72cf1f1998eae [file] [log] [blame]
description("This test does basic testing of IDBObjectStore.add(), making sure that an attempt to overwrite an already-existing key fails with the appropriate error.");
indexedDBTest(prepareDatabase);
function done()
{
finishJSTest();
}
function prepareDatabase(event)
{
debug("Upgrade needed: Old version - " + event.oldVersion + " New version - " + event.newVersion);
var tx = event.target.transaction;
var db = event.target.result;
debug(tx + " - " + tx.mode);
debug(db);
var os = db.createObjectStore("TestObjectStore");
var putRequest1 = os.add("bar", "foo");
var putRequest2 = os.add("baz", "foo");
putRequest1.onsuccess = function(event) {
debug("put 1 succeeded - key was '" + putRequest1.result + "'");
}
putRequest1.onerror = function(event) {
debug("put 1 unexpectedly failed - " + event);
done();
}
putRequest2.onsuccess = function(event) {
debug("put 2 unexpectedly succeeded - key was '" + putRequest2.result + "'");
done();
}
putRequest2.onerror = function(event) {
debug("put 2 failed - " + event.type);
var getRequest = os.get("foo");
getRequest.onsuccess = function(event) {
debug("get succeeded - key was '" + getRequest.result + "'");
}
getRequest.onerror = function(event) {
debug("get unexpectedly failed - " + event.type);
done();
}
event.stopPropagation();
event.preventDefault();
}
tx.onabort = function(event) {
debug("version change transaction unexpected abort");
done();
}
tx.oncomplete = function(event) {
debug("version change transaction completed");
done();
}
tx.onerror = function(event) {
debug("version change transaction unexpected error - " + event);
done();
}
}