Chromium Code Reviews| 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."); |
|
jsbell
2014/05/29 00:40:06
Since this test doesn't have any shouldXXXX() asse
ericu
2014/06/02 22:18:47
Done.
|
| + |
| +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"}); |
|
jsbell
2014/05/29 00:40:06
No need to escape the forward slash here (and belo
ericu
2014/06/02 22:18:47
Done.
|
| + key = "blob key"; |
| + evalAndLog("store0.put(blobA, key)"); |
| + delete blobA; |
|
jsbell
2014/05/29 00:40:06
This is unusual; it's unclear why you'd write this
ericu
2014/06/02 22:18:47
Fixed; I'd misremembered how delete worked.
As it
|
| +} |
| + |
| +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> |
| + |