Replacing RANDOMBLOB with ZEROBLOB, as RANDOMBLOB will soon be
[WebKit-https.git] / LayoutTests / storage / quota-tracking.html
1 <html>
2 <head>
3 <script>
4 var database1;
5 var database2;
6
7 function log(message)
8 {
9     document.getElementById("console").innerHTML += message + "<br>";
10 }
11
12 function finishTest()
13 {
14     log("Test Complete");
15     if (window.layoutTestController)
16         layoutTestController.notifyDone();
17 }
18
19 function errorFunction(tx, error)
20 {
21     log("Test failed - " + error.message);
22     finishTest();
23 }
24
25 function checkCompletion(db)
26 {
27     log("Done adding data");
28
29     db.complete = true;
30     if (database1.complete && database2.complete)
31         finishTest();
32     else
33         testDatabase(database2);
34 }
35
36 function addData(db)
37 {
38     db.transaction(function(tx) { 
39         log("Inserting some data");
40         tx.executeSql("INSERT INTO DataTest (randomData) VALUES (ZEROBLOB(17408))", [], function(tx, result) { }, errorFunction); 
41     }, errorFunction, function() { 
42         checkCompletion(db); 
43     });
44 }
45
46 function testDatabase(db)
47 {
48     db.transaction(function(tx) {
49         log("Adding a table");
50         tx.executeSql("CREATE TABLE DataTest (randomData)", [], function(tx, result) { }, errorFunction); 
51     }, errorFunction, function() { 
52         addData(db); 
53     });
54 }
55
56 function runTest()
57 {
58     if (window.layoutTestController) {
59         layoutTestController.clearAllDatabases();
60         layoutTestController.dumpDatabaseCallbacks();
61         layoutTestController.setDatabaseQuota(32768);
62         layoutTestController.dumpAsText();
63         layoutTestController.waitUntilDone();
64     }
65     
66     database1 = openDatabase("QuotaManagementDatabase1", "1.0", "Test for quota management <rdar://5628468>", 1);
67     database2 = openDatabase("QuotaManagementDatabase2", "1.0", "Test for quota management <rdar://5628468>", 1);
68     database1.complete = false;
69     database2.complete = false;
70     
71     testDatabase(database1);
72 }
73
74 </script>
75 </head>
76
77 <body onload="runTest()">
78 This test checks to make sure that quotas are enforced per-origin instead of per-database, as they were prior to http://trac.webkit.org/projects/webkit/changeset/29983.<br>
79 The test clears all databases, sets the quota for the origin to 32k, then tries to insert 17k of data into two databases.  If things go as planned, the UI Delegate will be informed of the exceeded quota.
80 <pre id="console">
81 </pre>
82 </body>
83
84 </html>