test_bug246699.html (1512B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=246699 5 --> 6 <head> 7 <title>Test for Bug 246699</title> 8 <script src="/tests/SimpleTest/SimpleTest.js"></script> 9 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 10 </head> 11 <body> 12 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=246699">Mozilla Bug 246699</a> 13 <p id="display"></p> 14 <div id="content" style="display: none"> 15 <iframe id="load-frame"></iframe> 16 </div> 17 <pre id="test"> 18 <script class="testbody" type="text/javascript"> 19 20 /** 21 * Test for Bug 246699 22 * (should produce stack information for caps errors) 23 */ 24 function isError(e) { 25 return e.constructor.name === "Error" || e.constructor.name === "TypeError"; 26 } 27 28 function hasStack(e) { 29 return isError(e) && /inciteCaps/.test(e.stack); 30 } 31 32 function inciteCaps(f) { 33 try { 34 f(); 35 return "operation succeeded"; 36 } catch (e) { 37 if (hasStack(e)) { 38 return "denied-stack"; 39 } 40 return "unexpected: " + e; 41 } 42 } 43 44 function tryChromeLoad() { 45 window.frames[0].location = "chrome://global/content/mozilla.html"; 46 } 47 48 function tryComponentsClasses() { 49 return SpecialPowers.unwrap(SpecialPowers.Cc)["@mozilla.org/dummy;1"]; 50 } 51 52 53 is(inciteCaps(tryChromeLoad), "denied-stack", 54 "should get stack for content-loading-chrome rejection"); 55 is(inciteCaps(tryComponentsClasses), "denied-stack", 56 "should get stack for SpecialPowers.Components.classes rejection"); 57 </script> 58 </pre> 59 </body> 60 </html>