tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_permmanager_removepermission.js (1612B)


      1 /* Any copyright is dedicated to the Public Domain.
      2   http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 function run_test() {
      5  // initialize the permission manager service
      6  let pm = Services.perms;
      7 
      8  Assert.equal(pm.all.length, 0);
      9 
     10  // add some permissions
     11  let principal =
     12    Services.scriptSecurityManager.createContentPrincipalFromOrigin(
     13      "http://amazon.com:8080"
     14    );
     15  let principal2 =
     16    Services.scriptSecurityManager.createContentPrincipalFromOrigin(
     17      "http://google.com:2048"
     18    );
     19 
     20  pm.addFromPrincipal(principal, "apple", 0);
     21  pm.addFromPrincipal(principal, "apple", 3);
     22  pm.addFromPrincipal(principal, "pear", 3);
     23  pm.addFromPrincipal(principal, "pear", 1);
     24  pm.addFromPrincipal(principal, "cucumber", 1);
     25  pm.addFromPrincipal(principal, "cucumber", 1);
     26  pm.addFromPrincipal(principal, "cucumber", 1);
     27 
     28  pm.addFromPrincipal(principal2, "apple", 2);
     29  pm.addFromPrincipal(principal2, "pear", 0);
     30  pm.addFromPrincipal(principal2, "pear", 2);
     31 
     32  // Make sure that removePermission doesn't remove more than one permission each time
     33  Assert.equal(pm.all.length, 5);
     34 
     35  remove_one_by_type("apple");
     36  Assert.equal(pm.all.length, 4);
     37 
     38  remove_one_by_type("apple");
     39  Assert.equal(pm.all.length, 3);
     40 
     41  remove_one_by_type("pear");
     42  Assert.equal(pm.all.length, 2);
     43 
     44  remove_one_by_type("cucumber");
     45  Assert.equal(pm.all.length, 1);
     46 
     47  remove_one_by_type("pear");
     48  Assert.equal(pm.all.length, 0);
     49 
     50  function remove_one_by_type(type) {
     51    for (let perm of pm.all) {
     52      if (perm.type == type) {
     53        pm.removePermission(perm);
     54        break;
     55      }
     56    }
     57  }
     58 }