Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Side by Side Diff: LayoutTests/storage/indexeddb/mozilla/resources/test_objectStore_getAllKeys.js

Issue 1312983006: Import Mozilla's IndexedDB getAll/getAllKeys tests (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Correct descriptions Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Imported from:
2 // * http://mxr.mozilla.org/mozilla-central/source/dom/indexedDB/test/unit/test_ objectStore_getAllKeys.js?force=1
3 // Changes:
4 // * added 'use strict' since some ES6 features NYI w/o it
5 // * function -> function*
6 // * this.window -> window
cmumford 2015/08/25 20:22:30 No testGenerator changes here either.
jsbell 2015/08/25 20:45:06 Done.
7 // * testGenerator.send() -> testGenerator.next()
8 // * Added deleteDatabase() step to reset storage state
9
10 'use strict';
11 /**
12 * Any copyright is dedicated to the Public Domain.
13 * http://creativecommons.org/publicdomain/zero/1.0/
14 */
15
16 let testGenerator = testSteps();
17
18 function* testSteps() {
19 const dbName = window ?
20 window.location.pathname :
21 "test_objectStore_getAllKeys";
22 indexedDB.deleteDatabase(dbName);
23 const dbVersion = 1;
24 const objectStoreName = "foo";
25 const keyCount = 200;
26
27 let request = indexedDB.open(dbName, dbVersion);
28 request.onerror = errorHandler;
29 request.onupgradeneeded = grabEventAndContinueHandler;
30 request.onsuccess = unexpectedSuccessHandler;
31
32 let event = yield undefined;
33
34 info("Creating database");
35
36 let db = event.target.result;
37 let objectStore = db.createObjectStore(objectStoreName);
38 for (let i = 0; i < keyCount; i++) {
39 objectStore.add(true, i);
40 }
41
42 request.onupgradeneeded = unexpectedSuccessHandler;
43 request.onsuccess = grabEventAndContinueHandler;
44
45 event = yield undefined;
46
47 db = event.target.result;
48 objectStore = db.transaction(objectStoreName).objectStore(objectStoreName);
49
50 info("Getting all keys");
51 objectStore.getAllKeys().onsuccess = grabEventAndContinueHandler;
52 event = yield undefined;
53
54 ok(Array.isArray(event.target.result), "Got an array result");
55 is(event.target.result.length, keyCount, "Got correct array length");
56
57 let match = true;
58 for (let i = 0; i < keyCount; i++) {
59 if (event.target.result[i] != i) {
60 match = false;
61 break;
62 }
63 }
64 ok(match, "Got correct keys");
65
66 info("Getting all keys with key range");
67 let keyRange = IDBKeyRange.bound(10, 20, false, true);
68 objectStore.getAllKeys(keyRange).onsuccess = grabEventAndContinueHandler;
69 event = yield undefined;
70
71 ok(Array.isArray(event.target.result), "Got an array result");
72 is(event.target.result.length, 10, "Got correct array length");
73
74 match = true;
75 for (let i = 10; i < 20; i++) {
76 if (event.target.result[i - 10] != i) {
77 match = false;
78 break;
79 }
80 }
81 ok(match, "Got correct keys");
82
83 info("Getting all keys with unmatched key range");
84 keyRange = IDBKeyRange.bound(10000, 200000);
85 objectStore.getAllKeys(keyRange).onsuccess = grabEventAndContinueHandler;
86 event = yield undefined;
87
88 ok(Array.isArray(event.target.result), "Got an array result");
89 is(event.target.result.length, 0, "Got correct array length");
90
91 info("Getting all keys with limit");
92 objectStore.getAllKeys(null, 5).onsuccess = grabEventAndContinueHandler;
93 event = yield undefined;
94
95 ok(Array.isArray(event.target.result), "Got an array result");
96 is(event.target.result.length, 5, "Got correct array length");
97
98 match = true;
99 for (let i = 0; i < 5; i++) {
100 if (event.target.result[i] != i) {
101 match = false;
102 break;
103 }
104 }
105 ok(match, "Got correct keys");
106
107 info("Getting all keys with key range and limit");
108 keyRange = IDBKeyRange.bound(10, 20, false, true);
109 objectStore.getAllKeys(keyRange, 5).onsuccess = grabEventAndContinueHandler;
110 event = yield undefined;
111
112 ok(Array.isArray(event.target.result), "Got an array result");
113 is(event.target.result.length, 5, "Got correct array length");
114
115 match = true;
116 for (let i = 10; i < 15; i++) {
117 if (event.target.result[i - 10] != i) {
118 match = false;
119 break;
120 }
121 }
122 ok(match, "Got correct keys");
123
124 info("Getting all keys with unmatched key range and limit");
125 keyRange = IDBKeyRange.bound(10000, 200000);
126 objectStore.getAllKeys(keyRange, 5).onsuccess = grabEventAndContinueHandler;
127 event = yield undefined;
128
129 ok(Array.isArray(event.target.result), "Got an array result");
130 is(event.target.result.length, 0, "Got correct array length");
131
132 finishTest();
133 yield undefined;
134 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698