diff options
Diffstat (limited to 'browser/base/content/test/general/browser_sanitize-sitepermissions.js')
-rw-r--r-- | browser/base/content/test/general/browser_sanitize-sitepermissions.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/browser/base/content/test/general/browser_sanitize-sitepermissions.js b/browser/base/content/test/general/browser_sanitize-sitepermissions.js new file mode 100644 index 000000000..1b43d62fc --- /dev/null +++ b/browser/base/content/test/general/browser_sanitize-sitepermissions.js @@ -0,0 +1,52 @@ +// Bug 380852 - Delete permission manager entries in Clear Recent History + +var tempScope = {}; +Cc["@mozilla.org/moz/jssubscript-loader;1"].getService(Ci.mozIJSSubScriptLoader) + .loadSubScript("chrome://browser/content/sanitize.js", tempScope); +var Sanitizer = tempScope.Sanitizer; + +function countPermissions() { + let result = 0; + let enumerator = Services.perms.enumerator; + while (enumerator.hasMoreElements()) { + result++; + enumerator.getNext(); + } + return result; +} + +add_task(function* test() { + // sanitize before we start so we have a good baseline. + // Set up the sanitizer to just clear siteSettings + let s = new Sanitizer(); + s.ignoreTimespan = false; + s.prefDomain = "privacy.cpd."; + var itemPrefs = gPrefService.getBranch(s.prefDomain); + itemPrefs.setBoolPref("history", false); + itemPrefs.setBoolPref("downloads", false); + itemPrefs.setBoolPref("cache", false); + itemPrefs.setBoolPref("cookies", false); + itemPrefs.setBoolPref("formdata", false); + itemPrefs.setBoolPref("offlineApps", false); + itemPrefs.setBoolPref("passwords", false); + itemPrefs.setBoolPref("sessions", false); + itemPrefs.setBoolPref("siteSettings", true); + s.sanitize(); + + // Count how many permissions we start with - some are defaults that + // will not be sanitized. + let numAtStart = countPermissions(); + + // Add a permission entry + var pm = Services.perms; + pm.add(makeURI("http://example.com"), "testing", pm.ALLOW_ACTION); + + // Sanity check + ok(pm.enumerator.hasMoreElements(), "Permission manager should have elements, since we just added one"); + + // Clear it + yield s.sanitize(); + + // Make sure it's gone + is(numAtStart, countPermissions(), "Permission manager should have the same count it started with"); +}); |