| Index: third_party/WebKit/LayoutTests/storage/indexeddb/idbdatabase-createObjectStore-exception-order.html
|
| diff --git a/third_party/WebKit/LayoutTests/storage/indexeddb/idbdatabase-createObjectStore-exception-order.html b/third_party/WebKit/LayoutTests/storage/indexeddb/idbdatabase-createObjectStore-exception-order.html
|
| index 2c9236640a5f1cce7263a2fde3f2eb4395f0abc4..5de8ed6a16e4a04591e66a9b003ea755daba0d0a 100644
|
| --- a/third_party/WebKit/LayoutTests/storage/indexeddb/idbdatabase-createObjectStore-exception-order.html
|
| +++ b/third_party/WebKit/LayoutTests/storage/indexeddb/idbdatabase-createObjectStore-exception-order.html
|
| @@ -1,23 +1,80 @@
|
| <!DOCTYPE html>
|
| <title>IndexedDB: IDBDatabase createObjectStore() Exception Ordering</title>
|
| +<meta charset=utf-8>
|
| <link rel="help" href="https://w3c.github.io/IndexedDB/#dom-idbdatabase-createobjectstore">
|
| <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) {
|
| - db.createObjectStore('s');
|
| - assert_throws('SyntaxError', function() {
|
| - db.createObjectStore('s', {keyPath: 'not a valid key path'});
|
| - }, '"Invalid keyath" check (SyntaxError) should precede ' +
|
| - '"duplicate store name" check (ConstraintError)');
|
| - t.done();
|
| - },
|
| - function(t, db) {},
|
| - 'IDBDatabase.createObjectStore exception order: ConstraintError vs. SyntaxError'
|
| + (t, db, req) => {
|
| + db.createObjectStore('s');
|
| +
|
| + req.transaction.abort();
|
| + req.onerror = null;
|
| +
|
| + setTimeout(t.step_func(() => {
|
| + assert_throws(
|
| + 'InvalidStateError', () => { db.createObjectStore('s2'); },
|
| + '"running an upgrade transaction" check (InvalidStateError) ' +
|
| + 'should precede "not active" check (TransactionInactiveError)');
|
| +
|
| + t.done();
|
| + }), 0);
|
| + },
|
| + (t, db) => { t.assert_unreached('open should fail'); },
|
| + 'IDBDatabase.createObjectStore exception order: ' +
|
| + 'InvalidStateError vs. TransactionInactiveError'
|
| +);
|
| +
|
| +indexeddb_test(
|
| + (t, db, req) => {
|
| + const store = db.createObjectStore('s');
|
| +
|
| + req.transaction.abort();
|
| + req.onerror = null;
|
| +
|
| + assert_throws(
|
| + 'TransactionInactiveError',
|
| + () => { db.createObjectStore('s2', {keyPath: '-invalid-'}); },
|
| + '"not active" check (TransactionInactiveError) should precede ' +
|
| + '"valid key path" check (SyntaxError)');
|
| +
|
| + t.done();
|
| + },
|
| + (t, db) => { t.assert_unreached('open should fail'); },
|
| + 'IDBDatabase.createObjectStore exception order: ' +
|
| + 'TransactionInactiveError vs. SyntaxError'
|
| +);
|
| +
|
| +indexeddb_test(
|
| + (t, db) => {
|
| + db.createObjectStore('s');
|
| + assert_throws('SyntaxError', () => {
|
| + db.createObjectStore('s', {keyPath: 'not a valid key path'});
|
| + }, '"Invalid key path" check (SyntaxError) should precede ' +
|
| + '"duplicate store name" check (ConstraintError)');
|
| + t.done();
|
| + },
|
| + (t, db) => {},
|
| + 'IDBDatabase.createObjectStore exception order: ' +
|
| + 'SyntaxError vs. ConstraintError'
|
| +);
|
| +
|
| +indexeddb_test(
|
| + (t, db) => {
|
| + db.createObjectStore('s');
|
| + assert_throws('ConstraintError', () => {
|
| + db.createObjectStore('s', {autoIncrement: true,
|
| + keyPath: ''});
|
| + }, '"already exists" check (ConstraintError) should precede ' +
|
| + '"autoIncrement vs. keyPath" check (InvalidAccessError)');
|
| + t.done();
|
| + },
|
| + (t, db) => {},
|
| + 'IDBDatabase.createObjectStore exception order: ' +
|
| + 'ConstraintError vs. InvalidAccessError'
|
| );
|
|
|
| </script>
|
|
|