1
0
Fork 0
firefox/testing/web-platform/tests/IndexedDB/cursor-overloads.any.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

87 lines
3.5 KiB
JavaScript

// META: title=IndexedDB
// META: global=window,worker
// META: script=resources/support.js
'use strict';
async_test(t => {
let db;
let trans;
let store;
let index;
let request = createdb(t);
request.onupgradeneeded = function(e) {
db = e.target.result;
store = db.createObjectStore('store');
index = store.createIndex('index', 'value');
store.put({value: 0}, 0);
trans = request.transaction;
trans.oncomplete = verifyOverloads;
};
function verifyOverloads() {
trans = db.transaction('store', 'readonly');
store = trans.objectStore('store');
index = store.index('index');
checkCursorDirection(store.openCursor(), 'next');
checkCursorDirection(store.openCursor(0), 'next');
checkCursorDirection(store.openCursor(0, 'next'), 'next');
checkCursorDirection(store.openCursor(0, 'nextunique'), 'nextunique');
checkCursorDirection(store.openCursor(0, 'prev'), 'prev');
checkCursorDirection(store.openCursor(0, 'prevunique'), 'prevunique');
checkCursorDirection(store.openCursor(IDBKeyRange.only(0)), 'next');
checkCursorDirection(store.openCursor(IDBKeyRange.only(0), 'next'), 'next');
checkCursorDirection(
store.openCursor(IDBKeyRange.only(0), 'nextunique'), 'nextunique');
checkCursorDirection(store.openCursor(IDBKeyRange.only(0), 'prev'), 'prev');
checkCursorDirection(
store.openCursor(IDBKeyRange.only(0), 'prevunique'), 'prevunique');
checkCursorDirection(index.openCursor(), 'next');
checkCursorDirection(index.openCursor(0), 'next');
checkCursorDirection(index.openCursor(0, 'next'), 'next');
checkCursorDirection(index.openCursor(0, 'nextunique'), 'nextunique');
checkCursorDirection(index.openCursor(0, 'prev'), 'prev');
checkCursorDirection(index.openCursor(0, 'prevunique'), 'prevunique');
checkCursorDirection(index.openCursor(IDBKeyRange.only(0)), 'next');
checkCursorDirection(index.openCursor(IDBKeyRange.only(0), 'next'), 'next');
checkCursorDirection(
index.openCursor(IDBKeyRange.only(0), 'nextunique'), 'nextunique');
checkCursorDirection(index.openCursor(IDBKeyRange.only(0), 'prev'), 'prev');
checkCursorDirection(
index.openCursor(IDBKeyRange.only(0), 'prevunique'), 'prevunique');
checkCursorDirection(index.openKeyCursor(), 'next');
checkCursorDirection(index.openKeyCursor(0), 'next');
checkCursorDirection(index.openKeyCursor(0, 'next'), 'next');
checkCursorDirection(index.openKeyCursor(0, 'nextunique'), 'nextunique');
checkCursorDirection(index.openKeyCursor(0, 'prev'), 'prev');
checkCursorDirection(index.openKeyCursor(0, 'prevunique'), 'prevunique');
checkCursorDirection(index.openKeyCursor(IDBKeyRange.only(0)), 'next');
checkCursorDirection(
index.openKeyCursor(IDBKeyRange.only(0), 'next'), 'next');
checkCursorDirection(
index.openKeyCursor(IDBKeyRange.only(0), 'nextunique'), 'nextunique');
checkCursorDirection(
index.openKeyCursor(IDBKeyRange.only(0), 'prev'), 'prev');
checkCursorDirection(
index.openKeyCursor(IDBKeyRange.only(0), 'prevunique'), 'prevunique');
t.done();
}
function checkCursorDirection(request, direction) {
request.onsuccess = function(event) {
assert_not_equals(
event.target.result, null, 'Check the result is not null')
assert_equals(
event.target.result.direction, direction,
'Check the result direction');
};
}
}, 'Validate the overloads of IDBObjectStore.openCursor(), IDBIndex.openCursor() and IDBIndex.openKeyCursor()');