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>