tor-browser

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

test_bug605124-1.html (2629B)


      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  <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=605124">Mozilla Bug 605124</a>
     13 <p id="display"></p>
     14 <div id="content">
     15  <form>
     16    <textarea required></textarea>
     17    <input required>
     18    <select required></select>
     19    <button type='submit'></button>
     20  </form>
     21 
     22  <table>
     23    <form>
     24    <tr>
     25      <textarea required></textarea>
     26      <input required>
     27      <select required></select>
     28      <button type='submit'></button>
     29    </tr>
     30    </form>
     31  </table>
     32 </div>
     33 <pre id="test">
     34 <script type="application/javascript">
     35 
     36 /** Test for Bug 605124 */
     37 
     38 function checkPseudoClass(aElement, aExpected)
     39 {
     40  is(aElement.matches(":user-invalid"), aExpected,
     41     "matches(':user-invalid') should return " + aExpected + " for " + aElement);
     42 }
     43 
     44 var content = document.getElementById('content');
     45 var textarea = document.getElementsByTagName('textarea')[0];
     46 var input = document.getElementsByTagName('input')[0];
     47 var select = document.getElementsByTagName('select')[0];
     48 var button = document.getElementsByTagName('button')[0];
     49 var form = document.forms[0];
     50 
     51 checkPseudoClass(textarea, false);
     52 checkPseudoClass(input, false);
     53 checkPseudoClass(select, false);
     54 
     55 // Try to submit.
     56 button.click();
     57 checkPseudoClass(textarea, true);
     58 checkPseudoClass(input, true);
     59 checkPseudoClass(select, true);
     60 
     61 // No longer in the form.
     62 content.appendChild(textarea);
     63 content.appendChild(input);
     64 content.appendChild(select);
     65 checkPseudoClass(textarea, true);
     66 checkPseudoClass(input, true);
     67 checkPseudoClass(select, true);
     68 
     69 // Back in the form.
     70 form.appendChild(textarea);
     71 form.appendChild(input);
     72 form.appendChild(select);
     73 checkPseudoClass(textarea, true);
     74 checkPseudoClass(input, true);
     75 checkPseudoClass(select, true);
     76 
     77 /* Case when elements get orphaned. */
     78 var textarea = document.getElementsByTagName('textarea')[1];
     79 var input = document.getElementsByTagName('input')[1];
     80 var select = document.getElementsByTagName('select')[1];
     81 var button = document.getElementsByTagName('button')[1];
     82 var form = document.forms[1];
     83 
     84 // Try to submit.
     85 button.click();
     86 checkPseudoClass(textarea, true);
     87 checkPseudoClass(input, true);
     88 checkPseudoClass(select, true);
     89 
     90 // Remove the form.
     91 document.getElementsByTagName('table')[0].removeChild(form);
     92 checkPseudoClass(textarea, true);
     93 checkPseudoClass(input, true);
     94 checkPseudoClass(select, true);
     95 </script>
     96 </pre>
     97 </body>
     98 </html>