Modern IDB: Remove unneeded "Alert: " string from storage/indexeddb/modern tests.
[WebKit-https.git] / LayoutTests / storage / indexeddb / modern / resources / createobjectstore-failures.js
1 description("This test exercises the obvious ways that IDBDatabase.createObjectStore can fail.");
2
3 if (window.testRunner) {
4     testRunner.waitUntilDone();
5     testRunner.dumpAsText();
6 }
7
8 function done()
9 {
10     finishJSTest();
11 }
12
13 function dumpObjectStores(database) {
14     var list = database.objectStoreNames;
15     debug("Object store names:");
16     for (var i = 0; i < list.length; ++i) { 
17         debug(list[i]);
18     }
19 }
20
21 var createRequest = window.indexedDB.open("CreateObjectStoreFailuresTestDatabase", 1);
22 var database;
23 var versionTransaction;
24
25 createRequest.onupgradeneeded = function(event) {
26     debug("Initial upgrade needed: Old version - " + event.oldVersion + " New version - " + event.newVersion);
27
28     versionTransaction = createRequest.transaction;
29     database = event.target.result;
30
31     try {
32         var objectStore = database.createObjectStore('TestObjectStore', { autoIncrement: true , keyPath: "" });
33     } catch (e) {
34         debug("Failed to create object store with both autoincrement and an empty keypath: " + e);
35         dumpObjectStores(database);
36     }
37
38     try {
39         var objectStore = database.createObjectStore('TestObjectStore', { autoIncrement: true , keyPath: ['foo'] });
40     } catch (e) {
41         debug("Failed to create object store with both autoincrement and a sequence keypath: " + e);
42         dumpObjectStores(database);
43     }
44     
45     try {
46         var objectStore = database.createObjectStore('TestObjectStore', { keyPath: "'foo bar'"});
47     } catch (e) {
48         debug("Failed to create object store with invalid keyPath: " + e);
49         dumpObjectStores(database);
50     }
51
52     database.createObjectStore("TestObjectStore1");
53     debug("Actually created an object store");
54     dumpObjectStores(database);
55     
56     try {
57         database.createObjectStore("TestObjectStore1");
58     } catch(e) {
59         debug("Failed to create TestObjectStore a second time: " + e);
60         dumpObjectStores(database);
61     }
62
63     versionTransaction.onabort = function(event) {
64         debug("Initial upgrade versionchange unexpected abort");
65         done();
66     }
67
68     versionTransaction.oncomplete = function(event) {
69         debug("Initial upgrade versionchange transaction complete");
70         dumpObjectStores(database);
71
72         try {
73             database.createObjectStore("TestObjectStore2");
74         } catch(e) {
75             debug("Failed to create object store while there is no version change transaction: " + e);
76             dumpObjectStores(database);
77         }
78     
79         setTimeout(finishUp, 0);
80     }
81
82     versionTransaction.onerror = function(event) {
83         debug("Initial upgrade versionchange transaction unexpected error" + event);
84         done();
85     }
86 }
87
88 function finishUp()
89 {
90     try {
91         database.createObjectStore("TestObjectStore99");
92     } catch(e) {
93         debug("Failed to create object store outside of onupgradeneeded: " + e);
94         dumpObjectStores(database);
95     }
96     
97     done();
98 }