Index: LayoutTests/storage/indexeddb/microtasks.html |
diff --git a/LayoutTests/storage/indexeddb/microtasks.html b/LayoutTests/storage/indexeddb/microtasks.html |
deleted file mode 100644 |
index 42954d850c42c45e6f03bc9c08758c616349d216..0000000000000000000000000000000000000000 |
--- a/LayoutTests/storage/indexeddb/microtasks.html |
+++ /dev/null |
@@ -1,108 +0,0 @@ |
-<!DOCTYPE html> |
-<title>IndexedDB: Verify transaction activation behavior around microtasks</title> |
-<script src="../../resources/testharness.js"></script> |
-<script src="../../resources/testharnessreport.js"></script> |
-<script> |
- |
-function idb_test(description, onUpgrade, onOpen) { |
- var t = async_test(description); |
- t.step(function() { |
- var dbName = 'db' + location.pathname + '-' + description; |
- var deleteRequest = indexedDB.deleteDatabase(dbName); |
- deleteRequest.onerror = t.unreached_func('deleteDatabase should not fail'); |
- deleteRequest.onsuccess = t.step_func(function(e) { |
- var openRequest = indexedDB.open(dbName); |
- openRequest.onerror = t.unreached_func('open should not fail'); |
- openRequest.onupgradeneeded = t.step_func(function(e) { |
- onUpgrade(t, openRequest.result); |
- }); |
- openRequest.onsuccess = t.step_func(function(e) { |
- onOpen(t, openRequest.result); |
- }); |
- }); |
- }); |
-} |
- |
-function isTransactionActive(tx, storeName) { |
- try { |
- tx.objectStore(storeName).get(0); |
- return true; |
- } catch (ex) { |
- assert_equals(ex.name, 'TransactionInactiveError', |
- 'Failure should be due to inactive transaction'); |
- return false; |
- } |
-} |
- |
-idb_test( |
- 'Transactions created in microtasks are deactivated when control returns to the event loop', |
- function(t, db) { |
- db.createObjectStore('store'); |
- }, |
- function(t, db) { |
- Promise.resolve().then(t.step_func(function() { |
- var tx = db.transaction('store'); |
- var request = tx.objectStore('store').get(0); |
- request.onerror = t.unreached_func('request should not fail'); |
- request.onsuccess = t.step_func(function() { |
- assert_true(isTransactionActive(tx, 'store'), |
- 'Transaction should be active during event dispatch'); |
- setTimeout(function() { |
- assert_false(isTransactionActive(tx, 'store'), |
- 'Transaction should be inactive once control returns to event loop'); |
- t.done(); |
- }, 0); |
- }); |
- })); |
- } |
-); |
- |
-idb_test( |
- 'Transactions created in microtasks remain active in subsequent microtasks', |
- function(t, db) { |
- db.createObjectStore('store'); |
- }, |
- function(t, db) { |
- var tx; |
- Promise.resolve().then(function() { |
- tx = db.transaction('store'); |
- assert_true(isTransactionActive(tx, 'store'), |
- 'Transaction should be active when created'); |
- }).then(t.step_func(function() { |
- assert_true(isTransactionActive(tx, 'store'), |
- 'Transaction should be active until control returns to event loop'); |
- setTimeout(function() { |
- assert_false(isTransactionActive(tx, 'store'), |
- 'Transaction should be inactive once control returns to event loop'); |
- t.done(); |
- }, 0); |
- })); |
- } |
-); |
- |
-idb_test( |
- 'Within request event dispatch, transactions remain active across microtasks', |
- function(t, db) { |
- db.createObjectStore('store'); |
- }, |
- function(t, db) { |
- var tx = db.transaction('store'); |
- var request = tx.objectStore('store').get(0); |
- request.onerror = t.unreached_func('request should not fail'); |
- request.onsuccess = t.step_func(function() { |
- assert_true(isTransactionActive(tx, 'store'), |
- 'Transaction should be active during event dispatch'); |
- Promise.resolve().then(t.step_func(function() { |
- assert_true(isTransactionActive(tx, 'store'), |
- 'Microtasks are run as part of event dispatch, so transaction should still be active'); |
- setTimeout(function() { |
- assert_false(isTransactionActive(tx, 'store'), |
- 'Transaction should be inactive once control returns to the event loop'); |
- t.done(); |
- }, 0); |
- })); |
- }); |
- } |
-); |
- |
-</script> |