50ff917731dd19f7a636dc08ccf00d290f85aa83
[WebKit-https.git] / LayoutTests / storage / indexeddb / modern / resources / idbtransaction-objectstore-failures.js
1 description("This tests some obvious failures that can happen while calling transaction.objectStore()");
2
3
4 if (window.testRunner) {
5     testRunner.waitUntilDone();
6     testRunner.dumpAsText();
7 }
8
9 var request = window.indexedDB.open("TransactionObjectStoreFailuresTestDatabase");
10
11 function done()
12 {
13     finishJSTest();
14 }
15
16 request.onupgradeneeded = function(event)
17 {
18     debug("ALERT: " + "Upgrade needed: Old version - " + event.oldVersion + " New version - " + event.newVersion);
19     
20     var tx = request.transaction;
21     var db = event.target.result;
22
23     debug("ALERT: " + tx + " - " + tx.mode);
24     debug("ALERT: " + db);
25
26     var os1 = db.createObjectStore("TestObjectStore1");
27     var os2 = db.createObjectStore("TestObjectStore2");
28
29     var putRequest = os1.put("bar", "foo");
30     
31     putRequest.onerror = function() {
32         debug("ALERT: " + "put failed (because transaction was aborted)");
33     }
34     
35     try {
36         tx.objectStore("");
37     } catch(e) {
38         debug("ALERT: " + "Caught attempt to access empty-named object store on the transaction");
39     }
40     
41     try {
42         tx.objectStore();
43     } catch(e) {
44         debug("ALERT: " + "Caught attempt to access null-named object store on the transaction");
45     }
46      
47     try {
48         tx.objectStore("ThisObjectStoreDoesNotExist");
49     } catch(e) {
50         debug("ALERT: " + "Caught attempt to access non-existant object store on the transaction");
51     }
52     
53     tx.abort();
54     
55     try {
56         tx.objectStore("TestObjectStore1");
57     } catch(e) {
58         debug("ALERT: " + "Caught attempt to access valid object store on a transaction that is already finishing");
59     }
60       
61     tx.onabort = function(event) {
62         debug("ALERT: " + "First version change transaction abort");
63         done();
64     }
65
66     tx.oncomplete = function(event) {
67         debug("ALERT: " + "First version change transaction unexpected complete");
68         done();
69     }
70
71     tx.onerror = function(event) {
72         debug("ALERT: " + "First version change transaction unexpected error - " + event);
73         done();
74     }
75 }
76