Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(380)

Side by Side Diff: LayoutTests/storage/indexeddb/microtasks.html

Issue 555163005: Deactivate IDBTransactions created within Microtasks (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove bogus line, clean up hideous conditional Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <title>IndexedDB: Verify transaction activation behavior around microtasks</titl e> 2 <title>IndexedDB: Verify transaction activation behavior around microtasks</titl e>
3 <script src="../../resources/testharness.js"></script> 3 <script src="../../resources/testharness.js"></script>
4 <script src="../../resources/testharnessreport.js"></script> 4 <script src="../../resources/testharnessreport.js"></script>
5 <script> 5 <script>
6 6
7 function idb_test(description, onUpgrade, onOpen) { 7 function idb_test(description, onUpgrade, onOpen) {
8 var t = async_test(description); 8 var t = async_test(description);
9 t.step(function() { 9 t.step(function() {
10 var dbName = 'db' + location.pathname + '-' + description; 10 var dbName = 'db' + location.pathname + '-' + description;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 assert_false(isTransactionActive(tx, 'store'), 51 assert_false(isTransactionActive(tx, 'store'),
52 'Transaction should be inactive once control re turns to event loop'); 52 'Transaction should be inactive once control re turns to event loop');
53 t.done(); 53 t.done();
54 }), 0); 54 }), 0);
55 }); 55 });
56 })); 56 }));
57 } 57 }
58 ); 58 );
59 59
60 idb_test( 60 idb_test(
61 'Transactions created in microtasks resolved by host behavior are deactivate d when control returns to the event loop',
62 function(t, db) {
63 db.createObjectStore('store');
64 },
65 function(t, db) {
66 var aesAlgorithmKeyGen = {name: "AES-CBC", length: 128};
67 crypto.subtle.generateKey(aesAlgorithmKeyGen, false, ["encrypt"]).then(t .step_func(function() {
68 var tx = db.transaction('store');
69 var request = tx.objectStore('store').get(0);
70 request.onerror = t.unreached_func('request should not fail');
71 request.onsuccess = t.step_func(function() {
72 assert_true(isTransactionActive(tx, 'store'),
73 'Transaction should be active during event dispatch' );
74 setTimeout(t.step_func(function() {
75 assert_false(isTransactionActive(tx, 'store'),
76 'Transaction should be inactive once control re turns to event loop');
77 t.done();
78 }), 0);
79 });
80 }));
81 }
82 );
83
84 idb_test(
61 'Transactions created in microtasks remain active in subsequent microtasks', 85 'Transactions created in microtasks remain active in subsequent microtasks',
62 function(t, db) { 86 function(t, db) {
63 db.createObjectStore('store'); 87 db.createObjectStore('store');
64 }, 88 },
65 function(t, db) { 89 function(t, db) {
66 var tx; 90 var tx;
67 Promise.resolve().then(function() { 91 Promise.resolve().then(function() {
68 tx = db.transaction('store'); 92 tx = db.transaction('store');
69 assert_true(isTransactionActive(tx, 'store'), 93 assert_true(isTransactionActive(tx, 'store'),
70 'Transaction should be active when created'); 94 'Transaction should be active when created');
(...skipping 28 matching lines...) Expand all
99 assert_false(isTransactionActive(tx, 'store'), 123 assert_false(isTransactionActive(tx, 'store'),
100 'Transaction should be inactive once control ret urns to the event loop'); 124 'Transaction should be inactive once control ret urns to the event loop');
101 t.done(); 125 t.done();
102 }), 0); 126 }), 0);
103 })); 127 }));
104 }); 128 });
105 } 129 }
106 ); 130 );
107 131
108 </script> 132 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698