Modern IDB: Remove unneeded "Alert: " string from storage/indexeddb/modern tests.
[WebKit-https.git] / LayoutTests / storage / indexeddb / modern / resources / versionchange-event.js
1 description("This test: \
2 -Opens a connection to a database at version 1, creating the database \
3 -Commits the version change transaction for that database \
4 -Opens a second connection to that database, requesting version 1 \
5 -Opens a third connection to that database, requesting version 2 \
6 -Makes sure the first and second connections get the versionchange event \
7 -Closes the first and second connections \
8 -Makes sure the versionchange transaction for the second connection starts successfully");
9
10
11 if (window.testRunner) {
12     testRunner.waitUntilDone();
13     testRunner.dumpAsText();
14 }
15
16 function done()
17 {
18     finishJSTest();
19 }
20
21 var request = window.indexedDB.open("VersionChangeTestDatabase");
22 var connection1;
23 var connection2;
24
25 request.onsuccess = function()
26 {
27     debug("First version change successful");
28 }
29 request.onerror = function(e)
30 {
31     debug("Unexpected error (firstPhase)");
32         done();
33 }
34
35 request.onupgradeneeded = function(e)
36 {
37     var database = event.target.result;
38
39     debug("upgradeneeded (firstPhase): old version - " + e.oldVersion + " new version - " + e.newVersion);
40     request.transaction.oncomplete = function()
41     {
42         debug("Version change complete (firstPhase). Database version is now - " + database.version);
43
44         connection1 = database;
45         connection1.onversionchange = function(e)
46         {
47             connection1.oldVersion = e.oldVersion;
48             connection1.newVersion = e.newVersion;
49             connection1.close();
50         }
51         secondPhase();
52     }
53     request.transaction.onabort = function()
54     {
55         debug("Version change transaction unexpected abort (firstPhase)");
56         done();
57     }
58     request.transaction.onerror = function()
59     {
60         debug("Version change transaction unexpected error (firstPhase)");
61         done();
62     }
63 }
64
65 function secondPhase()
66 {
67     var request = window.indexedDB.open("VersionChangeTestDatabase", 1);
68     request.onsuccess = function()
69     {
70         debug("Open success (secondPhase)");
71         connection2 = request.result;
72         connection2.onversionchange = function(e)
73         {
74             connection2.oldVersion = e.oldVersion;
75             connection2.newVersion = e.newVersion;
76             connection2.close();
77         }
78         thirdPhase();
79     }
80     request.onerror = function(e)
81     {
82         debug("Unexpected open error (secondPhase)" + e);
83         done();
84     }
85     request.onupgradeneeded = function(e)
86     {
87         debug("Unexpected upgrade needed (secondPhase)");
88         done();
89     }
90 }
91
92 function thirdPhase()
93 {
94     var request = window.indexedDB.open("VersionChangeTestDatabase", 2);
95     debug("thirdPhase - Requested database connection with version 2");
96     request.onsuccess = function()
97     {
98         debug("Version change to version 2 successful");
99     }
100     request.onerror = function(e)
101     {
102         debug("Unexpected open error (thirdPhase)" + e);
103         done();
104     }
105     request.onupgradeneeded = function(e)
106     {
107         debug("Expected upgrade needed (thirdPhase)");
108         debug("firstPhase connection had received oldVersion: " + connection1.oldVersion + ", newVersion: " + connection1.newVersion);
109         debug("secondPhase connection had received oldVersion: " + connection2.oldVersion + ", newVersion: " + connection2.newVersion);
110
111         done();
112     }
113 }
114