tor-browser

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

text.html (4098B)


      1 <!DOCTYPE html>
      2 <html>
      3  <head>
      4    <title>Text input element</title>
      5    <link rel="author" title="Kinuko Yasuda" href="mailto:kinuko@chromium.org">
      6    <link rel="help" href="https://html.spec.whatwg.org/multipage/#text-(type=text)-state-and-search-state-(type=search)">
      7    <script src="/resources/testharness.js"></script>
      8    <script src="/resources/testharnessreport.js"></script>
      9  </head>
     10 
     11  <body>
     12    <h1>Text input element</h1>
     13    <div style="display: none">
     14 
     15    <input id="text" type="text" />
     16    <input id="text_with_value" type="text" value="foo" />
     17 
     18    <input id="search" type="search" />
     19    <input id="search_with_value" type="search" value="foo" />
     20 
     21    </div>
     22    <div id="log"></div>
     23  <script type="text/javascript">
     24    var types = [ 'text', 'search' ];
     25 
     26    for (var i = 0; i < types.length; ++i) {
     27      test(
     28        function() {
     29          assert_equals(document.getElementById(types[i]).value, "");
     30          assert_equals(document.getElementById(types[i] + "_with_value").value, "foo");
     31        }, "Value returns the current value for " + types[i]);
     32 
     33    test(
     34      function() {
     35        document.getElementById(types[i]).value = "A";
     36        assert_equals(document.getElementById(types[i]).value, "A");
     37        document.getElementById(types[i]).value = "B";
     38      }, "Setting value changes the current value for " + types[i]);
     39 
     40    test(
     41      function() {
     42        // Any LF (\n) must be stripped.
     43        document.getElementById(types[i]).value = "\nAB";
     44        assert_equals(document.getElementById(types[i]).value, "AB");
     45        document.getElementById(types[i]).value = "A\nB";
     46        assert_equals(document.getElementById(types[i]).value, "AB");
     47        document.getElementById(types[i]).value = "AB\n";
     48        assert_equals(document.getElementById(types[i]).value, "AB");
     49 
     50        // Any CR (\r) must be stripped.
     51        document.getElementById(types[i]).value = "\rAB";
     52        assert_equals(document.getElementById(types[i]).value, "AB");
     53        document.getElementById(types[i]).value = "A\rB";
     54        assert_equals(document.getElementById(types[i]).value, "AB");
     55        document.getElementById(types[i]).value = "AB\r";
     56        assert_equals(document.getElementById(types[i]).value, "AB");
     57 
     58        // Any combinations of LF CR must be stripped.
     59        document.getElementById(types[i]).value = "\r\nAB";
     60        assert_equals(document.getElementById(types[i]).value, "AB");
     61        document.getElementById(types[i]).value = "A\r\nB";
     62        assert_equals(document.getElementById(types[i]).value, "AB");
     63        document.getElementById(types[i]).value = "AB\r\n";
     64        assert_equals(document.getElementById(types[i]).value, "AB");
     65        document.getElementById(types[i]).value = "\r\nA\n\rB\r\n";
     66        assert_equals(document.getElementById(types[i]).value, "AB");
     67      }, "Value sanitization algorithm should strip line breaks for " + types[i]);
     68 
     69      test(
     70        function() {
     71          assert_equals(document.getElementById(types[i]).files, null);
     72        }, "files attribute must return null for " + types[i]);
     73 
     74      test(
     75        function() {
     76          assert_equals(document.getElementById(types[i]).valueAsDate, null);
     77        }, "valueAsDate attribute must return null for " + types[i]);
     78 
     79      test(
     80        function() {
     81          assert_equals(document.getElementById(types[i]).valueAsNumber, NaN);
     82        }, "valueAsNumber attribute must return NaN for " + types[i]);
     83 
     84      test(
     85        function() {
     86          assert_equals(document.getElementById("text").list, null);
     87        }, "list attribute must return null for " + types[i]);
     88 
     89      test(
     90        function() {
     91          var el = document.getElementById(types[i]);
     92          assert_throws_dom("InvalidStateError", function() { el.stepDown(); }, "");
     93        }, "stepDown does not apply for " + types[i]);
     94 
     95      test(
     96        function() {
     97          var el = document.getElementById(types[i]);
     98          assert_throws_dom("InvalidStateError", function() { el.stepUp(); }, "");
     99        }, "stepUp does not apply for " + types[i]);
    100    }
    101 
    102  </script>
    103  </body>
    104 </html>