diff --git a/IndexedDB/cursor-overloads.any.js b/IndexedDB/cursor-overloads.any.js new file mode 100644 index 00000000000000..dd80d2f4038240 --- /dev/null +++ b/IndexedDB/cursor-overloads.any.js @@ -0,0 +1,87 @@ +// 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', {durability: 'relaxed'}); + 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()'); diff --git a/IndexedDB/cursor-overloads.htm b/IndexedDB/cursor-overloads.htm deleted file mode 100644 index 7beeaa2bb39cde..00000000000000 --- a/IndexedDB/cursor-overloads.htm +++ /dev/null @@ -1,88 +0,0 @@ - - - - - -