Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 /**
2 * Any copyright is dedicated to the Public Domain.
3 * http://creativecommons.org/publicdomain/zero/1.0/
4 */
6 var testGenerator = testSteps();
8 function testSteps()
9 {
10 const name = this.window ? window.location.pathname : "Splendid Test";
12 var data = [
13 { name: "inline key; key generator",
14 autoIncrement: true,
15 storedObject: {name: "Lincoln"},
16 keyName: "id",
17 keyValue: undefined,
18 },
19 { name: "inline key; no key generator",
20 autoIncrement: false,
21 storedObject: {id: 1, name: "Lincoln"},
22 keyName: "id",
23 keyValue: undefined,
24 },
25 { name: "out of line key; key generator",
26 autoIncrement: true,
27 storedObject: {name: "Lincoln"},
28 keyName: undefined,
29 keyValue: undefined,
30 },
31 { name: "out of line key; no key generator",
32 autoIncrement: false,
33 storedObject: {name: "Lincoln"},
34 keyName: null,
35 keyValue: 1,
36 }
37 ];
39 for (let i = 0; i < data.length; i++) {
40 let test = data[i];
42 let request = indexedDB.open(name, i+1);
43 request.onerror = errorHandler;
44 request.onupgradeneeded = grabEventAndContinueHandler;
45 let event = yield undefined;
47 let db = event.target.result;
49 let objectStore = db.createObjectStore(test.name,
50 { keyPath: test.keyName,
51 autoIncrement: test.autoIncrement });
53 request = objectStore.add(test.storedObject, test.keyValue);
54 request.onerror = errorHandler;
55 request.onsuccess = grabEventAndContinueHandler;
56 event = yield undefined;
58 let id = event.target.result;
59 request = objectStore.get(id);
60 request.onerror = errorHandler;
61 request.onsuccess = grabEventAndContinueHandler;
62 event = yield undefined;
64 // Sanity check!
65 is(test.storedObject.name, event.target.result.name,
66 "The correct object was stored.");
68 request = objectStore.delete(id);
69 request.onerror = errorHandler;
70 request.onsuccess = grabEventAndContinueHandler;
71 event = yield undefined;
73 // Make sure it was removed.
74 request = objectStore.get(id);
75 request.onerror = errorHandler;
76 request.onsuccess = grabEventAndContinueHandler;
77 event = yield undefined;
79 ok(event.target.result === undefined, "Object was deleted");
80 db.close();
81 }
83 finishTest();
84 yield undefined;
85 }