tor-browser

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

col-span-limits.html (2976B)


      1 <!DOCTYPE html>
      2 <title>Limits on col/colgroup.span</title>
      3 <script src=/resources/testharness.js></script>
      4 <script src=/resources/testharnessreport.js></script>
      5 <style>
      6  div.square {
      7    height:20px;
      8    width:20px;
      9    border:1px solid lime;
     10  }
     11  main table {
     12    border-collapse:collapse;
     13    border:1px solid blue;
     14  }
     15  main table col {
     16    border-left:2px solid black;
     17  }
     18 </style>
     19 <div id=log></div>
     20 <main>
     21 <table id=table1>
     22  <col span=1000>
     23  <tr>
     24    <td colspan=999><div class="square"></div></td>
     25    <td><div class="square"></div></td>
     26  </tr>
     27  <tr>
     28    <td colspan=1000><div class="square"></div></td>
     29  </tr>
     30 </table>
     31 <br>
     32 These two must look the same, each having 2 cells in one row:
     33 <table id=table2>
     34  <col span=1000>
     35  <tr>
     36    <td colspan=1000><div class="square"></div></td>
     37    <td><div class="square"></div></td>
     38  </tr>
     39 </table>
     40 <br>
     41 <table id=table3>
     42  <col id="colspan-3" span=1001>
     43  <tr>
     44    <td colspan=1000><div class="square"></div></td>
     45    <td><div class="square"></div></td>
     46  </tr>
     47 </table>
     48 <table>
     49    <tr>
     50        <td id="colspan-limit-test1" colspan=5></td>
     51        <td id="colspan-limit-test2" colspan=0></td>
     52        <td id="colspan-limit-test3" colspan=1000></td>
     53        <td id="colspan-limit-test4" colspan=1001></td>
     54        <td id="colspan-limit-test5" colspan=5555555></td>
     55    </tr>
     56 </table>
     57 </main>
     58 
     59 <script>
     60 test(() => {
     61    assert_equals(table1.offsetWidth, 53);
     62 }, "col span of 1000 must work");
     63 
     64 test(() => {
     65    assert_equals(table2.offsetWidth, 51, "table2 width");
     66    assert_equals(table3.offsetWidth, 51, "table3 width");
     67 }, "col span of 1001 must be treated as 1000");
     68 
     69 test(() => {
     70    let td = document.createElement("td");
     71    td.colSpan = 5;
     72    assert_equals(td.colSpan, 5);
     73 
     74    td.colSpan = 0;
     75    assert_equals(td.colSpan, 1);
     76 
     77    td.colSpan = 1000;
     78    assert_equals(td.colSpan, 1000);
     79 
     80    td.colSpan = 1001;
     81    assert_equals(td.colSpan, 1000);
     82 
     83    td.colSpan = 555555;
     84    assert_equals(td.colSpan, 1000);
     85 }, "colspan must be clamped to [1, 1000] when set via script");
     86 
     87 test(() => {
     88    assert_equals(document.getElementById("colspan-limit-test1").colSpan, 5);
     89    assert_equals(document.getElementById("colspan-limit-test2").colSpan, 1);
     90    assert_equals(document.getElementById("colspan-limit-test3").colSpan, 1000);
     91    assert_equals(document.getElementById("colspan-limit-test4").colSpan, 1000);
     92    assert_equals(document.getElementById("colspan-limit-test5").colSpan, 1000);
     93 }, "colspan must be clamped to [1, 1000] when parsing attributes");
     94 
     95 test(() => {
     96    let column = document.getElementById("colspan-3");
     97    column.span = 5;
     98    assert_equals(column.span, 5);
     99 
    100    column.span = 0;
    101    assert_equals(column.span, 1);
    102 
    103    column.span = 1000;
    104    assert_equals(column.span, 1000);
    105 
    106    column.span = 1001;
    107    assert_equals(column.span, 1000);
    108 
    109    column.span = 555555;
    110    assert_equals(column.span, 1000);
    111 }, "column span must be clamped to [1, 1000] when set via script");
    112 </script>