tor-browser

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

test_bug557087-1.html (3684B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=557087
      5 -->
      6 <head>
      7  <title>Test for Bug 557087</title>
      8  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      9  <script src="/tests/SimpleTest/EventUtils.js"></script>
     10  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
     11 </head>
     12 <body>
     13 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=557087">Mozilla Bug 557087</a>
     14 <p id="display"></p>
     15 <div id="content">
     16 </div>
     17 <pre id="test">
     18 <script>
     19 
     20 /** Test for Bug 557087 */
     21 
     22 function checkDisabledAttribute(aFieldset)
     23 {
     24  ok('disabled' in aFieldset,
     25     "fieldset elements should have the disabled attribute");
     26 
     27  ok(!aFieldset.disabled,
     28     "fieldset elements disabled attribute should be disabled");
     29  is(aFieldset.getAttribute('disabled'), null,
     30    "fieldset elements disabled attribute should be disabled");
     31 
     32  aFieldset.disabled = true;
     33  ok(aFieldset.disabled,
     34     "fieldset elements disabled attribute should be enabled");
     35  isnot(aFieldset.getAttribute('disabled'), null,
     36    "fieldset elements disabled attribute should be enabled");
     37 
     38  aFieldset.removeAttribute('disabled');
     39  aFieldset.setAttribute('disabled', '');
     40  ok(aFieldset.disabled,
     41     "fieldset elements disabled attribute should be enabled");
     42  isnot(aFieldset.getAttribute('disabled'), null,
     43    "fieldset elements disabled attribute should be enabled");
     44 
     45  aFieldset.removeAttribute('disabled');
     46  ok(!aFieldset.disabled,
     47     "fieldset elements disabled attribute should be disabled");
     48  is(aFieldset.getAttribute('disabled'), null,
     49    "fieldset elements disabled attribute should be disabled");
     50 }
     51 
     52 function checkDisabledPseudoClass(aFieldset)
     53 {
     54  is(document.querySelector(":disabled"), null,
     55     "no elements should have :disabled applied to them");
     56 
     57  aFieldset.disabled = true;
     58  is(document.querySelector(":disabled"), aFieldset,
     59     ":disabled should apply to fieldset elements");
     60 
     61  aFieldset.disabled = false;
     62  is(document.querySelector(":disabled"), null,
     63     "no elements should have :disabled applied to them");
     64 }
     65 
     66 function checkEnabledPseudoClass(aFieldset)
     67 {
     68  is(document.querySelector(":enabled"), aFieldset,
     69     ":enabled should apply to fieldset elements");
     70 
     71  aFieldset.disabled = true;
     72  is(document.querySelector(":enabled"), null,
     73     "no elements should have :enabled applied to them");
     74 
     75  aFieldset.disabled = false;
     76  is(document.querySelector(":enabled"), aFieldset,
     77     ":enabled should apply to fieldset elements");
     78 }
     79 
     80 function checkFocus(aFieldset)
     81 {
     82  aFieldset.disabled = true;
     83  aFieldset.setAttribute('tabindex', 1);
     84 
     85  aFieldset.focus();
     86 
     87  isnot(document.activeElement, aFieldset,
     88        "fieldset can't be focused when disabled");
     89  aFieldset.removeAttribute('tabindex');
     90  aFieldset.disabled = false;
     91 }
     92 
     93 function checkClickEvent(aFieldset)
     94 {
     95  var clickHandled = false;
     96 
     97  aFieldset.disabled = true;
     98 
     99  aFieldset.addEventListener("click", function(aEvent) {
    100    clickHandled = true;
    101  }, {once: true});
    102 
    103  sendMouseEvent({type:'click'}, aFieldset);
    104  SimpleTest.executeSoon(function() {
    105    ok(clickHandled, "When disabled, fieldset should not prevent click events");
    106    SimpleTest.finish();
    107  });
    108 }
    109 
    110 SimpleTest.waitForExplicitFinish();
    111 
    112 SpecialPowers.pushPrefEnv({
    113  set: [["dom.forms.fieldset_disable_only_descendants.enabled", true]]
    114 }).then(() => {
    115  var fieldset = document.createElement("fieldset");
    116  var content  = document.getElementById('content');
    117  content.appendChild(fieldset);
    118 
    119  checkDisabledAttribute(fieldset);
    120  checkDisabledPseudoClass(fieldset);
    121  checkEnabledPseudoClass(fieldset);
    122  checkFocus(fieldset);
    123  checkClickEvent(fieldset);
    124 });
    125 
    126 </script>
    127 </pre>
    128 </body>
    129 </html>