diff options
Diffstat (limited to 'testing/web-platform/tests/IndexedDB/idbobjectstore_deleted.htm')
-rw-r--r-- | testing/web-platform/tests/IndexedDB/idbobjectstore_deleted.htm | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/testing/web-platform/tests/IndexedDB/idbobjectstore_deleted.htm b/testing/web-platform/tests/IndexedDB/idbobjectstore_deleted.htm new file mode 100644 index 0000000000..5ccc8fdb1b --- /dev/null +++ b/testing/web-platform/tests/IndexedDB/idbobjectstore_deleted.htm @@ -0,0 +1,50 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>Attempting to use deleted IDBObjectStore</title> +<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#object-store"> +<link rel=assert title="InvalidStateError Occurs if a request is made on a source object that has been deleted or removed."> +<link rel=author href="mailto:odinho@opera.com" title="Odin Hørthe Omdal"> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=resources/support.js></script> + +<script> + var db, + add_success = false, + t = async_test() + + var open_rq = createdb(t); + open_rq.onupgradeneeded = function(e) { + db = e.target.result; + + var objStore = db.createObjectStore("store", { autoIncrement: true }); + assert_equals(db.objectStoreNames[0], "store", "objectStoreNames"); + + var rq_add = objStore.add(1); + rq_add.onsuccess = function() { add_success = true; }; + rq_add.onerror = fail(t, 'rq_add.error'); + + objStore.createIndex("idx", "a"); + db.deleteObjectStore("store"); + assert_equals(db.objectStoreNames.length, 0, "objectStoreNames.length after delete"); + + const exc = "InvalidStateError" + assert_throws_dom(exc, function() { objStore.add(2); }); + assert_throws_dom(exc, function() { objStore.put(3); }); + assert_throws_dom(exc, function() { objStore.get(1); }); + assert_throws_dom(exc, function() { objStore.clear(); }); + assert_throws_dom(exc, function() { objStore.count(); }); + assert_throws_dom(exc, function() { objStore.delete(1); }); + assert_throws_dom(exc, function() { objStore.openCursor(); }); + assert_throws_dom(exc, function() { objStore.index("idx"); }); + assert_throws_dom(exc, function() { objStore.deleteIndex("idx"); }); + assert_throws_dom(exc, function() { objStore.createIndex("idx2", "a"); }); + } + + open_rq.onsuccess = function() { + assert_true(add_success, "First add was successful"); + t.done(); + } +</script> + +<div id=log></div> |