Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /IndexedDB/objectstore_keyorder.any.html - WPT Dashboard Interop Dashboard
- /IndexedDB/objectstore_keyorder.any.serviceworker.html - WPT Dashboard Interop Dashboard
- /IndexedDB/objectstore_keyorder.any.sharedworker.html - WPT Dashboard Interop Dashboard
- /IndexedDB/objectstore_keyorder.any.worker.html - WPT Dashboard Interop Dashboard
// META: title=IDBObjectStore key sort order
// META: global=window,worker
// META: script=resources/support.js
'use strict';
async_test(t => {
let db;
const d = new Date();
const records = [{key: d}, {key: 'test'}, {key: 1}, {key: 2.55}];
const expectedKeyOrder = [1, 2.55, d.valueOf(), 'test'];
const open_rq = createdb(t);
open_rq.onupgradeneeded = t.step_func((e) => {
db = e.target.result;
const objStore = db.createObjectStore('store', {keyPath: 'key'});
for (let i = 0; i < records.length; i++)
objStore.add(records[i]);
});
open_rq.onsuccess = t.step_func((e) => {
let actual_keys = [];
const rq =
db.transaction('store', 'readonly').objectStore('store').openCursor();
rq.onsuccess = t.step_func((e) => {
const cursor = e.target.result;
if (cursor) {
actual_keys.push(cursor.key.valueOf());
cursor.continue();
} else {
assert_array_equals(actual_keys, expectedKeyOrder);
t.done();
}
});
});
}, 'Verify key sort order in an object store is \'number < Date < DOMString\' ');