Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/storage/indexeddb/idbcursor-update-exception-order.html |
| diff --git a/third_party/WebKit/LayoutTests/storage/indexeddb/idbcursor-update-exception-order.html b/third_party/WebKit/LayoutTests/storage/indexeddb/idbcursor-update-exception-order.html |
| index e0cdf8077a86bb05bf8e12dc64a543fe9a6e4d5b..39884b76e2980a13cff4aa7fcc3f0ac26bd87436 100644 |
| --- a/third_party/WebKit/LayoutTests/storage/indexeddb/idbcursor-update-exception-order.html |
| +++ b/third_party/WebKit/LayoutTests/storage/indexeddb/idbcursor-update-exception-order.html |
| @@ -1,99 +1,99 @@ |
| <!DOCTYPE html> |
| <title>IndexedDB: IDBCursor update() Exception Ordering</title> |
| +<meta charset=utf-8> |
| <link rel="help" href="https://w3c.github.io/IndexedDB/#dom-idbcursor-update"> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script src="resources/testharness-helpers.js"></script> |
| - |
| <script> |
| indexeddb_test( |
| - function(t, db) { |
| - var s = db.createObjectStore('s'); |
| - s.put('value', 'key'); |
| - }, |
| - function(t, db) { |
| - var s = db.transaction('s', 'readonly').objectStore('s'); |
| - var r = s.openCursor(); |
| - r.onsuccess = t.step_func(function() { |
| - r.onsuccess = null; |
| - var cursor = r.result; |
| - setTimeout(t.step_func(function() { |
| - assert_throws('TransactionInactiveError', function() { |
| - cursor.update('value2'); |
| - }, '"Transaction inactive" check (TransactionInactiveError) ' + |
| - 'should precede "read only" check (ReadOnlyError)'); |
| - t.done(); |
| - }), 0); |
| - }); |
| - }, |
| - 'IDBCursor.update exception order: TransactionInactiveError vs. ReadOnlyError' |
| + (t, db) => { |
| + const s = db.createObjectStore('s'); |
| + s.put('value', 'key'); |
| + }, |
| + (t, db) => { |
| + const s = db.transaction('s', 'readonly').objectStore('s'); |
| + const r = s.openCursor(); |
| + r.onsuccess = t.step_func(() => { |
| + r.onsuccess = null; |
| + const cursor = r.result; |
| + setTimeout(t.step_func(() => { |
| + assert_throws('TransactionInactiveError', () => { |
| + cursor.update('value2'); |
| + }, '"Transaction inactive" check (TransactionInactiveError) ' + |
| + 'should precede "read only" check (ReadOnlyError)'); |
| + t.done(); |
| + }), 0); |
| + }); |
| + }, |
| + 'IDBCursor.update exception order: TransactionInactiveError vs. ReadOnlyError' |
| ); |
| indexeddb_test( |
| - function(t, db) { |
| - var s = db.createObjectStore('s'); |
| - s.put('value', 'key'); |
| - }, |
| - function(t, db) { |
| - var s = db.transaction('s', 'readonly').objectStore('s'); |
| - var r = s.openCursor(); |
| - r.onsuccess = t.step_func(function() { |
| - r.onsuccess = null; |
| - var cursor = r.result; |
| - cursor.continue(); |
| - assert_throws('ReadOnlyError', function() { |
| - cursor.update('value2'); |
| - }, '"Read only" check (ReadOnlyError) should precede '+ |
| - '"got value flag" check (InvalidStateError)'); |
| - t.done(); |
| - }); |
| - }, |
| - 'IDBCursor.update exception order: ReadOnlyError vs. InvalidStateError #1' |
| + (t, db) => { |
| + const s = db.createObjectStore('s'); |
| + s.put('value', 'key'); |
| + }, |
| + (t, db) => { |
| + const s = db.transaction('s', 'readonly').objectStore('s'); |
| + const r = s.openCursor(); |
| + r.onsuccess = t.step_func(() => { |
| + r.onsuccess = null; |
| + const cursor = r.result; |
| + cursor.continue(); |
| + assert_throws('ReadOnlyError', () => { |
| + cursor.update('value2'); |
| + }, '"Read only" check (ReadOnlyError) should precede '+ |
| + '"got value flag" check (InvalidStateError)'); |
| + t.done(); |
| + }); |
| + }, |
| + 'IDBCursor.update exception order: ReadOnlyError vs. InvalidStateError #1' |
| ); |
| indexeddb_test( |
| - function(t, db) { |
| - var s = db.createObjectStore('s'); |
| - s.put('value', 'key'); |
| - }, |
| - function(t, db) { |
| - var s = db.transaction('s', 'readonly').objectStore('s'); |
| - var r = s.openKeyCursor(); |
| - r.onsuccess = t.step_func(function() { |
| - r.onsuccess = null; |
| - var cursor = r.result; |
| - cursor.continue(); |
| - assert_throws('ReadOnlyError', function() { |
| - cursor.update('value2'); |
| - }, '"Read only" check (ReadOnlyError) should precede '+ |
| - '"key only flag" check (InvalidStateError)'); |
| - t.done(); |
| - }); |
| - }, |
| - 'IDBCursor.update exception order: ReadOnlyError vs. InvalidStateError #2' |
| + (t, db) => { |
| + const s = db.createObjectStore('s'); |
| + s.put('value', 'key'); |
| + }, |
| + (t, db) => { |
| + const s = db.transaction('s', 'readonly').objectStore('s'); |
| + const r = s.openKeyCursor(); |
| + r.onsuccess = t.step_func(() => { |
| + r.onsuccess = null; |
| + const cursor = r.result; |
| + cursor.continue(); |
|
pwnall
2016/10/14 07:57:04
I think this continue() call also gets you in the
jsbell
2016/10/17 19:42:03
Done.
|
| + assert_throws('ReadOnlyError', () => { |
| + cursor.update('value2'); |
| + }, '"Read only" check (ReadOnlyError) should precede '+ |
| + '"key only flag" check (InvalidStateError)'); |
| + t.done(); |
| + }); |
| + }, |
| + 'IDBCursor.update exception order: ReadOnlyError vs. InvalidStateError #2' |
| ); |
| indexeddb_test( |
| - function(t, db) { |
| - var s = db.createObjectStore('s', {keyPath: 'id'}); |
| - s.put({id: 123, data: 'value'}); |
| - }, |
| - function(t, db) { |
| - var s = db.transaction('s', 'readwrite').objectStore('s'); |
| - var r = s.openCursor(); |
| - r.onsuccess = t.step_func(function() { |
| - r.onsuccess = null; |
| - var cursor = r.result; |
| - cursor.continue(); |
| - assert_throws('InvalidStateError', function() { |
| - cursor.update({id: 123, data: 'value2'}); |
| - }, '"Got value flag" check (InvalidStateError) should precede ' + |
| - '"modified key" check (DataError)'); |
| - t.done(); |
| - }); |
| - }, |
| - 'IDBCursor.update exception order: InvalidStateError vs. DataError' |
| + (t, db) => { |
| + const s = db.createObjectStore('s', {keyPath: 'id'}); |
| + s.put({id: 123, data: 'value'}); |
| + }, |
| + (t, db) => { |
| + const s = db.transaction('s', 'readwrite').objectStore('s'); |
| + const r = s.openCursor(); |
| + r.onsuccess = t.step_func(() => { |
| + r.onsuccess = null; |
| + const cursor = r.result; |
| + cursor.continue(); |
| + assert_throws('InvalidStateError', () => { |
| + cursor.update({id: 123, data: 'value2'}); |
| + }, '"Got value flag" check (InvalidStateError) should precede ' + |
| + '"modified key" check (DataError)'); |
| + t.done(); |
| + }); |
| + }, |
| + 'IDBCursor.update exception order: InvalidStateError vs. DataError' |
| ); |
| </script> |