| <!-- | |
| 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> |