tor-browser

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

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>