tor-browser

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

test_bug605124-2.html (3185B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=605124
      5 -->
      6 <head>
      7  <title>Test for Bug 605124</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=605124">Mozilla Bug 605124</a>
     14 <p id="display"></p>
     15 <div id="content">
     16  <input required>
     17  <textarea required></textarea>
     18  <select required>
     19    <option value="">foo</option>
     20    <option>bar</option>
     21  </select>
     22  <select multiple required>
     23    <option value="">foo</option>
     24    <option>bar</option>
     25  </select>
     26 </div>
     27 <pre id="test">
     28 <script type="application/javascript">
     29 
     30 /** Test for Bug 605124 */
     31 
     32 function checkPseudoClass(aElement, aExpected)
     33 {
     34  is(aElement.matches(":-moz-ui-invalid"), aExpected,
     35     "matches(':-moz-ui-invalid') should return " + aExpected + " for " + aElement);
     36 }
     37 
     38 function checkElement(aElement)
     39 {
     40  checkPseudoClass(aElement, false);
     41 
     42  // Focusing while :-moz-ui-invalid doesn't apply,
     43  // the pseudo-class should not apply while typing.
     44  aElement.focus();
     45  checkPseudoClass(aElement, false);
     46  // with keys
     47  sendString("f");
     48  checkPseudoClass(aElement, false);
     49  synthesizeKey("KEY_Backspace");
     50  checkPseudoClass(aElement, false);
     51  // with .value
     52  aElement.value = 'f';
     53  checkPseudoClass(aElement, false);
     54  aElement.value = '';
     55  checkPseudoClass(aElement, false);
     56 
     57  aElement.blur();
     58  checkPseudoClass(aElement, true);
     59 
     60  // Focusing while :-moz-ui-invalid applies,
     61  // the pseudo-class should apply while typing if appropriate.
     62  aElement.focus();
     63  checkPseudoClass(aElement, true);
     64  // with keys
     65  sendString("f");
     66  checkPseudoClass(aElement, false);
     67  synthesizeKey("KEY_Backspace");
     68  checkPseudoClass(aElement, true);
     69  // with .value
     70  aElement.value = 'f';
     71  checkPseudoClass(aElement, false);
     72  aElement.value = '';
     73  checkPseudoClass(aElement, true);
     74 }
     75 
     76 function checkSelectElement(aElement)
     77 {
     78  checkPseudoClass(aElement, false);
     79 
     80  // Focusing while :-moz-ui-invalid doesn't apply,
     81  // the pseudo-class should not apply while changing selection.
     82  aElement.focus();
     83  checkPseudoClass(aElement, false);
     84 
     85  aElement.selectedIndex = 1;
     86  checkPseudoClass(aElement, false);
     87  aElement.selectedIndex = 0;
     88  checkPseudoClass(aElement, false);
     89 
     90  aElement.blur();
     91  checkPseudoClass(aElement, false);
     92 
     93  // Focusing while :-moz-ui-invalid applies,
     94  // the pseudo-class should apply while changing selection if appropriate.
     95  aElement.focus();
     96  checkPseudoClass(aElement, false);
     97 
     98  aElement.selectedIndex = 1;
     99  checkPseudoClass(aElement, false);
    100  aElement.selectedIndex = 0;
    101  checkPseudoClass(aElement, false);
    102  aElement.selectedIndex = 1;
    103  checkPseudoClass(aElement, false);
    104 
    105  aElement.blur();
    106  checkPseudoClass(aElement, false);
    107 }
    108 
    109 checkElement(document.getElementsByTagName('input')[0]);
    110 checkElement(document.getElementsByTagName('textarea')[0]);
    111 checkSelectElement(document.getElementsByTagName('select')[0]);
    112 checkSelectElement(document.getElementsByTagName('select')[1]);
    113 
    114 </script>
    115 </pre>
    116 </body>
    117 </html>