<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[192960] trunk/LayoutTests</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/192960">192960</a></dd>
<dt>Author</dt> <dd>beidson@apple.com</dd>
<dt>Date</dt> <dd>2015-12-02 13:33:32 -0800 (Wed, 02 Dec 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>Modern IDB: Remove all traces of IDBObjectStore::openKeyCursor from tests.
https://bugs.webkit.org/show_bug.cgi?id=151772
Reviewed by Alex Christensen.
IDBObjectStore::openKeyCursor no longer exists, so testing it is inherently bogus.
* platform/mac-wk1/TestExpectations: Two tests now pass with small expectations changes.
* storage/indexeddb/cursor-basics-expected.txt:
* storage/indexeddb/cursor-overloads-expected.txt:
* storage/indexeddb/cursor-overloads.html:
* storage/indexeddb/optional-arguments.html:
* storage/indexeddb/resources/cursor-basics.js:
* storage/indexeddb/resources/deleted-objects.js:
* storage/indexeddb/resources/exceptions.js:
* storage/indexeddb/resources/objectstore-basics.js:
* storage/indexeddb/objectstore-keycursor-expected.txt: Removed.
* storage/indexeddb/objectstore-keycursor.html: Removed.
* storage/indexeddb/resources/objectstore-keycursor.js: Removed.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk1TestExpectations">trunk/LayoutTests/platform/mac-wk1/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbcursorbasicsexpectedtxt">trunk/LayoutTests/storage/indexeddb/cursor-basics-expected.txt</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbcursoroverloadsexpectedtxt">trunk/LayoutTests/storage/indexeddb/cursor-overloads-expected.txt</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbcursoroverloadshtml">trunk/LayoutTests/storage/indexeddb/cursor-overloads.html</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddboptionalargumentshtml">trunk/LayoutTests/storage/indexeddb/optional-arguments.html</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbresourcescursorbasicsjs">trunk/LayoutTests/storage/indexeddb/resources/cursor-basics.js</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbresourcesdeletedobjectsjs">trunk/LayoutTests/storage/indexeddb/resources/deleted-objects.js</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbresourcesexceptionsjs">trunk/LayoutTests/storage/indexeddb/resources/exceptions.js</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbresourcesobjectstorebasicsjs">trunk/LayoutTests/storage/indexeddb/resources/objectstore-basics.js</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsstorageindexeddbobjectstorekeycursorexpectedtxt">trunk/LayoutTests/storage/indexeddb/objectstore-keycursor-expected.txt</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbobjectstorekeycursorhtml">trunk/LayoutTests/storage/indexeddb/objectstore-keycursor.html</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbresourcesobjectstorekeycursorjs">trunk/LayoutTests/storage/indexeddb/resources/objectstore-keycursor.js</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (192959 => 192960)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-12-02 20:57:34 UTC (rev 192959)
+++ trunk/LayoutTests/ChangeLog        2015-12-02 21:33:32 UTC (rev 192960)
</span><span class="lines">@@ -1,3 +1,27 @@
</span><ins>+2015-12-02 Brady Eidson <beidson@apple.com>
+
+ Modern IDB: Remove all traces of IDBObjectStore::openKeyCursor from tests.
+ https://bugs.webkit.org/show_bug.cgi?id=151772
+
+ Reviewed by Alex Christensen.
+
+ IDBObjectStore::openKeyCursor no longer exists, so testing it is inherently bogus.
+
+ * platform/mac-wk1/TestExpectations: Two tests now pass with small expectations changes.
+ * storage/indexeddb/cursor-basics-expected.txt:
+ * storage/indexeddb/cursor-overloads-expected.txt:
+
+ * storage/indexeddb/cursor-overloads.html:
+ * storage/indexeddb/optional-arguments.html:
+ * storage/indexeddb/resources/cursor-basics.js:
+ * storage/indexeddb/resources/deleted-objects.js:
+ * storage/indexeddb/resources/exceptions.js:
+ * storage/indexeddb/resources/objectstore-basics.js:
+
+ * storage/indexeddb/objectstore-keycursor-expected.txt: Removed.
+ * storage/indexeddb/objectstore-keycursor.html: Removed.
+ * storage/indexeddb/resources/objectstore-keycursor.js: Removed.
+
</ins><span class="cx"> 2015-12-02 David Hyatt <hyatt@apple.com>
</span><span class="cx">
</span><span class="cx"> Add some more picture element layout tests
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk1TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (192959 => 192960)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk1/TestExpectations        2015-12-02 20:57:34 UTC (rev 192959)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations        2015-12-02 21:33:32 UTC (rev 192960)
</span><span class="lines">@@ -75,8 +75,10 @@
</span><span class="cx"> storage/indexeddb/basics.html [ Pass ]
</span><span class="cx"> storage/indexeddb/create-and-remove-object-store.html [ Pass ]
</span><span class="cx"> storage/indexeddb/create-object-store-options.html [ Pass ]
</span><ins>+storage/indexeddb/cursor-basics.html [ Pass ]
</ins><span class="cx"> storage/indexeddb/cursor-cast.html [ Pass ]
</span><span class="cx"> storage/indexeddb/cursor-finished.html [ Pass ]
</span><ins>+storage/indexeddb/cursor-overloads.html [ Pass ]
</ins><span class="cx"> storage/indexeddb/modern [ Pass ]
</span><span class="cx"> storage/indexeddb/mozilla [ Pass ]
</span><span class="cx"> storage/indexeddb/transaction-abort.html [ Pass ]
</span></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbcursorbasicsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/storage/indexeddb/cursor-basics-expected.txt (192959 => 192960)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/cursor-basics-expected.txt        2015-12-02 20:57:34 UTC (rev 192959)
+++ trunk/LayoutTests/storage/indexeddb/cursor-basics-expected.txt        2015-12-02 21:33:32 UTC (rev 192960)
</span><span class="lines">@@ -14,7 +14,6 @@
</span><span class="cx"> index = store.createIndex('indexName', 'indexOn')
</span><span class="cx"> store.put({indexOn: 'a'}, 0)
</span><span class="cx"> store.openCursor()
</span><del>-store.openKeyCursor()
</del><span class="cx"> index.openCursor()
</span><span class="cx"> index.openKeyCursor()
</span><span class="cx">
</span><span class="lines">@@ -26,8 +25,8 @@
</span><span class="cx"> PASS 'primaryKey' in cursor is true
</span><span class="cx"> PASS 'continue' in cursor is true
</span><span class="cx"> PASS typeof cursor.continue is "function"
</span><del>-PASS 'continuePrimaryKey' in cursor is true
-PASS typeof cursor.continuePrimaryKey is "function"
</del><ins>+FAIL 'continuePrimaryKey' in cursor should be true. Was false.
+FAIL typeof cursor.continuePrimaryKey should be function. Was undefined.
</ins><span class="cx"> PASS 'advance' in cursor is true
</span><span class="cx"> PASS typeof cursor.advance is "function"
</span><span class="cx"> PASS 'update' in cursor is true
</span><span class="lines">@@ -40,28 +39,6 @@
</span><span class="cx"> PASS 'value' in cursor is true
</span><span class="cx"> PASS JSON.stringify(cursor.value) is "{\"indexOn\":\"a\"}"
</span><span class="cx">
</span><del>-onStoreOpenKeyCursor():
-cursor = event.target.result
-PASS cursor is non-null.
-PASS cursor instanceof IDBCursor is true
-PASS 'key' in cursor is true
-PASS 'primaryKey' in cursor is true
-PASS 'continue' in cursor is true
-PASS typeof cursor.continue is "function"
-PASS 'continuePrimaryKey' in cursor is true
-PASS typeof cursor.continuePrimaryKey is "function"
-PASS 'advance' in cursor is true
-PASS typeof cursor.advance is "function"
-PASS 'update' in cursor is true
-PASS typeof cursor.update is "function"
-PASS 'delete' in cursor is true
-PASS typeof cursor.delete is "function"
-PASS cursor.key is 0
-PASS 'primaryKey' in cursor is true
-PASS cursor.primaryKey is 0
-PASS cursor instanceof IDBCursorWithValue is false
-PASS 'value' in cursor is false
-
</del><span class="cx"> onIndexOpenCursor():
</span><span class="cx"> cursor = event.target.result
</span><span class="cx"> PASS cursor is non-null.
</span><span class="lines">@@ -70,8 +47,8 @@
</span><span class="cx"> PASS 'primaryKey' in cursor is true
</span><span class="cx"> PASS 'continue' in cursor is true
</span><span class="cx"> PASS typeof cursor.continue is "function"
</span><del>-PASS 'continuePrimaryKey' in cursor is true
-PASS typeof cursor.continuePrimaryKey is "function"
</del><ins>+FAIL 'continuePrimaryKey' in cursor should be true. Was false.
+FAIL typeof cursor.continuePrimaryKey should be function. Was undefined.
</ins><span class="cx"> PASS 'advance' in cursor is true
</span><span class="cx"> PASS typeof cursor.advance is "function"
</span><span class="cx"> PASS 'update' in cursor is true
</span><span class="lines">@@ -92,8 +69,8 @@
</span><span class="cx"> PASS 'primaryKey' in cursor is true
</span><span class="cx"> PASS 'continue' in cursor is true
</span><span class="cx"> PASS typeof cursor.continue is "function"
</span><del>-PASS 'continuePrimaryKey' in cursor is true
-PASS typeof cursor.continuePrimaryKey is "function"
</del><ins>+FAIL 'continuePrimaryKey' in cursor should be true. Was false.
+FAIL typeof cursor.continuePrimaryKey should be function. Was undefined.
</ins><span class="cx"> PASS 'advance' in cursor is true
</span><span class="cx"> PASS typeof cursor.advance is "function"
</span><span class="cx"> PASS 'update' in cursor is true
</span></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbcursoroverloadsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/storage/indexeddb/cursor-overloads-expected.txt (192959 => 192960)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/cursor-overloads-expected.txt        2015-12-02 20:57:34 UTC (rev 192959)
+++ trunk/LayoutTests/storage/indexeddb/cursor-overloads-expected.txt        2015-12-02 21:33:32 UTC (rev 192960)
</span><span class="lines">@@ -49,39 +49,6 @@
</span><span class="cx"> store.openCursor(IDBKeyRange.only(0), 'prevunique')
</span><span class="cx"> PASS event.target.result is non-null.
</span><span class="cx"> PASS event.target.result.direction is "prevunique"
</span><del>-store.openKeyCursor()
-PASS event.target.result is non-null.
-PASS event.target.result.direction is "next"
-store.openKeyCursor(0)
-PASS event.target.result is non-null.
-PASS event.target.result.direction is "next"
-store.openKeyCursor(0, 'next')
-PASS event.target.result is non-null.
-PASS event.target.result.direction is "next"
-store.openKeyCursor(0, 'nextunique')
-PASS event.target.result is non-null.
-PASS event.target.result.direction is "nextunique"
-store.openKeyCursor(0, 'prev')
-PASS event.target.result is non-null.
-PASS event.target.result.direction is "prev"
-store.openKeyCursor(0, 'prevunique')
-PASS event.target.result is non-null.
-PASS event.target.result.direction is "prevunique"
-store.openKeyCursor(IDBKeyRange.only(0))
-PASS event.target.result is non-null.
-PASS event.target.result.direction is "next"
-store.openKeyCursor(IDBKeyRange.only(0), 'next')
-PASS event.target.result is non-null.
-PASS event.target.result.direction is "next"
-store.openKeyCursor(IDBKeyRange.only(0), 'nextunique')
-PASS event.target.result is non-null.
-PASS event.target.result.direction is "nextunique"
-store.openKeyCursor(IDBKeyRange.only(0), 'prev')
-PASS event.target.result is non-null.
-PASS event.target.result.direction is "prev"
-store.openKeyCursor(IDBKeyRange.only(0), 'prevunique')
-PASS event.target.result is non-null.
-PASS event.target.result.direction is "prevunique"
</del><span class="cx"> index.openCursor()
</span><span class="cx"> PASS event.target.result is non-null.
</span><span class="cx"> PASS event.target.result.direction is "next"
</span></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbcursoroverloadshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/storage/indexeddb/cursor-overloads.html (192959 => 192960)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/cursor-overloads.html        2015-12-02 20:57:34 UTC (rev 192959)
+++ trunk/LayoutTests/storage/indexeddb/cursor-overloads.html        2015-12-02 21:33:32 UTC (rev 192960)
</span><span class="lines">@@ -35,19 +35,6 @@
</span><span class="cx"> checkCursorDirection("store.openCursor(IDBKeyRange.only(0), 'prev')", "prev");
</span><span class="cx"> checkCursorDirection("store.openCursor(IDBKeyRange.only(0), 'prevunique')", "prevunique");
</span><span class="cx">
</span><del>- checkCursorDirection("store.openKeyCursor()", "next");
- checkCursorDirection("store.openKeyCursor(0)", "next");
- checkCursorDirection("store.openKeyCursor(0, 'next')", "next");
- checkCursorDirection("store.openKeyCursor(0, 'nextunique')", "nextunique");
- checkCursorDirection("store.openKeyCursor(0, 'prev')", "prev");
- checkCursorDirection("store.openKeyCursor(0, 'prevunique')", "prevunique");
-
- checkCursorDirection("store.openKeyCursor(IDBKeyRange.only(0))", "next");
- checkCursorDirection("store.openKeyCursor(IDBKeyRange.only(0), 'next')", "next");
- checkCursorDirection("store.openKeyCursor(IDBKeyRange.only(0), 'nextunique')", "nextunique");
- checkCursorDirection("store.openKeyCursor(IDBKeyRange.only(0), 'prev')", "prev");
- checkCursorDirection("store.openKeyCursor(IDBKeyRange.only(0), 'prevunique')", "prevunique");
-
</del><span class="cx"> checkCursorDirection("index.openCursor()", "next");
</span><span class="cx"> checkCursorDirection("index.openCursor(0)", "next");
</span><span class="cx"> checkCursorDirection("index.openCursor(0, 'next')", "next");
</span></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbobjectstorekeycursorexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/storage/indexeddb/objectstore-keycursor-expected.txt (192959 => 192960)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/objectstore-keycursor-expected.txt        2015-12-02 20:57:34 UTC (rev 192959)
+++ trunk/LayoutTests/storage/indexeddb/objectstore-keycursor-expected.txt        2015-12-02 21:33:32 UTC (rev 192960)
</span><span class="lines">@@ -1,335 +0,0 @@
</span><del>-Test IndexedDB's objectStore.openKeyCursor + the cursor it produces in depth.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
-
-dbname = "objectstore-keycursor.html"
-indexedDB.deleteDatabase(dbname)
-indexedDB.open(dbname)
-objectStore = db.createObjectStore('someObjectStore')
-
-Verify that specifying an invalid direction raises an exception:
-Expecting TypeError exception from objectStore.openKeyCursor(0, 'invalid-direction')
-PASS Exception was thrown.
-PASS objectStore.openKeyCursor(0, 'invalid-direction') threw TypeError: Failed to execute 'openKeyCursor' on 'IDBObjectStore': The direction provided ('invalid-direction') is not one of 'next', 'nextunique', 'prev', or 'prevunique'.
-
-objectStore.add('', testData[nextToAdd])
-objectStore.add('', testData[nextToAdd])
-objectStore.add('', testData[nextToAdd])
-objectStore.add('', testData[nextToAdd])
-objectStore.add('', testData[nextToAdd])
-objectStore.add('', testData[nextToAdd])
-Scheduling tests...
-Running tests...
-
-Next test: lower open bound is 0; sorted ascending.
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[5]
-PASS event.target.result is null
-
-Next test: lower bound is 0; sorted ascending.
-PASS event.target.result.key is testData[0]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[5]
-PASS event.target.result is null
-
-Next test: upper open bound is 0; sorted ascending.
-PASS event.target.result is null
-
-Next test: upper bound is 0; sorted ascending.
-PASS event.target.result.key is testData[0]
-PASS event.target.result is null
-
-Next test: lower open bound is 0; sorted descending.
-PASS event.target.result.key is testData[5]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[1]
-PASS event.target.result is null
-
-Next test: lower bound is 0; sorted descending.
-PASS event.target.result.key is testData[5]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[0]
-PASS event.target.result is null
-
-Next test: upper open bound is 0; sorted descending.
-PASS event.target.result is null
-
-Next test: upper bound is 0; sorted descending.
-PASS event.target.result.key is testData[0]
-PASS event.target.result is null
-
-Next test: lower open bound is 1; sorted ascending.
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[5]
-PASS event.target.result is null
-
-Next test: lower bound is 1; sorted ascending.
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[5]
-PASS event.target.result is null
-
-Next test: upper open bound is 1; sorted ascending.
-PASS event.target.result.key is testData[0]
-PASS event.target.result is null
-
-Next test: upper bound is 1; sorted ascending.
-PASS event.target.result.key is testData[0]
-PASS event.target.result.key is testData[1]
-PASS event.target.result is null
-
-Next test: lower open bound is 1; sorted descending.
-PASS event.target.result.key is testData[5]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[2]
-PASS event.target.result is null
-
-Next test: lower bound is 1; sorted descending.
-PASS event.target.result.key is testData[5]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[1]
-PASS event.target.result is null
-
-Next test: upper open bound is 1; sorted descending.
-PASS event.target.result.key is testData[0]
-PASS event.target.result is null
-
-Next test: upper bound is 1; sorted descending.
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[0]
-PASS event.target.result is null
-
-Next test: lower open bound is 2; sorted ascending.
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[5]
-PASS event.target.result is null
-
-Next test: lower bound is 2; sorted ascending.
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[5]
-PASS event.target.result is null
-
-Next test: upper open bound is 2; sorted ascending.
-PASS event.target.result.key is testData[0]
-PASS event.target.result.key is testData[1]
-PASS event.target.result is null
-
-Next test: upper bound is 2; sorted ascending.
-PASS event.target.result.key is testData[0]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[2]
-PASS event.target.result is null
-
-Next test: lower open bound is 2; sorted descending.
-PASS event.target.result.key is testData[5]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[3]
-PASS event.target.result is null
-
-Next test: lower bound is 2; sorted descending.
-PASS event.target.result.key is testData[5]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[2]
-PASS event.target.result is null
-
-Next test: upper open bound is 2; sorted descending.
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[0]
-PASS event.target.result is null
-
-Next test: upper bound is 2; sorted descending.
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[0]
-PASS event.target.result is null
-
-Next test: lower open bound is 3; sorted ascending.
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[5]
-PASS event.target.result is null
-
-Next test: lower bound is 3; sorted ascending.
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[5]
-PASS event.target.result is null
-
-Next test: upper open bound is 3; sorted ascending.
-PASS event.target.result.key is testData[0]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[2]
-PASS event.target.result is null
-
-Next test: upper bound is 3; sorted ascending.
-PASS event.target.result.key is testData[0]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[3]
-PASS event.target.result is null
-
-Next test: lower open bound is 3; sorted descending.
-PASS event.target.result.key is testData[5]
-PASS event.target.result.key is testData[4]
-PASS event.target.result is null
-
-Next test: lower bound is 3; sorted descending.
-PASS event.target.result.key is testData[5]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[3]
-PASS event.target.result is null
-
-Next test: upper open bound is 3; sorted descending.
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[0]
-PASS event.target.result is null
-
-Next test: upper bound is 3; sorted descending.
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[0]
-PASS event.target.result is null
-
-Next test: lower open bound is 4; sorted ascending.
-PASS event.target.result.key is testData[5]
-PASS event.target.result is null
-
-Next test: lower bound is 4; sorted ascending.
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[5]
-PASS event.target.result is null
-
-Next test: upper open bound is 4; sorted ascending.
-PASS event.target.result.key is testData[0]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[3]
-PASS event.target.result is null
-
-Next test: upper bound is 4; sorted ascending.
-PASS event.target.result.key is testData[0]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[4]
-PASS event.target.result is null
-
-Next test: lower open bound is 4; sorted descending.
-PASS event.target.result.key is testData[5]
-PASS event.target.result is null
-
-Next test: lower bound is 4; sorted descending.
-PASS event.target.result.key is testData[5]
-PASS event.target.result.key is testData[4]
-PASS event.target.result is null
-
-Next test: upper open bound is 4; sorted descending.
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[0]
-PASS event.target.result is null
-
-Next test: upper bound is 4; sorted descending.
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[0]
-PASS event.target.result is null
-
-Next test: lower open bound is 5; sorted ascending.
-PASS event.target.result is null
-
-Next test: lower bound is 5; sorted ascending.
-PASS event.target.result.key is testData[5]
-PASS event.target.result is null
-
-Next test: upper open bound is 5; sorted ascending.
-PASS event.target.result.key is testData[0]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[4]
-PASS event.target.result is null
-
-Next test: upper bound is 5; sorted ascending.
-PASS event.target.result.key is testData[0]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[5]
-PASS event.target.result is null
-
-Next test: lower open bound is 5; sorted descending.
-PASS event.target.result is null
-
-Next test: lower bound is 5; sorted descending.
-PASS event.target.result.key is testData[5]
-PASS event.target.result is null
-
-Next test: upper open bound is 5; sorted descending.
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[0]
-PASS event.target.result is null
-
-Next test: upper bound is 5; sorted descending.
-PASS event.target.result.key is testData[5]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[0]
-PASS event.target.result is null
-
-Next test: null key path sorted ascending.
-PASS event.target.result.key is testData[0]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[5]
-PASS event.target.result is null
-
-Next test: null key path sorted descending.
-PASS event.target.result.key is testData[5]
-PASS event.target.result.key is testData[4]
-PASS event.target.result.key is testData[3]
-PASS event.target.result.key is testData[2]
-PASS event.target.result.key is testData[1]
-PASS event.target.result.key is testData[0]
-PASS event.target.result is null
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbobjectstorekeycursorhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/storage/indexeddb/objectstore-keycursor.html (192959 => 192960)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/objectstore-keycursor.html        2015-12-02 20:57:34 UTC (rev 192959)
+++ trunk/LayoutTests/storage/indexeddb/objectstore-keycursor.html        2015-12-02 21:33:32 UTC (rev 192960)
</span><span class="lines">@@ -1,9 +0,0 @@
</span><del>-<html>
-<head>
-<script src="../../resources/js-test.js"></script>
-<script src="resources/shared.js"></script>
-</head>
-<body>
-<script src="resources/objectstore-keycursor.js"></script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddboptionalargumentshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/storage/indexeddb/optional-arguments.html (192959 => 192960)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/optional-arguments.html        2015-12-02 20:57:34 UTC (rev 192959)
+++ trunk/LayoutTests/storage/indexeddb/optional-arguments.html        2015-12-02 21:33:32 UTC (rev 192960)
</span><span class="lines">@@ -45,11 +45,6 @@
</span><span class="cx"> function(callback) { verifyCursor("store.openCursor(IDBKeyRange.lowerBound(4))", "next", 2, callback); },
</span><span class="cx"> function(callback) { verifyCursor("store.openCursor(3)", "next", 1, callback); },
</span><span class="cx">
</span><del>- function(callback) { verifyCursor("store.openKeyCursor()", "next", 5, callback); },
- function(callback) { verifyCursor("store.openKeyCursor(null)", "next", 5, callback); },
- function(callback) { verifyCursor("store.openKeyCursor(IDBKeyRange.lowerBound(4))", "next", 2, callback); },
- function(callback) { verifyCursor("store.openKeyCursor(3)", "next", 1, callback); },
-
</del><span class="cx"> function(callback) { verifyCursor("index.openCursor()", "next", 5, callback); },
</span><span class="cx"> function(callback) { verifyCursor("index.openCursor(null)", "next", 5, callback); },
</span><span class="cx"> function(callback) { verifyCursor("index.openCursor(IDBKeyRange.lowerBound('b'))", "next", 4, callback); },
</span></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbresourcescursorbasicsjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/storage/indexeddb/resources/cursor-basics.js (192959 => 192960)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/resources/cursor-basics.js        2015-12-02 20:57:34 UTC (rev 192959)
+++ trunk/LayoutTests/storage/indexeddb/resources/cursor-basics.js        2015-12-02 21:33:32 UTC (rev 192960)
</span><span class="lines">@@ -19,10 +19,6 @@
</span><span class="cx"> request.onsuccess = onStoreOpenCursor;
</span><span class="cx"> request.onerror = unexpectedErrorCallback;
</span><span class="cx">
</span><del>- request = evalAndLog("store.openKeyCursor()");
- request.onsuccess = onStoreOpenKeyCursor;
- request.onerror = unexpectedErrorCallback;
-
</del><span class="cx"> request = evalAndLog("index.openCursor()");
</span><span class="cx"> request.onsuccess = onIndexOpenCursor;
</span><span class="cx"> request.onerror = unexpectedErrorCallback;
</span><span class="lines">@@ -65,20 +61,6 @@
</span><span class="cx"> shouldBeEqualToString("JSON.stringify(cursor.value)", '{"indexOn":"a"}');
</span><span class="cx"> }
</span><span class="cx">
</span><del>-function onStoreOpenKeyCursor(evt) {
- preamble(evt);
- evalAndLog("cursor = event.target.result");
- shouldBeNonNull("cursor");
- checkCursorProperties();
-
- shouldBe("cursor.key", "0");
- shouldBeTrue("'primaryKey' in cursor");
- shouldBe("cursor.primaryKey", "0");
-
- shouldBeFalse("cursor instanceof IDBCursorWithValue");
- shouldBeFalse("'value' in cursor");
-}
-
</del><span class="cx"> function onIndexOpenCursor(evt) {
</span><span class="cx"> preamble(evt);
</span><span class="cx"> evalAndLog("cursor = event.target.result");
</span></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbresourcesdeletedobjectsjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/storage/indexeddb/resources/deleted-objects.js (192959 => 192960)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/resources/deleted-objects.js        2015-12-02 20:57:34 UTC (rev 192959)
+++ trunk/LayoutTests/storage/indexeddb/resources/deleted-objects.js        2015-12-02 21:33:32 UTC (rev 192960)
</span><span class="lines">@@ -35,11 +35,6 @@
</span><span class="cx"> evalAndExpectException("deletedStore.openCursor(0, 'next')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
</span><span class="cx"> evalAndExpectException("deletedStore.openCursor(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
</span><span class="cx"> evalAndExpectException("deletedStore.openCursor(IDBKeyRange.only(0), 'next')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
</span><del>- evalAndExpectException("deletedStore.openKeyCursor()", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
- evalAndExpectException("deletedStore.openKeyCursor(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
- evalAndExpectException("deletedStore.openKeyCursor(0, 'next')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
- evalAndExpectException("deletedStore.openKeyCursor(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
- evalAndExpectException("deletedStore.openKeyCursor(IDBKeyRange.only(0), 'next')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
</del><span class="cx"> evalAndExpectException("deletedStore.createIndex('name', 'path')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
</span><span class="cx"> evalAndExpectException("deletedStore.index('name')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
</span><span class="cx"> evalAndExpectException("deletedStore.deleteIndex('name')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
</span></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbresourcesexceptionsjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/storage/indexeddb/resources/exceptions.js (192959 => 192960)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/resources/exceptions.js        2015-12-02 20:57:34 UTC (rev 192959)
+++ trunk/LayoutTests/storage/indexeddb/resources/exceptions.js        2015-12-02 21:33:32 UTC (rev 192960)
</span><span class="lines">@@ -199,16 +199,6 @@
</span><span class="cx"> // "Occurs if a request is made on a source object that has been deleted or removed." - covered in deleted-objects.html
</span><span class="cx">
</span><span class="cx"> debug("");
</span><del>- debug("IDBObjectStore.openKeyCursor()");
- debug("If the range parameter is specified but is not a valid key or a key range, this method throws a DOMException of type DataError.");
- evalAndExpectException("store.openKeyCursor({})", "0", "'DataError'");
- debug("The transaction this IDBObjectStore belongs to is not active.");
- evalAndExpectException("storeFromInactiveTransaction.openKeyCursor()", "0", "'TransactionInactiveError'");
- debug("The value for the direction parameter is invalid.");
- evalAndExpectExceptionClass("store.openKeyCursor(0, 'invalid-direction')", "TypeError");
- // "Occurs if a request is made on a source object that has been deleted or removed." - covered in deleted-objects.html
-
- debug("");
</del><span class="cx"> debug("IDBObjectStore.put()");
</span><span class="cx"> debug('This method throws a DOMException of type ReadOnlyError if the transaction which this IDBObjectStore belongs to is has its mode set to "readonly".');
</span><span class="cx"> evalAndExpectException("storeFromReadOnlyTransaction.put(0, 0)", "0", "'ReadOnlyError'");
</span></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbresourcesobjectstorebasicsjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/storage/indexeddb/resources/objectstore-basics.js (192959 => 192960)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/resources/objectstore-basics.js        2015-12-02 20:57:34 UTC (rev 192959)
+++ trunk/LayoutTests/storage/indexeddb/resources/objectstore-basics.js        2015-12-02 21:33:32 UTC (rev 192960)
</span><span class="lines">@@ -31,8 +31,6 @@
</span><span class="cx"> shouldBeEqualToString("typeof store.clear", "function");
</span><span class="cx"> shouldBeTrue("'openCursor' in store");
</span><span class="cx"> shouldBeEqualToString("typeof store.openCursor", "function");
</span><del>- shouldBeTrue("'openKeyCursor' in store");
- shouldBeEqualToString("typeof store.openKeyCursor", "function");
</del><span class="cx"> shouldBeTrue("'createIndex' in store");
</span><span class="cx"> shouldBeEqualToString("typeof store.createIndex", "function");
</span><span class="cx"> shouldBeTrue("'index' in store");
</span></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbresourcesobjectstorekeycursorjs"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/storage/indexeddb/resources/objectstore-keycursor.js (192959 => 192960)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/resources/objectstore-keycursor.js        2015-12-02 20:57:34 UTC (rev 192959)
+++ trunk/LayoutTests/storage/indexeddb/resources/objectstore-keycursor.js        2015-12-02 21:33:32 UTC (rev 192960)
</span><span class="lines">@@ -1,209 +0,0 @@
</span><del>-if (this.importScripts) {
- importScripts('../../../resources/js-test.js');
- importScripts('shared.js');
-}
-
-description("Test IndexedDB's objectStore.openKeyCursor + the cursor it produces in depth.");
-
-// In order of how it should be sorted by IndexedDB.
-self.testData = [
- 1,
- 2,
- 3,
- "a",
- "b",
- "c"
-];
-
-indexedDBTest(prepareDatabase);
-function prepareDatabase()
-{
- db = event.target.result;
- event.target.transaction.onabort = unexpectedAbortCallback;
-
- evalAndLog("objectStore = db.createObjectStore('someObjectStore')");
-
- debug("");
- debug("Verify that specifying an invalid direction raises an exception:");
- evalAndExpectExceptionClass("objectStore.openKeyCursor(0, 'invalid-direction')", "TypeError");
- debug("");
-
- self.nextToAdd = 0;
- addData();
-}
-
-function addData()
-{
- request = evalAndLog("objectStore.add('', testData[nextToAdd])");
- request.onsuccess = ++self.nextToAdd < testData.length ? addData : scheduleTests;
- request.onerror = unexpectedErrorCallback;
-}
-
-function scheduleTests()
-{
- debug("Scheduling tests...");
- self.scheduledTests = [];
- for (var i = 0; i < testData.length; ++i) {
- /* left bound, is open, right bound, is open, ascending */
- scheduledTests.unshift([i, true, null, null, true]);
- scheduledTests.unshift([i, false, null, null, true]);
- scheduledTests.unshift([null, null, i, true, true]);
- scheduledTests.unshift([null, null, i, false, true]);
- scheduledTests.unshift([i, true, null, null, false]);
- scheduledTests.unshift([i, false, null, null, false]);
- scheduledTests.unshift([null, null, i, true, false]);
- scheduledTests.unshift([null, null, i, false, false]);
- for (var j = 6; j < testData.length; ++j) {
- scheduledTests.unshift([i, true, j, true, true]);
- scheduledTests.unshift([i, true, j, false, true]);
- scheduledTests.unshift([i, false, j, true, true]);
- scheduledTests.unshift([i, false, j, false, true]);
- scheduledTests.unshift([i, true, j, true, false]);
- scheduledTests.unshift([i, true, j, false, false]);
- scheduledTests.unshift([i, false, j, true, false]);
- scheduledTests.unshift([i, false, j, false, false]);
- }
- }
-
- debug("Running tests...");
- runNextTest();
-}
-
-function runNextTest()
-{
- if (!scheduledTests.length) {
- testNullKeyRange();
- return;
- }
-
- var test = scheduledTests.pop();
- self.lower = test[0];
- self.lowerIsOpen = test[1];
- self.upper = test[2];
- self.upperIsOpen = test[3];
- self.ascending = test[4];
-
- str = "Next test: ";
- if (lower !== null) {
- str += "lower ";
- if (lowerIsOpen)
- str += "open ";
- str += "bound is " + lower + "; ";
- }
- if (upper !== null) {
- str += "upper ";
- if (upperIsOpen)
- str += "open ";
- str += "bound is " + upper + "; ";
- }
- if (ascending)
- str += "sorted ascending.";
- else
- str += "sorted descending.";
-
- debug("");
- debug(str);
-
- if (ascending) {
- if (lower !== null) {
- if (!lowerIsOpen)
- self.expectedIndex = lower;
- else
- self.expectedIndex = lower+1;
- } else
- self.expectedIndex = 0;
- } else {
- if (upper !== null) {
- if (!upperIsOpen)
- self.expectedIndex = upper;
- else
- self.expectedIndex = upper-1;
- } else
- self.expectedIndex = testData.length-1;
- }
- testWithinBounds();
-
- if (testData[lower] === testData[upper] && (lowerIsOpen || upperIsOpen)) {
- debug("Skipping illegal key range.");
- runNextTest();
- return;
- }
-
- var keyRange;
- if (lower !== null && upper !== null)
- keyRange = IDBKeyRange.bound(testData[lower], testData[upper], lowerIsOpen, upperIsOpen);
- else if (lower !== null)
- keyRange = IDBKeyRange.lowerBound(testData[lower], lowerIsOpen);
- else
- keyRange = IDBKeyRange.upperBound(testData[upper], upperIsOpen);
-
- var request = objectStore.openKeyCursor(keyRange, ascending ? 'next' : 'prev');
- request.onsuccess = cursorIteration;
- request.onerror = unexpectedErrorCallback;
-}
-
-function testWithinBounds()
-{
- if (expectedIndex < 0 || testData.length <= expectedIndex)
- self.expectedIndex = null;
- if (lower !== null && expectedIndex < lower)
- self.expectedIndex = null;
- if (upper !== null && upper < expectedIndex)
- self.expectedIndex = null;
- if (lower !== null && lowerIsOpen && expectedIndex <= lower)
- self.expectedIndex = null;
- if (upper !== null && upperIsOpen && upper <= expectedIndex)
- self.expectedIndex = null;
-}
-
-function cursorIteration()
-{
- if (expectedIndex === null) {
- shouldBeNull("event.target.result");
- runNextTest();
- return;
- }
- if (event.target.result === null) {
- testFailed("event.target.result should not be null.");
- runNextTest();
- return;
- }
-
- shouldBe("event.target.result.key", "testData[" + expectedIndex + "]");
- self.expectedIndex = ascending ? expectedIndex+1 : expectedIndex-1;
- testWithinBounds();
-
- event.target.result.continue();
-}
-
-self.nullKeyRangeStep = 0;
-function testNullKeyRange()
-{
- self.lower = 0;
- self.lowerIsOpen = false;
- self.upper = testData.length-1;
- self.upperIsOpen = false;
-
- str = "Next test: null key path ";
- if (self.nullKeyRangeStep == 0) {
- str += "sorted ascending.";
- self.ascending = true;
- self.expectedIndex = lower;
- self.nullKeyRangeStep = 1;
- } else if (self.nullKeyRangeStep == 1) {
- str += "sorted descending.";
- self.ascending = false;
- self.expectedIndex = upper;
- self.nullKeyRangeStep = 2;
- } else {
- finishJSTest();
- return;
- }
-
- debug("");
- debug(str);
-
- var request = objectStore.openKeyCursor(null, ascending ? 'next' : 'prev');
- request.onsuccess = cursorIteration;
- request.onerror = unexpectedErrorCallback;
-}
</del></span></pre>
</div>
</div>
</body>
</html>