michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: function run_test() { michael@0: // initialize the permission manager service michael@0: const kTestAddr = "test@example.org"; michael@0: const kType = "test-mailto"; michael@0: const kCapability = 1; michael@0: michael@0: // make a mailto: URI with parameters michael@0: let uri = Services.io.newURI("mailto:" + kTestAddr + "?subject=test", null, michael@0: null); michael@0: michael@0: // add a permission entry for that URI michael@0: Services.perms.add(uri, kType, kCapability); michael@0: do_check_true(permission_exists(kTestAddr, kType, kCapability)); michael@0: michael@0: // remove the permission, and make sure it was removed michael@0: Services.perms.remove(kTestAddr, kType); michael@0: do_check_false(permission_exists(kTestAddr, kType, kCapability)); michael@0: michael@0: uri = Services.io.newURI("mailto:" + kTestAddr, null, null); michael@0: Services.perms.add(uri, kType, kCapability); michael@0: do_check_true(permission_exists(kTestAddr, kType, kCapability)); michael@0: michael@0: Services.perms.remove(kTestAddr, kType); michael@0: do_check_false(permission_exists(kTestAddr, kType, kCapability)); michael@0: } michael@0: michael@0: function permission_exists(aHost, aType, aCapability) { michael@0: let e = Services.perms.enumerator; michael@0: while (e.hasMoreElements()) { michael@0: let perm = e.getNext().QueryInterface(Ci.nsIPermission); michael@0: if (perm.host == aHost && michael@0: perm.type == aType && michael@0: perm.capability == aCapability) { michael@0: return true; michael@0: } michael@0: } michael@0: return false; michael@0: }