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