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