|
1 /** |
|
2 * Any copyright is dedicated to the Public Domain. |
|
3 * http://creativecommons.org/publicdomain/zero/1.0/ |
|
4 */ |
|
5 |
|
6 var testGenerator = testSteps(); |
|
7 |
|
8 function testSteps() |
|
9 { |
|
10 let request = indexedDB.open(this.window ? window.location.pathname : "Splendid Test", 1); |
|
11 request.onerror = errorHandler; |
|
12 request.onupgradeneeded = grabEventAndContinueHandler; |
|
13 let event = yield undefined; |
|
14 |
|
15 let db = request.result; |
|
16 db.onerror = errorHandler; |
|
17 |
|
18 let objectStore = db.createObjectStore("foo", { keyPath: "id", |
|
19 autoIncrement: true }); |
|
20 objectStore.createIndex("first","first"); |
|
21 objectStore.createIndex("second","second"); |
|
22 objectStore.createIndex("third","third"); |
|
23 |
|
24 let data = { first: "foo", second: "foo", third: "foo" }; |
|
25 |
|
26 objectStore.add(data).onsuccess = grabEventAndContinueHandler; |
|
27 event = yield undefined; |
|
28 |
|
29 is(event.target.result, 1, "Added entry"); |
|
30 request.onsuccess = grabEventAndContinueHandler; |
|
31 |
|
32 event = yield undefined; |
|
33 |
|
34 let objectStore = db.transaction("foo").objectStore("foo"); |
|
35 let first = objectStore.index("first"); |
|
36 let second = objectStore.index("second"); |
|
37 let third = objectStore.index("third"); |
|
38 |
|
39 first.get("foo").onsuccess = grabEventAndContinueHandler; |
|
40 event = yield undefined; |
|
41 |
|
42 is (event.target.result.id, 1, "Entry in first"); |
|
43 |
|
44 second.get("foo").onsuccess = grabEventAndContinueHandler; |
|
45 event = yield undefined; |
|
46 |
|
47 is (event.target.result.id, 1, "Entry in second"); |
|
48 |
|
49 third.get("foo").onsuccess = grabEventAndContinueHandler; |
|
50 event = yield undefined; |
|
51 |
|
52 is (event.target.result.id, 1, "Entry in third"); |
|
53 |
|
54 finishTest(); |
|
55 yield undefined; |
|
56 } |