1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/indexedDB/test/browser_forgetThisSite.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,109 @@ 1.4 +/** 1.5 + * Any copyright is dedicated to the Public Domain. 1.6 + * http://creativecommons.org/publicdomain/zero/1.0/ 1.7 + */ 1.8 + 1.9 +Components.utils.import("resource://gre/modules/ForgetAboutSite.jsm"); 1.10 + 1.11 +const domains = [ 1.12 + "mochi.test:8888", 1.13 + "www.example.com" 1.14 +]; 1.15 + 1.16 +const addPath = "/browser/dom/indexedDB/test/browser_forgetThisSiteAdd.html"; 1.17 +const getPath = "/browser/dom/indexedDB/test/browser_forgetThisSiteGet.html"; 1.18 + 1.19 +const testPageURL1 = "http://" + domains[0] + addPath; 1.20 +const testPageURL2 = "http://" + domains[1] + addPath; 1.21 +const testPageURL3 = "http://" + domains[0] + getPath; 1.22 +const testPageURL4 = "http://" + domains[1] + getPath; 1.23 + 1.24 +function test() 1.25 +{ 1.26 + requestLongerTimeout(2); 1.27 + waitForExplicitFinish(); 1.28 + // Avoids the prompt 1.29 + setPermission(testPageURL1, "indexedDB", "unknown"); 1.30 + setPermission(testPageURL2, "indexedDB", "unknown"); 1.31 + executeSoon(test1); 1.32 +} 1.33 + 1.34 +function test1() 1.35 +{ 1.36 + // Set database version for domain 1 1.37 + gBrowser.selectedTab = gBrowser.addTab(); 1.38 + gBrowser.selectedBrowser.addEventListener("load", function () { 1.39 + gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true); 1.40 + 1.41 + setFinishedCallback(function(result, exception) { 1.42 + ok(result == 11, "Set version on database in " + testPageURL1); 1.43 + ok(!exception, "No exception"); 1.44 + gBrowser.removeCurrentTab(); 1.45 + 1.46 + executeSoon(test2); 1.47 + }); 1.48 + }, true); 1.49 + content.location = testPageURL1; 1.50 +} 1.51 + 1.52 +function test2() 1.53 +{ 1.54 + // Set database version for domain 2 1.55 + gBrowser.selectedTab = gBrowser.addTab(); 1.56 + gBrowser.selectedBrowser.addEventListener("load", function () { 1.57 + gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true); 1.58 + 1.59 + setFinishedCallback(function(result, exception) { 1.60 + ok(result == 11, "Set version on database in " + testPageURL2); 1.61 + ok(!exception, "No exception"); 1.62 + gBrowser.removeCurrentTab(); 1.63 + 1.64 + executeSoon(test3); 1.65 + }); 1.66 + }, true); 1.67 + content.location = testPageURL2; 1.68 +} 1.69 + 1.70 +function test3() 1.71 +{ 1.72 + // Remove database from domain 2 1.73 + ForgetAboutSite.removeDataFromDomain(domains[1]); 1.74 + setPermission(testPageURL4, "indexedDB", "unknown"); 1.75 + executeSoon(test4); 1.76 +} 1.77 + 1.78 +function test4() 1.79 +{ 1.80 + // Get database version for domain 1 1.81 + gBrowser.selectedTab = gBrowser.addTab(); 1.82 + gBrowser.selectedBrowser.addEventListener("load", function () { 1.83 + gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true); 1.84 + 1.85 + setFinishedCallback(function(result, exception) { 1.86 + ok(result == 11, "Got correct version on database in " + testPageURL3); 1.87 + ok(!exception, "No exception"); 1.88 + gBrowser.removeCurrentTab(); 1.89 + 1.90 + executeSoon(test5); 1.91 + }); 1.92 + }, true); 1.93 + content.location = testPageURL3; 1.94 +} 1.95 + 1.96 +function test5() 1.97 +{ 1.98 + // Get database version for domain 2 1.99 + gBrowser.selectedTab = gBrowser.addTab(); 1.100 + gBrowser.selectedBrowser.addEventListener("load", function () { 1.101 + gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true); 1.102 + 1.103 + setFinishedCallback(function(result, exception) { 1.104 + ok(result == 1, "Got correct version on database in " + testPageURL4); 1.105 + ok(!exception, "No exception"); 1.106 + gBrowser.removeCurrentTab(); 1.107 + 1.108 + executeSoon(finish); 1.109 + }); 1.110 + }, true); 1.111 + content.location = testPageURL4; 1.112 +}