Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/js/xpconnect/tests/mochitest/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 4 kB image not shown  

Quelle  test_bug802557.html   Sprache: HTML

 
 products/Sources/formale Sprachen/C/Firefox/js/xpconnect/tests/mochitest/test_bug802557.html


<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=802557
-->

<head>
  <meta charset="utf-8">
  <title>Test for Bug 802557</title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
  <script type="application/javascript">

  /** Test for Bug 802557 **/
  SimpleTest.waitForExplicitFinish();

  function checkThrows(fun, desc) {
    try {
      fun();
      ok(false, "Didn't throw when " + desc);
    } catch(e) {
      ok(true, "Threw when " + desc + " " + e);
      ok(/denied|insecure/.exec(e), "Should be security exception");
    }
  }

  var loadCount = 0;
  function go() {
    ++loadCount;
    window.ifr = document.getElementById('ifr');
    window.iWin = ifr.contentWindow;

    if (loadCount == 1) {
      gLoc = iWin.location;
      // Note that accessors pulled off Xrays are currently bound. This is bug 658909.
      // [getter, description, locationObj, bound]
      gGetters = [[ location.toString, 'toString from LW' ],
                  [ gLoc.toString, 'toString from XLW' ],
                  [ Object.__lookupGetter__.call(location, 'href'), 'href getter from LW' ],
                  [ Object.__lookupGetter__.call(gLoc, 'href'), 'href getter from XLW' ],
                  [ Object.getOwnPropertyDescriptor(location, 'href').get, 'href getter from location' ],
                  [ Object.getOwnPropertyDescriptor(gLoc, 'href').get, 'href getter from iWin.location' ],
                  [ function() { return this + ''; }, 'implicit conversion via [[DefaultValue]]', /* doMessageCheck = */ true ]];
      gGetters.forEach(function(item) {
        try {
          is(item[0].call(location), location.toString(), 'Same-origin LW: ' + item[1]);
          is(item[0].call(gLoc), gLoc.toString(), 'Same-origin XLW: ' + item[1]);
        } catch (e) {
          ok(false, "Threw while applying " + item[1] + " to same-origin location object: " + e);
        }
      });
      ifr.src = "http://example.org/tests/js/xpconnect/tests/mochitest/file_empty.html";
    }
    else if (loadCount == 2) {
      gGetters.forEach(function(item) {
        checkThrows(function() { item[0].call(gLoc); },
                    'call()ing ' + item[1] + ' after navigation cross-origin');
      });
      ifr.src = 'http://mochi.test:8888/tests/js/xpconnect/tests/mochitest/file_bug802557.html';
    }
    else if (loadCount == 3) {
      gTestFunctions = ifr.contentWindow.getAllTests();
      var win = ifr.contentWindow;
      for (fun in gTestFunctions)
         is(gTestFunctions[fun](), win.location.toString(), "allowed via " + fun);
      win.location = 'http://example.org/tests/js/xpconnect/tests/mochitest/file_bug802557.html';
    }
    else if (loadCount == 4) {
      for (fun in gTestFunctions) {
        var f = gTestFunctions[fun];
        checkThrows(f, "calling " + fun);
      }

      // Verify that URL.prototype.toString can't be applied to Location
      var threw = false;
      try {
        URL.prototype.toString.call(location);
      } catch (e) {
        threw = true;
      }
      ok(threw,
         "Should not be able to use URL.prototype.toString on a Location instance");
  
      // Verify that URL.prototype.href getter can't be applied to Location
      threw = false;
      var reachedTest = false;
      try {
        var get = Object.getOwnPropertyDescriptor(URL.prototype, "href").get;
        is(typeof(get), "function""Should have an href getter on URL.prototype");
        var reachedTest = true;
        get.call(location);
      } catch (e) {
        threw = true;
      }
      ok(reachedTest,
         "Should not be able to find URL.prototype.href getter");
      ok(threw,
         "Should not be able to use URL.prototype.href getter on a Location instance");
      SimpleTest.finish();
    }
  }



</script>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=802557">Mozilla Bug 802557</a>
<p id="display"></p>
<div id="content" style="display: none">
  
</div>
<iframe id="ifr" onload="go();" src="file_empty.html"></iframe>
<pre id="test">
</pre>
</body>
</html>

Messung V0.5
C=93 H=80 G=86

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.