Wed, 31 Dec 2014 06:55:50 +0100
Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2
1 /**
2 * Any copyright is dedicated to the Public Domain.
3 * http://creativecommons.org/publicdomain/zero/1.0/
4 */
6 Components.utils.import("resource://gre/modules/ForgetAboutSite.jsm");
8 const domains = [
9 "mochi.test:8888",
10 "www.example.com"
11 ];
13 const addPath = "/browser/dom/indexedDB/test/browser_forgetThisSiteAdd.html";
14 const getPath = "/browser/dom/indexedDB/test/browser_forgetThisSiteGet.html";
16 const testPageURL1 = "http://" + domains[0] + addPath;
17 const testPageURL2 = "http://" + domains[1] + addPath;
18 const testPageURL3 = "http://" + domains[0] + getPath;
19 const testPageURL4 = "http://" + domains[1] + getPath;
21 function test()
22 {
23 requestLongerTimeout(2);
24 waitForExplicitFinish();
25 // Avoids the prompt
26 setPermission(testPageURL1, "indexedDB", "unknown");
27 setPermission(testPageURL2, "indexedDB", "unknown");
28 executeSoon(test1);
29 }
31 function test1()
32 {
33 // Set database version for domain 1
34 gBrowser.selectedTab = gBrowser.addTab();
35 gBrowser.selectedBrowser.addEventListener("load", function () {
36 gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true);
38 setFinishedCallback(function(result, exception) {
39 ok(result == 11, "Set version on database in " + testPageURL1);
40 ok(!exception, "No exception");
41 gBrowser.removeCurrentTab();
43 executeSoon(test2);
44 });
45 }, true);
46 content.location = testPageURL1;
47 }
49 function test2()
50 {
51 // Set database version for domain 2
52 gBrowser.selectedTab = gBrowser.addTab();
53 gBrowser.selectedBrowser.addEventListener("load", function () {
54 gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true);
56 setFinishedCallback(function(result, exception) {
57 ok(result == 11, "Set version on database in " + testPageURL2);
58 ok(!exception, "No exception");
59 gBrowser.removeCurrentTab();
61 executeSoon(test3);
62 });
63 }, true);
64 content.location = testPageURL2;
65 }
67 function test3()
68 {
69 // Remove database from domain 2
70 ForgetAboutSite.removeDataFromDomain(domains[1]);
71 setPermission(testPageURL4, "indexedDB", "unknown");
72 executeSoon(test4);
73 }
75 function test4()
76 {
77 // Get database version for domain 1
78 gBrowser.selectedTab = gBrowser.addTab();
79 gBrowser.selectedBrowser.addEventListener("load", function () {
80 gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true);
82 setFinishedCallback(function(result, exception) {
83 ok(result == 11, "Got correct version on database in " + testPageURL3);
84 ok(!exception, "No exception");
85 gBrowser.removeCurrentTab();
87 executeSoon(test5);
88 });
89 }, true);
90 content.location = testPageURL3;
91 }
93 function test5()
94 {
95 // Get database version for domain 2
96 gBrowser.selectedTab = gBrowser.addTab();
97 gBrowser.selectedBrowser.addEventListener("load", function () {
98 gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true);
100 setFinishedCallback(function(result, exception) {
101 ok(result == 1, "Got correct version on database in " + testPageURL4);
102 ok(!exception, "No exception");
103 gBrowser.removeCurrentTab();
105 executeSoon(finish);
106 });
107 }, true);
108 content.location = testPageURL4;
109 }