3 <script src="../../fast/js/resources/js-test-pre.js"></script>
4 <script src="resources/shared.js"></script>
7 <p id="description"></p>
8 <div id="console"></div>
11 description("Test IndexedDB's webkitIDBObjectStore.deleteObjectStore().");
12 if (window.layoutTestController)
13 layoutTestController.waitUntilDone();
17 request = evalAndLog("webkitIndexedDB.open('objectstore-removeobjectstore')");
18 request.onsuccess = startSetVersion;
19 request.onerror = unexpectedErrorCallback;
22 function startSetVersion()
24 db = evalAndLog("db = event.target.result");
26 request = evalAndLog("db.setVersion('new version')");
27 request.onsuccess = deleteExisting;
28 request.onerror = unexpectedErrorCallback;
31 function deleteExisting()
33 window.trans = evalAndLog("trans = event.target.result");
34 shouldBeTrue("trans !== null");
36 deleteAllObjectStores(db);
38 store = evalAndLog("store = db.createObjectStore('storeName', null)");
40 window.index = evalAndLog("store.createIndex('indexName', '')");
41 shouldBeTrue("store.indexNames.contains('indexName')");
43 request = evalAndLog("store.add('value', 'key')");
44 request.onsuccess = getValue;
45 request.onerror = unexpectedErrorCallback;
50 transaction = evalAndLog("db.transaction(['storeName'])");
51 transaction.onabort = unexpectedErrorCallback;
52 var store = evalAndLog("store = transaction.objectStore('storeName')");
54 request = evalAndLog("store.get('key')");
55 request.onsuccess = addIndex;
56 request.onerror = unexpectedErrorCallback;
61 shouldBeEqualToString("event.target.result", "value");
63 request = evalAndLog("db.setVersion('new version')");
64 request.onsuccess = deleteObjectStore;
65 request.onerror = unexpectedErrorCallback;
68 function deleteObjectStore()
70 window.trans = evalAndLog("trans = event.target.result");
71 shouldBeTrue("trans !== null");
72 trans.onabort = unexpectedAbortCallback;
74 evalAndLog("db.deleteObjectStore('storeName')");
75 createObjectStoreAgain();
78 function createObjectStoreAgain()
80 evalAndLog("db.createObjectStore('storeName', null)");
84 function getValueAgain()
86 transaction = evalAndLog("db.transaction(['storeName'])");
87 transaction.onabort = unexpectedErrorCallback;
88 var store = evalAndLog("store = transaction.objectStore('storeName')");
90 request = evalAndLog("store.get('key')");
91 request.onsuccess = verifyNotFound;
92 request.onerror = unexpectedErrorCallback;
95 function verifyNotFound()
97 shouldBe("event.target.result", "undefined");
98 shouldBeFalse("event.target.source.indexNames.contains('indexName')");