<!-- Test converted from WebKit: http://trac.webkit.org/browser/trunk/LayoutTests/storage/indexeddb/cursor-overloads.html --> <!DOCTYPE html> <!-- Submitted from TestTWF Paris --> <meta charset=utf-8> <title>Validate the overloads of IDBObjectStore.openCursor(), IDBIndex.openCursor() and IDBIndex.openKeyCursor()</title> <link rel=author href="mailto:romain.huet@gmail.com" title="Romain Huet"> <script src=/resources/testharness.js></script> <script src=/resources/testharnessreport.js></script> <script src=support.js></script> <script> var db, trans, store, index; var t = async_test(); var request = createdb(t); request.onupgradeneeded = function(e) { db = request.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'); 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(statement, direction) { request = eval(statement); 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"); }; } </script> <div id=log></div>