mirror of
https://github.com/servo/servo.git
synced 2025-06-23 08:34:42 +01:00
- Update CSS tests to revision e05bfd5e30ed662c2f8a353577003f8eed230180. - Update web-platform-tests to revision a052787dd5c069a340031011196b73affbd68cd9.
80 lines
2.4 KiB
HTML
80 lines
2.4 KiB
HTML
<!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="support.js"></script>
|
|
<script>
|
|
|
|
indexeddb_test(
|
|
(t, db, txn) => {
|
|
db.createObjectStore('s');
|
|
|
|
txn.onabort = () => {
|
|
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);
|
|
};
|
|
txn.abort();
|
|
},
|
|
(t, db) => { t.assert_unreached('open should fail'); },
|
|
'IDBDatabase.createObjectStore exception order: ' +
|
|
'InvalidStateError vs. TransactionInactiveError',
|
|
{ upgrade_will_abort: true }
|
|
);
|
|
|
|
indexeddb_test(
|
|
(t, db, txn) => {
|
|
const store = db.createObjectStore('s');
|
|
|
|
txn.abort();
|
|
|
|
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',
|
|
{ upgrade_will_abort: true }
|
|
);
|
|
|
|
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>
|