dom/xbl/test/test_bug371724.xhtml
author David Major <dmajor@mozilla.com>
Wed, 20 Dec 2017 09:07:46 -0500
changeset 448763 e9cfe039a796e2963a6d3e7d2a161b02cdbadcac
parent 179092 243259fda9aba5900ae1492c991a0e7a541a584d
child 528458 ba6f655fd68963530c866d0d4a48c3db3d307777
permissions -rw-r--r--
Bug 1425906: Rename LINK to LINKER throughout the build system. r=glandium Windows linkers give special meaning to getenv("LINK"), which makes `export LINK=...` in mozconfigs do unexpected things.

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=371724
-->
<head>
  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>        
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
  <bindings xmlns="http://www.mozilla.org/xbl">
    <binding id="rd">
      <implementation>
        <property name="hallo" onget="return true;" readonly="true" exposeToUntrustedContent="true"/>
      </implementation>
    </binding>
  </bindings>
</head>
<body>
  <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=371724">Mozilla Bug 371724</a>
  <p id="display"></p>
  <div id="content" style="display: none"></div>
  <div id="a" style="-moz-binding:url('#rd');">Success!</div>
  <pre id="test">
    <script class="testbody" type="text/javascript">  
      /** Test for Bug 371724 **/
      SimpleTest.waitForExplicitFinish();
      function checkReadOnly() {
        var elt = document.getElementById('a');
        var oldValue = elt.hallo;
        var actual;
        try {
          elt.hallo = false;
          actual = elt.hallo;
        } catch (ex) {
          actual = "" + ex;
        }
        is(actual, true,
           "Setting a readonly xbl property should do nothing if !strict");
        checkReadOnlyStrict();
      }
      function checkReadOnlyStrict() {
        "use strict";
        var elt = document.getElementById('a');
        var actual;
        try {
          elt.hallo = false;
          actual = "should have thrown";
        } catch (ex) {
          actual = ex instanceof TypeError;
        }
        is(actual, true,
           "Setting a readonly xbl property should throw a TypeError exception if strict");
        SimpleTest.finish();
      }
      addLoadEvent(checkReadOnly);
    </script>
  </pre>
</body>
</html>