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

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: Comment update/whitespace 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
3 // Changes:
4 // * added 'use strict' since some ES6 features NYI w/o it
5 // * function -> function*
6 // * this.window -> window
7 // * Added deleteDatabase() step to reset storage state
8
9 'use strict';
10 /**
11 * Any copyright is dedicated to the Public Domain.
12 * http://creativecommons.org/publicdomain/zero/1.0/
13 */
14
15 let testGenerator = testSteps();
16
17 function* testSteps() {
18 const dbName = window ?
19 window.location.pathname :
20 "test_objectStore_getAllKeys";
21 indexedDB.deleteDatabase(dbName);
22 const dbVersion = 1;
23 const objectStoreName = "foo";
24 const keyCount = 200;
25
26 let request = indexedDB.open(dbName, dbVersion);
27 request.onerror = errorHandler;
28 request.onupgradeneeded = grabEventAndContinueHandler;
29 request.onsuccess = unexpectedSuccessHandler;
30
31 let event = yield undefined;
32
33 info("Creating database");
34
35 let db = event.target.result;
36 let objectStore = db.createObjectStore(objectStoreName);
37 for (let i = 0; i < keyCount; i++) {
38 objectStore.add(true, i);
39 }
40
41 request.onupgradeneeded = unexpectedSuccessHandler;
42 request.onsuccess = grabEventAndContinueHandler;
43
44 event = yield undefined;
45
46 db = event.target.result;
47 objectStore = db.transaction(objectStoreName).objectStore(objectStoreName);
48
49 info("Getting all keys");
50 objectStore.getAllKeys().onsuccess = grabEventAndContinueHandler;
51 event = yield undefined;
52
53 ok(Array.isArray(event.target.result), "Got an array result");
54 is(event.target.result.length, keyCount, "Got correct array length");
55
56 let match = true;
57 for (let i = 0; i < keyCount; i++) {
58 if (event.target.result[i] != i) {
59 match = false;
60 break;
61 }
62 }
63 ok(match, "Got correct keys");
64
65 info("Getting all keys with key range");
66 let keyRange = IDBKeyRange.bound(10, 20, false, true);
67 objectStore.getAllKeys(keyRange).onsuccess = grabEventAndContinueHandler;
68 event = yield undefined;
69
70 ok(Array.isArray(event.target.result), "Got an array result");
71 is(event.target.result.length, 10, "Got correct array length");
72
73 match = true;
74 for (let i = 10; i < 20; i++) {
75 if (event.target.result[i - 10] != i) {
76 match = false;
77 break;
78 }
79 }
80 ok(match, "Got correct keys");
81
82 info("Getting all keys with unmatched key range");
83 keyRange = IDBKeyRange.bound(10000, 200000);
84 objectStore.getAllKeys(keyRange).onsuccess = grabEventAndContinueHandler;
85 event = yield undefined;
86
87 ok(Array.isArray(event.target.result), "Got an array result");
88 is(event.target.result.length, 0, "Got correct array length");
89
90 info("Getting all keys with limit");
91 objectStore.getAllKeys(null, 5).onsuccess = grabEventAndContinueHandler;
92 event = yield undefined;
93
94 ok(Array.isArray(event.target.result), "Got an array result");
95 is(event.target.result.length, 5, "Got correct array length");
96
97 match = true;
98 for (let i = 0; i < 5; i++) {
99 if (event.target.result[i] != i) {
100 match = false;
101 break;
102 }
103 }
104 ok(match, "Got correct keys");
105
106 info("Getting all keys with key range and limit");
107 keyRange = IDBKeyRange.bound(10, 20, false, true);
108 objectStore.getAllKeys(keyRange, 5).onsuccess = grabEventAndContinueHandler;
109 event = yield undefined;
110
111 ok(Array.isArray(event.target.result), "Got an array result");
112 is(event.target.result.length, 5, "Got correct array length");
113
114 match = true;
115 for (let i = 10; i < 15; i++) {
116 if (event.target.result[i - 10] != i) {
117 match = false;
118 break;
119 }
120 }
121 ok(match, "Got correct keys");
122
123 info("Getting all keys with unmatched key range and limit");
124 keyRange = IDBKeyRange.bound(10000, 200000);
125 objectStore.getAllKeys(keyRange, 5).onsuccess = grabEventAndContinueHandler;
126 event = yield undefined;
127
128 ok(Array.isArray(event.target.result), "Got an array result");
129 is(event.target.result.length, 0, "Got correct array length");
130
131 finishTest();
132 yield undefined;
133 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698