Bug 1915045 Ensure decode tasks are scheduled on BufferingState::Enter() r=media...
[gecko.git] / js / xpconnect / tests / unit / test_allowedDomains.js
blobbc703a9f6dea8047e61be11481250b8d420eca9c
1 function run_test() {
2   var sbMaster = Cu.Sandbox(["http://www.a.com",
3                            "http://www.b.com",
4                            "http://www.d.com"]);
5   var sbSubset = Cu.Sandbox(["http://www.d.com",
6                            "http://www.a.com"]);
8   var sbA = Cu.Sandbox("http://www.a.com");
9   var sbB = Cu.Sandbox("http://www.b.com");
10   var sbC = Cu.Sandbox("http://www.c.com");
12   sbMaster.objA = Cu.evalInSandbox("var obj = {prop1:200}; obj", sbA);
13   sbMaster.objB = Cu.evalInSandbox("var obj = {prop1:200}; obj", sbB);
14   sbMaster.objC = Cu.evalInSandbox("var obj = {prop1:200}; obj", sbC);
15   sbMaster.objOwn = Cu.evalInSandbox("var obj = {prop1:200}; obj", sbMaster);
16   
17   sbMaster.objSubset = Cu.evalInSandbox("var obj = {prop1:200}; obj", sbSubset);
18   sbA.objMaster = Cu.evalInSandbox("var obj = {prop1:200}; obj", sbMaster);
19   sbSubset.objMaster = Cu.evalInSandbox("var obj = {prop1:200}; obj", sbMaster);
21   var ret;
22   ret = Cu.evalInSandbox("objA.prop1", sbMaster);
23   Assert.equal(ret, 200);
24   ret = Cu.evalInSandbox("objB.prop1", sbMaster);
25   Assert.equal(ret, 200);
26   ret = Cu.evalInSandbox("objSubset.prop1", sbMaster);
27   Assert.equal(ret, 200);
28   
29   function evalAndCatch(str, sb) {
30     try {
31       ret = Cu.evalInSandbox(str, sb);
32       Assert.ok(false, "unexpected pass")
33     } catch (e) {    
34       Assert.ok(e.message && e.message.includes("Permission denied to access property"));
35     }  
36   }
37   
38   evalAndCatch("objC.prop1", sbMaster);
39   evalAndCatch("objMaster.prop1", sbA);
40   evalAndCatch("objMaster.prop1", sbSubset);