<!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=support.js></script> <script> var db, add_success = false, t = async_test(document.title, {timeout: 10000}) 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"); assert_throws(null, function() { objStore.add(2); }); assert_throws(null, function() { objStore.put(3); }); assert_throws(null, function() { objStore.get(1); }); assert_throws(null, function() { objStore.clear(); }); assert_throws(null, function() { objStore.count(); }); assert_throws(null, function() { objStore.delete(1); }); assert_throws(null, function() { objStore.openCursor(); }); assert_throws(null, function() { objStore.index("idx"); }); assert_throws(null, function() { objStore.deleteIndex("idx"); }); assert_throws(null, function() { objStore.createIndex("idx2", "a"); }); } open_rq.onsuccess = function() { assert_true(add_success, "First add was successful"); t.done(); } </script> <div id=log></div>