Bug 1816170 - Disable perftest-on-autoland cron. r=aglavic
[gecko.git] / dom / indexedDB / test / unit / test_objectStore_remove_values.js
blob5b26650bba62322d3e76e8569172cd6571831a4d
1 /**
2  * Any copyright is dedicated to the Public Domain.
3  * http://creativecommons.org/publicdomain/zero/1.0/
4  */
6 /* exported testGenerator */
7 var testGenerator = testSteps();
9 function* testSteps() {
10   const name = this.window ? window.location.pathname : "Splendid Test";
12   var data = [
13     {
14       name: "inline key; key generator",
15       autoIncrement: true,
16       storedObject: { name: "Lincoln" },
17       keyName: "id",
18       keyValue: undefined,
19     },
20     {
21       name: "inline key; no key generator",
22       autoIncrement: false,
23       storedObject: { id: 1, name: "Lincoln" },
24       keyName: "id",
25       keyValue: undefined,
26     },
27     {
28       name: "out of line key; key generator",
29       autoIncrement: true,
30       storedObject: { name: "Lincoln" },
31       keyName: undefined,
32       keyValue: undefined,
33     },
34     {
35       name: "out of line key; no key generator",
36       autoIncrement: false,
37       storedObject: { name: "Lincoln" },
38       keyName: null,
39       keyValue: 1,
40     },
41   ];
43   for (let i = 0; i < data.length; i++) {
44     let test = data[i];
46     let request = indexedDB.open(name, i + 1);
47     request.onerror = errorHandler;
48     request.onupgradeneeded = grabEventAndContinueHandler;
49     request.onsuccess = grabEventAndContinueHandler;
50     let event = yield undefined;
52     let db = event.target.result;
53     db.onversionchange = function(event) {
54       event.target.close();
55     };
57     let objectStore = db.createObjectStore(test.name, {
58       keyPath: test.keyName,
59       autoIncrement: test.autoIncrement,
60     });
62     request = objectStore.add(test.storedObject, test.keyValue);
63     request.onerror = errorHandler;
64     request.onsuccess = grabEventAndContinueHandler;
65     event = yield undefined;
67     let id = event.target.result;
68     request = objectStore.get(id);
69     request.onerror = errorHandler;
70     request.onsuccess = grabEventAndContinueHandler;
71     event = yield undefined;
73     // Sanity check!
74     is(
75       test.storedObject.name,
76       event.target.result.name,
77       "The correct object was stored."
78     );
80     request = objectStore.delete(id);
81     request.onerror = errorHandler;
82     request.onsuccess = grabEventAndContinueHandler;
83     event = yield undefined;
85     // Make sure it was removed.
86     request = objectStore.get(id);
87     request.onerror = errorHandler;
88     request.onsuccess = grabEventAndContinueHandler;
89     event = yield undefined;
91     ok(event.target.result === undefined, "Object was deleted");
93     // Wait for success
94     yield undefined;
95   }
97   finishTest();