cd7550dfcb5874f78f4ac209f55c46222eaf2305
[WebKit-https.git] / LayoutTests / storage / indexeddb / modern / resources / idbindex-properties-basic.js
1 description("This tests getting basic properties on an IDBIndex.");
2
3 if (window.testRunner) {
4     testRunner.waitUntilDone();
5     testRunner.dumpAsText();
6 }
7
8 function done()
9 {
10     finishJSTest();
11 }
12
13 function gol(message)
14 {
15     debug("ALERT: " + message);
16 }
17
18 function logIndex(index)
19 {
20     debug("ALERT: " + index.name);
21     debug("ALERT: " + index.objectStore);
22     debug("ALERT: " + index.objectStore.name);
23     debug("ALERT: " + index.keyPath);
24     debug("ALERT: " + index.multiEntry);
25     debug("ALERT: " + index.unique);
26 }
27
28 var createRequest = window.indexedDB.open("IDBIndexPropertiesBasicDatabase", 1);
29 var database;
30
31 var indexes = new Array();
32
33 createRequest.onupgradeneeded = function(event) {
34     debug("ALERT: " + "Initial upgrade needed: Old version - " + event.oldVersion + " New version - " + event.newVersion);
35
36     var versionTransaction = createRequest.transaction;
37     database = event.target.result;
38     var objectStore = database.createObjectStore("TestObjectStore");
39     
40     indexes.push(objectStore.createIndex("TestIndex1", "foo"));
41     indexes.push(objectStore.createIndex("TestIndex2", "foo", { unique: false, multiEntry: false }));
42     indexes.push(objectStore.createIndex("TestIndex3", "foo", { unique: true, multiEntry: false }));
43     indexes.push(objectStore.createIndex("TestIndex4", "foo", { unique: false, multiEntry: true }));
44     indexes.push(objectStore.createIndex("TestIndex5", "foo", { unique: true, multiEntry: true }));
45     indexes.push(objectStore.createIndex("TestIndex6", [ "foo" ]));
46     indexes.push(objectStore.createIndex("TestIndex7", [ "foo", "bar" ]));
47
48     for (index in indexes)
49         logIndex(indexes[index]);
50
51     versionTransaction.onabort = function(event) {
52         debug("ALERT: " + "Initial upgrade versionchange transaction unexpected aborted");
53         done();
54     }
55
56     versionTransaction.oncomplete = function(event) {
57         debug("ALERT: " + "Initial upgrade versionchange transaction complete");
58         continueTest1();
59     }
60
61     versionTransaction.onerror = function(event) {
62         debug("ALERT: " + "Initial upgrade versionchange transaction unexpected error" + event);
63         done();
64     }
65 }
66
67 function continueTest1()
68 {
69     var transaction = database.transaction("TestObjectStore", "readonly");
70     var objectStore = transaction.objectStore("TestObjectStore");
71
72     logIndex(objectStore.index("TestIndex1"));
73     logIndex(objectStore.index("TestIndex2"));
74     logIndex(objectStore.index("TestIndex3"));
75     logIndex(objectStore.index("TestIndex4"));
76     logIndex(objectStore.index("TestIndex5"));
77     logIndex(objectStore.index("TestIndex6"));
78     logIndex(objectStore.index("TestIndex7"));
79
80     transaction.onabort = function(event) {
81         debug("ALERT: " + "readonly transaction unexpected abort" + event);
82         done();
83     }
84
85     transaction.oncomplete = function(event) {
86         debug("ALERT: " + "readonly transaction complete");
87         done();
88     }
89
90     transaction.onerror = function(event) {
91         debug("ALERT: " + "readonly transaction unexpected error" + event);
92         done();
93     }
94 }