dom/indexedDB/test/unit/test_unique_index_update.js

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:b3409d492e03
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 request.onsuccess = grabEventAndContinueHandler;
14
15 let event = yield undefined;
16
17 let db = event.target.result;
18
19 for each (let autoIncrement in [false, true]) {
20 let objectStore =
21 db.createObjectStore(autoIncrement, { keyPath: "id",
22 autoIncrement: autoIncrement });
23 objectStore.createIndex("", "index", { unique: true });
24
25 for (let i = 0; i < 10; i++) {
26 objectStore.add({ id: i, index: i });
27 }
28 }
29
30 event = yield undefined;
31 is(event.type, "success", "expect a success event");
32
33 for each (let autoIncrement in [false, true]) {
34 objectStore = db.transaction(autoIncrement, "readwrite")
35 .objectStore(autoIncrement);
36
37 request = objectStore.put({ id: 5, index: 6 });
38 request.onsuccess = unexpectedSuccessHandler;
39 request.addEventListener("error", new ExpectError("ConstraintError", true));
40 event = yield undefined;
41
42 event.preventDefault();
43
44 let keyRange = IDBKeyRange.only(5);
45
46 objectStore.index("").openCursor(keyRange).onsuccess = function(event) {
47 let cursor = event.target.result;
48 ok(cursor, "Must have a cursor here");
49
50 is(cursor.value.index, 5, "Still have the right index value");
51
52 cursor.value.index = 6;
53
54 request = cursor.update(cursor.value);
55 request.onsuccess = unexpectedSuccessHandler;
56 request.addEventListener("error", new ExpectError("ConstraintError", true));
57 };
58
59 yield undefined;
60 }
61
62 finishTest();
63 yield undefined;
64 }

mercurial