<!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>[193660] 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/193660">193660</a></dd>
<dt>Author</dt> <dd>beidson@apple.com</dd>
<dt>Date</dt> <dd>2015-12-07 15:43:38 -0800 (Mon, 07 Dec 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Modern IDB: Miscellaneous test cleanup.
https://bugs.webkit.org/show_bug.cgi?id=151968

Reviewed by Sam Weinig.

- Reorganize TestExpectations a bit.
- Remove two tests that primarily test features that have been removed from the spec.

* platform/mac-wk1/TestExpectations:
* storage/indexeddb/cursor-continueprimarykey-expected.txt: Removed.
* storage/indexeddb/cursor-continueprimarykey.html: Removed.
* storage/indexeddb/factory-basics-expected.txt: Removed.
* storage/indexeddb/factory-basics.html: Removed.
* storage/indexeddb/resources/cursor-continueprimarykey.js: Removed.
* storage/indexeddb/resources/factory-basics.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>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsstorageindexeddbcursorcontinueprimarykeyexpectedtxt">trunk/LayoutTests/storage/indexeddb/cursor-continueprimarykey-expected.txt</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbcursorcontinueprimarykeyhtml">trunk/LayoutTests/storage/indexeddb/cursor-continueprimarykey.html</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbfactorybasicsexpectedtxt">trunk/LayoutTests/storage/indexeddb/factory-basics-expected.txt</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbfactorybasicshtml">trunk/LayoutTests/storage/indexeddb/factory-basics.html</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbresourcescursorcontinueprimarykeyjs">trunk/LayoutTests/storage/indexeddb/resources/cursor-continueprimarykey.js</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbresourcesfactorybasicsjs">trunk/LayoutTests/storage/indexeddb/resources/factory-basics.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (193659 => 193660)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-12-07 23:15:54 UTC (rev 193659)
+++ trunk/LayoutTests/ChangeLog        2015-12-07 23:43:38 UTC (rev 193660)
</span><span class="lines">@@ -1,5 +1,23 @@
</span><span class="cx"> 2015-12-07  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Modern IDB: Miscellaneous test cleanup.
+        https://bugs.webkit.org/show_bug.cgi?id=151968
+
+        Reviewed by Sam Weinig.
+
+        - Reorganize TestExpectations a bit.
+        - Remove two tests that primarily test features that have been removed from the spec.
+
+        * platform/mac-wk1/TestExpectations:
+        * storage/indexeddb/cursor-continueprimarykey-expected.txt: Removed.
+        * storage/indexeddb/cursor-continueprimarykey.html: Removed.
+        * storage/indexeddb/factory-basics-expected.txt: Removed.
+        * storage/indexeddb/factory-basics.html: Removed.
+        * storage/indexeddb/resources/cursor-continueprimarykey.js: Removed.
+        * storage/indexeddb/resources/factory-basics.js: Removed.
+
+2015-12-07  Brady Eidson  &lt;beidson@apple.com&gt;
+
</ins><span class="cx">         Modern IDB: storage/indexeddb/factory-deletedatabase.html fails.
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=151966
</span><span class="cx">         
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk1TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (193659 => 193660)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk1/TestExpectations        2015-12-07 23:15:54 UTC (rev 193659)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations        2015-12-07 23:43:38 UTC (rev 193660)
</span><span class="lines">@@ -110,9 +110,6 @@
</span><span class="cx"> # IDB tests with text failures                                                             
</span><span class="cx"> storage/indexeddb/createIndex-after-failure.html [ Failure ]
</span><span class="cx"> storage/indexeddb/cursor-continue.html [ Failure ]
</span><del>-storage/indexeddb/cursor-continueprimarykey.html [ Failure ]
-storage/indexeddb/cursor-leak.html [ Failure ]
-storage/indexeddb/cursor-request-cycle.html [ Failure ]
</del><span class="cx"> storage/indexeddb/database-deletepending-flag.html [ Failure ]
</span><span class="cx"> storage/indexeddb/database-wrapper.html [ Failure ]
</span><span class="cx"> storage/indexeddb/delete-in-upgradeneeded-close-in-open-success.html [ Failure ]
</span><span class="lines">@@ -120,7 +117,6 @@
</span><span class="cx"> storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange.html [ Failure ]
</span><span class="cx"> storage/indexeddb/deletedatabase-not-blocked.html [ Failure ]
</span><span class="cx"> storage/indexeddb/dont-commit-on-blocked.html [ Failure ]
</span><del>-storage/indexeddb/factory-basics.html [ Failure ]
</del><span class="cx"> storage/indexeddb/factory-cmp.html [ Failure ]
</span><span class="cx"> storage/indexeddb/index-basics.html [ Failure ]
</span><span class="cx"> storage/indexeddb/index-count.html [ Failure ]
</span><span class="lines">@@ -146,12 +142,16 @@
</span><span class="cx"> storage/indexeddb/pending-version-change-stuck-works-with-terminate.html [ Failure ]
</span><span class="cx"> storage/indexeddb/pending-version-change-stuck.html [ Failure ]
</span><span class="cx"> storage/indexeddb/properties-disabled-at-runtime.html [ Failure ]
</span><del>-storage/indexeddb/request-leak.html [ Failure ]
</del><span class="cx"> storage/indexeddb/setversion-blocked-by-versionchange-close.html [ Failure ]
</span><span class="cx"> storage/indexeddb/setversion-not-blocked.html [ Failure ]
</span><span class="cx"> storage/indexeddb/transaction-scope-sequencing.html [ Failure ]
</span><span class="cx"> storage/indexeddb/version-change-abort.html [ Failure ]
</span><span class="cx"> 
</span><ins>+# Relies on internals.observeGC
+storage/indexeddb/cursor-leak.html [ Failure ]
+storage/indexeddb/cursor-request-cycle.html [ Failure ]
+storage/indexeddb/request-leak.html [ Failure ]
+
</ins><span class="cx"> # No workers support in Modern IDB yet
</span><span class="cx"> storage/indexeddb/basics-workers.html
</span><span class="cx"> storage/indexeddb/cursor-advance-workers.html
</span></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbcursorcontinueprimarykeyexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/storage/indexeddb/cursor-continueprimarykey-expected.txt (193659 => 193660)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/cursor-continueprimarykey-expected.txt        2015-12-07 23:15:54 UTC (rev 193659)
+++ trunk/LayoutTests/storage/indexeddb/cursor-continueprimarykey-expected.txt        2015-12-07 23:43:38 UTC (rev 193660)
</span><span class="lines">@@ -1,174 +0,0 @@
</span><del>-Test IndexedDB's IDBCursor.continue() with a primary key parameter.
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
-
-dbname = &quot;cursor-continueprimarykey.html&quot;
-indexedDB.deleteDatabase(dbname)
-indexedDB.open(dbname)
-
-prepareDatabase():
-db = event.target.result
-store = db.createObjectStore('store')
-index = store.createIndex('index', 'indexKey', {multiEntry: true})
-store.put({indexKey: ['a', 'b']}, 1)
-store.put({indexKey: ['a', 'b']}, 2)
-store.put({indexKey: ['a', 'b']}, 3)
-store.put({indexKey: ['b']}, 4)
-checking index structure...
-
-index key  primary key
-=========  ===========
-a          1
-a          2
-a          3
-b          1
-b          2
-b          3
-b          4
-
-Test case: cursor.continue()
-
-tx = db.transaction('store')
-request = tx.objectStore('store').index('index').openCursor()
-cursor.continue()
-PASS cursor.key is &quot;a&quot;
-PASS cursor.primaryKey is 2
-
-Test case: cursor.continue('a')
-
-tx = db.transaction('store')
-request = tx.objectStore('store').index('index').openCursor()
-Expecting exception from cursor.continue('a')
-PASS Exception was thrown.
-PASS code is 0
-PASS ename is 'DataError'
-Exception message: Failed to execute 'continue' on 'IDBCursor': The parameter is less than or equal to this cursor's position.
-
-Test case: cursor.continue('b')
-
-tx = db.transaction('store')
-request = tx.objectStore('store').index('index').openCursor()
-cursor.continue('b')
-PASS cursor.key is &quot;b&quot;
-PASS cursor.primaryKey is 1
-
-Test case: cursor.continue('c')
-
-tx = db.transaction('store')
-request = tx.objectStore('store').index('index').openCursor()
-cursor.continue('c')
-PASS cursor is null
-
-Test case: cursor.continuePrimaryKey('a', 3)
-
-tx = db.transaction('store')
-request = tx.objectStore('store').index('index').openCursor()
-cursor.continuePrimaryKey('a', 3)
-PASS cursor.key is &quot;a&quot;
-PASS cursor.primaryKey is 3
-
-Test case: cursor.continuePrimaryKey('a', 4)
-
-tx = db.transaction('store')
-request = tx.objectStore('store').index('index').openCursor()
-cursor.continuePrimaryKey('a', 4)
-PASS cursor.key is &quot;b&quot;
-PASS cursor.primaryKey is 1
-
-Test case: cursor.continuePrimaryKey('b', 1)
-
-tx = db.transaction('store')
-request = tx.objectStore('store').index('index').openCursor()
-cursor.continuePrimaryKey('b', 1)
-PASS cursor.key is &quot;b&quot;
-PASS cursor.primaryKey is 1
-
-Test case: cursor.continuePrimaryKey('b', 4)
-
-tx = db.transaction('store')
-request = tx.objectStore('store').index('index').openCursor()
-cursor.continuePrimaryKey('b', 4)
-PASS cursor.key is &quot;b&quot;
-PASS cursor.primaryKey is 4
-
-Test case: cursor.continuePrimaryKey('b', 5)
-
-tx = db.transaction('store')
-request = tx.objectStore('store').index('index').openCursor()
-cursor.continuePrimaryKey('b', 5)
-PASS cursor is null
-
-Test case: cursor.continuePrimaryKey('c', 1)
-
-tx = db.transaction('store')
-request = tx.objectStore('store').index('index').openCursor()
-cursor.continuePrimaryKey('c', 1)
-PASS cursor is null
-
-Test case: cursor.continuePrimaryKey(null, 1)
-
-tx = db.transaction('store')
-request = tx.objectStore('store').index('index').openCursor()
-Expecting exception from cursor.continuePrimaryKey(null, 1)
-PASS Exception was thrown.
-PASS code is 0
-PASS ename is 'DataError'
-Exception message: Failed to execute 'continuePrimaryKey' on 'IDBCursor': The parameter is not a valid key.
-
-Test case: cursor.continuePrimaryKey(null, 2)
-
-tx = db.transaction('store')
-request = tx.objectStore('store').index('index').openCursor()
-Expecting exception from cursor.continuePrimaryKey(null, 2)
-PASS Exception was thrown.
-PASS code is 0
-PASS ename is 'DataError'
-Exception message: Failed to execute 'continuePrimaryKey' on 'IDBCursor': The parameter is not a valid key.
-
-Test case: cursor.continuePrimaryKey(null, 3)
-
-tx = db.transaction('store')
-request = tx.objectStore('store').index('index').openCursor()
-Expecting exception from cursor.continuePrimaryKey(null, 3)
-PASS Exception was thrown.
-PASS code is 0
-PASS ename is 'DataError'
-Exception message: Failed to execute 'continuePrimaryKey' on 'IDBCursor': The parameter is not a valid key.
-
-Test case: cursor.continuePrimaryKey(null, 4)
-
-tx = db.transaction('store')
-request = tx.objectStore('store').index('index').openCursor()
-Expecting exception from cursor.continuePrimaryKey(null, 4)
-PASS Exception was thrown.
-PASS code is 0
-PASS ename is 'DataError'
-Exception message: Failed to execute 'continuePrimaryKey' on 'IDBCursor': The parameter is not a valid key.
-
-Test case: cursor.continuePrimaryKey(null, 5)
-
-tx = db.transaction('store')
-request = tx.objectStore('store').index('index').openCursor()
-Expecting exception from cursor.continuePrimaryKey(null, 5)
-PASS Exception was thrown.
-PASS code is 0
-PASS ename is 'DataError'
-Exception message: Failed to execute 'continuePrimaryKey' on 'IDBCursor': The parameter is not a valid key.
-
-Test case: cursor.continuePrimaryKey('a', null)
-
-tx = db.transaction('store')
-request = tx.objectStore('store').index('index').openCursor()
-Expecting exception from cursor.continuePrimaryKey('a', null)
-PASS Exception was thrown.
-PASS code is 0
-PASS ename is 'DataError'
-Exception message: Failed to execute 'continuePrimaryKey' on 'IDBCursor': The parameter is not a valid key.
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbcursorcontinueprimarykeyhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/storage/indexeddb/cursor-continueprimarykey.html (193659 => 193660)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/cursor-continueprimarykey.html        2015-12-07 23:15:54 UTC (rev 193659)
+++ trunk/LayoutTests/storage/indexeddb/cursor-continueprimarykey.html        2015-12-07 23:43:38 UTC (rev 193660)
</span><span class="lines">@@ -1,4 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;script src=&quot;../../resources/js-test.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;resources/shared.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;resources/cursor-continueprimarykey.js&quot;&gt;&lt;/script&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbfactorybasicsexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/storage/indexeddb/factory-basics-expected.txt (193659 => 193660)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/factory-basics-expected.txt        2015-12-07 23:15:54 UTC (rev 193659)
+++ trunk/LayoutTests/storage/indexeddb/factory-basics-expected.txt        2015-12-07 23:43:38 UTC (rev 193660)
</span><span class="lines">@@ -1,35 +0,0 @@
</span><del>-Test the basics of IndexedDB's IDBFactory.
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
-
-PASS typeof indexedDB.open is &quot;function&quot;
-PASS typeof indexedDB.cmp is &quot;function&quot;
-PASS typeof indexedDB.deleteDatabase is &quot;function&quot;
-PASS typeof indexedDB.webkitGetDatabaseNames is &quot;function&quot;
-PASS typeof indexedDB.getDatabaseNames is &quot;undefined&quot;
-request = indexedDB.webkitGetDatabaseNames()
-PASS request.source is null
-databaseNames = event.target.result
-PASS databaseNames.contains('storage/indexeddb/factory-basics') is false
-PASS databaseNames.contains('DATABASE THAT DOES NOT EXIST') is false
-request = indexedDB.open(name)
-PASS request.source is null
-event.target.result.close()
-indexedDB.webkitGetDatabaseNames()
-databaseNames = event.target.result
-PASS databaseNames.contains('storage/indexeddb/factory-basics') is true
-PASS databaseNames.contains('DATABASE THAT DOES NOT EXIST') is false
-request = indexedDB.deleteDatabase('storage/indexeddb/factory-basics')
-PASS request.source is null
-indexedDB.webkitGetDatabaseNames()
-databaseNames = event.target.result
-PASS databaseNames.contains('storage/indexeddb/factory-basics') is false
-PASS databaseNames.contains('DATABASE THAT DOES NOT EXIST') is false
-indexedDB.deleteDatabase('DATABASE THAT DOES NOT EXIST')
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbfactorybasicshtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/storage/indexeddb/factory-basics.html (193659 => 193660)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/factory-basics.html        2015-12-07 23:15:54 UTC (rev 193659)
+++ trunk/LayoutTests/storage/indexeddb/factory-basics.html        2015-12-07 23:43:38 UTC (rev 193660)
</span><span class="lines">@@ -1,9 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;script src=&quot;../../resources/js-test.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;resources/shared.js&quot;&gt;&lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;script src=&quot;resources/factory-basics.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbresourcescursorcontinueprimarykeyjs"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/storage/indexeddb/resources/cursor-continueprimarykey.js (193659 => 193660)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/resources/cursor-continueprimarykey.js        2015-12-07 23:15:54 UTC (rev 193659)
+++ trunk/LayoutTests/storage/indexeddb/resources/cursor-continueprimarykey.js        2015-12-07 23:43:38 UTC (rev 193660)
</span><span class="lines">@@ -1,115 +0,0 @@
</span><del>-if (this.importScripts) {
-    importScripts('../../../fast/js/resources/js-test-pre.js');
-    importScripts('shared.js');
-}
-
-description(&quot;Test IndexedDB's IDBCursor.continue() with a primary key parameter.&quot;);
-
-indexedDBTest(prepareDatabase, verifyContinueCalls);
-function prepareDatabase(evt)
-{
-    preamble(evt);
-
-    evalAndLog(&quot;db = event.target.result&quot;);
-    evalAndLog(&quot;store = db.createObjectStore('store')&quot;);
-    evalAndLog(&quot;index = store.createIndex('index', 'indexKey', {multiEntry: true})&quot;);
-
-    evalAndLog(&quot;store.put({indexKey: ['a', 'b']}, 1)&quot;);
-    evalAndLog(&quot;store.put({indexKey: ['a', 'b']}, 2)&quot;);
-    evalAndLog(&quot;store.put({indexKey: ['a', 'b']}, 3)&quot;);
-    evalAndLog(&quot;store.put({indexKey: ['b']}, 4)&quot;);
-
-    var indexExpected = [
-        {key: &quot;a&quot;, primaryKey: 1},
-        {key: &quot;a&quot;, primaryKey: 2},
-        {key: &quot;a&quot;, primaryKey: 3},
-        {key: &quot;b&quot;, primaryKey: 1},
-        {key: &quot;b&quot;, primaryKey: 2},
-        {key: &quot;b&quot;, primaryKey: 3},
-        {key: &quot;b&quot;, primaryKey: 4}
-    ];
-    debug(&quot;checking index structure...&quot;);
-    debug(&quot;&quot;);
-    debug(&quot;index key  primary key&quot;);
-    debug(&quot;=========  ===========&quot;);
-    var quiet = true;
-    evalAndLog(&quot;request = index.openCursor()&quot;, quiet);
-    request.onerror = unexpectedErrorCallback;
-    request.onsuccess = function onCursorSuccess() {
-        evalAndLog(&quot;cursor = request.result&quot;, quiet);
-        var expectedEntry = indexExpected.shift();
-        if (expectedEntry) {
-            shouldBe(&quot;cursor.key&quot;, JSON.stringify(expectedEntry.key), quiet);
-            shouldBe(&quot;cursor.primaryKey&quot;, JSON.stringify(expectedEntry.primaryKey), quiet);
-            debug(cursor.key + &quot;          &quot; + cursor.primaryKey);
-            evalAndLog(&quot;cursor.continue()&quot;, quiet);
-        } else {
-            shouldBeNull(&quot;cursor&quot;, quiet);
-        }
-    };
-}
-
-var testCases = [
-    // Continuing index key
-    { call: &quot;cursor.continue()&quot;, result: { key: &quot;a&quot;, primaryKey: 2 } },
-    { call: &quot;cursor.continue('a')&quot;, exception: 'DataError' },
-    { call: &quot;cursor.continue('b')&quot;, result: { key: &quot;b&quot;, primaryKey: 1 } },
-    { call: &quot;cursor.continue('c')&quot;, result: null },
-
-    // Called w/ index key and primary key:
-    { call: &quot;cursor.continuePrimaryKey('a', 3)&quot;, result: {key: 'a', primaryKey: 3} },
-    { call: &quot;cursor.continuePrimaryKey('a', 4)&quot;, result: {key: 'b', primaryKey: 1} },
-    { call: &quot;cursor.continuePrimaryKey('b', 1)&quot;, result: {key: 'b', primaryKey: 1} },
-    { call: &quot;cursor.continuePrimaryKey('b', 4)&quot;, result: {key: 'b', primaryKey: 4} },
-    { call: &quot;cursor.continuePrimaryKey('b', 5)&quot;, result: null },
-    { call: &quot;cursor.continuePrimaryKey('c', 1)&quot;, result: null },
-
-    // Called w/ primary key but w/o index key
-    { call: &quot;cursor.continuePrimaryKey(null, 1)&quot;, exception: 'DataError' },
-    { call: &quot;cursor.continuePrimaryKey(null, 2)&quot;, exception: 'DataError' },
-    { call: &quot;cursor.continuePrimaryKey(null, 3)&quot;, exception: 'DataError' },
-    { call: &quot;cursor.continuePrimaryKey(null, 4)&quot;, exception: 'DataError' },
-    { call: &quot;cursor.continuePrimaryKey(null, 5)&quot;, exception: 'DataError' },
-
-    // Called w/ index key but w/o primary key
-    { call: &quot;cursor.continuePrimaryKey('a', null)&quot;, exception: 'DataError' },
- ];
-
-function verifyContinueCalls() {
-    debug(&quot;&quot;);
-    if (!testCases.length) {
-        finishJSTest();
-        return;
-    }
-
-    var quiet = true;
-    testCase = testCases.shift();
-    debug(&quot;Test case: &quot; + testCase.call);
-    debug(&quot;&quot;);
-    evalAndLog(&quot;tx = db.transaction('store')&quot;);
-    evalAndLog(&quot;request = tx.objectStore('store').index('index').openCursor()&quot;);
-    var i = 0;
-    request.onsuccess = function() {
-        ++i;
-        evalAndLog(&quot;cursor = request.result&quot;, true);
-        if (i === 1) {
-            if ('exception' in testCase) {
-                evalAndExpectException(testCase.call, &quot;0&quot;, &quot;'DataError'&quot;);
-            } else {
-                evalAndLog(testCase.call);
-            }
-            return;
-        }
-
-        if (i === 2) {
-            if (testCase.result) {
-                shouldBe(&quot;cursor.key&quot;, JSON.stringify(testCase.result.key));
-                shouldBe(&quot;cursor.primaryKey&quot;, JSON.stringify(testCase.result.primaryKey));
-            } else {
-                shouldBeNull(&quot;cursor&quot;);
-            }
-        }
-    };
-
-    tx.oncomplete = verifyContinueCalls;
-}
</del></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbresourcesfactorybasicsjs"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/storage/indexeddb/resources/factory-basics.js (193659 => 193660)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/resources/factory-basics.js        2015-12-07 23:15:54 UTC (rev 193659)
+++ trunk/LayoutTests/storage/indexeddb/resources/factory-basics.js        2015-12-07 23:43:38 UTC (rev 193660)
</span><span class="lines">@@ -1,90 +0,0 @@
</span><del>-if (this.importScripts) {
-    importScripts('../../../resources/js-test.js');
-    importScripts('shared.js');
-}
-
-description(&quot;Test the basics of IndexedDB's IDBFactory.&quot;);
-
-function test()
-{
-    removeVendorPrefixes();
-
-    shouldBeEqualToString(&quot;typeof indexedDB.open&quot;, &quot;function&quot;);
-    shouldBeEqualToString(&quot;typeof indexedDB.cmp&quot;, &quot;function&quot;);
-    shouldBeEqualToString(&quot;typeof indexedDB.deleteDatabase&quot;, &quot;function&quot;);
-
-    // Non-standard, must be prefixed
-    shouldBeEqualToString(&quot;typeof indexedDB.webkitGetDatabaseNames&quot;, &quot;function&quot;);
-    shouldBeEqualToString(&quot;typeof indexedDB.getDatabaseNames&quot;, &quot;undefined&quot;);
-
-    name = 'storage/indexeddb/factory-basics';
-
-    evalAndLog(&quot;request = indexedDB.webkitGetDatabaseNames()&quot;);
-    shouldBeNull(&quot;request.source&quot;);
-    request.onsuccess = getDatabaseNamesSuccess1;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function getDatabaseNamesSuccess1(evt)
-{
-    event = evt;
-    var databaseNames;
-    evalAndLog(&quot;databaseNames = event.target.result&quot;);
-    shouldBeFalse(&quot;databaseNames.contains('&quot; + name + &quot;')&quot;);
-    shouldBeFalse(&quot;databaseNames.contains('DATABASE THAT DOES NOT EXIST')&quot;);
-
-    evalAndLog(&quot;request = indexedDB.open(name)&quot;);
-    shouldBeNull(&quot;request.source&quot;);
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess(evt)
-{
-    event = evt;
-    evalAndLog(&quot;event.target.result.close()&quot;);
-    request = evalAndLog(&quot;indexedDB.webkitGetDatabaseNames()&quot;);
-    request.onsuccess = getDatabaseNamesSuccess2;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function getDatabaseNamesSuccess2(evt)
-{
-    event = evt;
-    var databaseNames;
-    evalAndLog(&quot;databaseNames = event.target.result&quot;);
-    shouldBeTrue(&quot;databaseNames.contains('&quot; + name + &quot;')&quot;);
-    shouldBeFalse(&quot;databaseNames.contains('DATABASE THAT DOES NOT EXIST')&quot;);
-
-    evalAndLog(&quot;request = indexedDB.deleteDatabase('&quot; + name + &quot;')&quot;);
-    shouldBeNull(&quot;request.source&quot;);
-    request.onsuccess = deleteDatabaseSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function deleteDatabaseSuccess()
-{
-    request = evalAndLog(&quot;indexedDB.webkitGetDatabaseNames()&quot;);
-    request.onsuccess = getDatabaseNamesSuccess3;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function getDatabaseNamesSuccess3(evt)
-{
-    event = evt;
-    var databaseNames;
-    evalAndLog(&quot;databaseNames = event.target.result&quot;);
-    shouldBeFalse(&quot;databaseNames.contains('&quot; + name + &quot;')&quot;);
-    shouldBeFalse(&quot;databaseNames.contains('DATABASE THAT DOES NOT EXIST')&quot;);
-
-    request = evalAndLog(&quot;indexedDB.deleteDatabase('DATABASE THAT DOES NOT EXIST')&quot;);
-    request.onsuccess = deleteDatabaseSuccess2;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function deleteDatabaseSuccess2()
-{
-    finishJSTest();
-}
-
-test();
</del></span></pre>
</div>
</div>

</body>
</html>