Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /IndexedDB/list_ordering.any.html - WPT Dashboard Interop Dashboard
- /IndexedDB/list_ordering.any.serviceworker.html - WPT Dashboard Interop Dashboard
- /IndexedDB/list_ordering.any.sharedworker.html - WPT Dashboard Interop Dashboard
- /IndexedDB/list_ordering.any.worker.html - WPT Dashboard Interop Dashboard
// META: title=ObjectStoreNames and indexNames ordering
// META: global=window,worker
// META: script=resources/support.js
'use strict';
function list_order(desc, unsorted, expected) {
let objStore;
let db;
let t = async_test(
'Validate ObjectStoreNames and indexNames list order - ' + desc);
const open_rq = createdb(t);
open_rq.onupgradeneeded = t.step_func((e) => {
db = e.target.result;
for (let i = 0; i < unsorted.length; i++)
objStore = db.createObjectStore(unsorted[i]);
assert_equals(
db.objectStoreNames.length, expected.length, 'objectStoreNames length');
for (let i = 0; i < expected.length; i++)
assert_equals(
db.objectStoreNames[i], expected[i], 'objectStoreNames[' + i + ']');
for (let i = 0; i < unsorted.length; i++)
objStore.createIndex(unsorted[i], 'length');
assert_equals(
objStore.indexNames.length, expected.length, 'indexNames length');
for (let i = 0; i < expected.length; i++)
assert_equals(
objStore.indexNames[i], expected[i], 'indexNames[' + i + ']');
});
open_rq.onsuccess = t.step_func((e) => {
assert_equals(
db.objectStoreNames.length, expected.length, 'objectStoreNames length');
for (let i = 0; i < expected.length; i++)
assert_equals(
db.objectStoreNames[i], expected[i], 'objectStoreNames[' + i + ']');
assert_equals(
objStore.indexNames.length, expected.length, 'indexNames length');
for (let i = 0; i < expected.length; i++)
assert_equals(
objStore.indexNames[i], expected[i], 'indexNames[' + i + ']');
t.done();
});
}
list_order(
'numbers', [123456, -12345, -123, 123, 1234, -1234, 0, 12345, -123456], [
'-123', '-1234', '-12345', '-123456', '0', '123', '1234', '12345',
'123456'
]);
list_order(
'numbers \'overflow\'', [9, 1, 1000000000, 200000000000000000],
['1', '1000000000', '200000000000000000', '9']);
list_order(
'lexigraphical string sort',
['cc', 'c', 'aa', 'a', 'bb', 'b', 'ab', '', 'ac'],
['', 'a', 'aa', 'ab', 'ac', 'b', 'bb', 'c', 'cc']);