| Index: LayoutTests/storage/indexeddb/blob-delete-objectstore-db.html
|
| diff --git a/LayoutTests/storage/indexeddb/blob-delete-objectstore-db.html b/LayoutTests/storage/indexeddb/blob-delete-objectstore-db.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..70316d47b09f94b73c28355fd024d6636af929af
|
| --- /dev/null
|
| +++ b/LayoutTests/storage/indexeddb/blob-delete-objectstore-db.html
|
| @@ -0,0 +1,75 @@
|
| +<html>
|
| +<head>
|
| +<script src="../../resources/js-test.js"></script>
|
| +<script src="resources/shared.js"></script>
|
| +</head>
|
| +<body>
|
| +<script>
|
| +
|
| +description("Test deleting an object store and a database containing blobs.");
|
| +
|
| +indexedDBTest(prepareDatabase, reopen, {version: 1});
|
| +function prepareDatabase()
|
| +{
|
| + db = event.target.result;
|
| + event.target.transaction.onabort = unexpectedAbortCallback;
|
| + evalAndLog("store0 = db.createObjectStore('store0')");
|
| + evalAndLog("store1 = db.createObjectStore('store1')");
|
| + blobAContent = "First blob content";
|
| + blobA = new Blob([blobAContent], {"type" : "text\/plain"});
|
| + key = "blob key";
|
| + evalAndLog("store0.put(blobA, key)");
|
| + delete blobA;
|
| +}
|
| +
|
| +function reopen()
|
| +{
|
| + evalAndLog("db.close()");
|
| + debug("");
|
| + debug("reopen():");
|
| + request = indexedDB.open(dbname, 2);
|
| + request.onupgradeneeded = deleteObjectStore;
|
| + request.onsuccess = unexpectedSuccessCallback;
|
| + request.onerror = unexpectedErrorCallback;
|
| + request.onblocked = unexpectedBlockedCallback;
|
| +}
|
| +
|
| +function deleteObjectStore(e)
|
| +{
|
| + debug("");
|
| + debug("deleteObjectStore():");
|
| + db = e.target.result;
|
| + evalAndLog("db.deleteObjectStore('store0')");
|
| + request.onsuccess = didDeleteObjectStore;
|
| +}
|
| +
|
| +function didDeleteObjectStore()
|
| +{
|
| + debug("");
|
| + debug("didDeleteObjectStore()");
|
| + blobBContent = "Second blob content";
|
| + evalAndLog("trans = db.transaction('store1', 'readwrite')");
|
| + evalAndLog("store1 = trans.objectStore('store1')");
|
| + blobB = new Blob([blobBContent], {"type" : "text\/plain"});
|
| + evalAndLog("store1.put(blobB, key)");
|
| + delete blobB;
|
| + trans.oncomplete = deleteDatabase;
|
| +}
|
| +
|
| +function deleteDatabase()
|
| +{
|
| + evalAndLog("db.close()");
|
| + evalAndLog("request = indexedDB.deleteDatabase(dbname)");
|
| + request.onerror = unexpectedErrorCallback;
|
| + request.onsuccess = reportSuccess;
|
| +}
|
| +
|
| +function reportSuccess()
|
| +{
|
| + debug("Database deleted.");
|
| + finishJSTest();
|
| +}
|
| +</script>
|
| +</body>
|
| +</html>
|
| +
|
|
|