File: col-span-limits.html

package info (click to toggle)
firefox-esr 140.3.1esr-2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 4,539,016 kB
  • sloc: cpp: 7,380,478; javascript: 6,388,099; ansic: 3,710,142; python: 1,393,715; xml: 628,165; asm: 426,918; java: 184,025; sh: 65,742; makefile: 19,302; objc: 13,059; perl: 12,912; yacc: 4,583; cs: 3,846; pascal: 3,352; lex: 1,720; ruby: 1,226; exp: 762; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10
file content (112 lines) | stat: -rw-r--r-- 2,976 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<!DOCTYPE html>
<title>Limits on col/colgroup.span</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<style>
  div.square {
    height:20px;
    width:20px;
    border:1px solid lime;
  }
  main table {
    border-collapse:collapse;
    border:1px solid blue;
  }
  main table col {
    border-left:2px solid black;
  }
</style>
<div id=log></div>
<main>
<table id=table1>
  <col span=1000>
  <tr>
    <td colspan=999><div class="square"></div></td>
    <td><div class="square"></div></td>
  </tr>
  <tr>
    <td colspan=1000><div class="square"></div></td>
  </tr>
</table>
<br>
These two must look the same, each having 2 cells in one row:
<table id=table2>
  <col span=1000>
  <tr>
    <td colspan=1000><div class="square"></div></td>
    <td><div class="square"></div></td>
  </tr>
</table>
<br>
<table id=table3>
  <col id="colspan-3" span=1001>
  <tr>
    <td colspan=1000><div class="square"></div></td>
    <td><div class="square"></div></td>
  </tr>
</table>
<table>
    <tr>
        <td id="colspan-limit-test1" colspan=5></td>
        <td id="colspan-limit-test2" colspan=0></td>
        <td id="colspan-limit-test3" colspan=1000></td>
        <td id="colspan-limit-test4" colspan=1001></td>
        <td id="colspan-limit-test5" colspan=5555555></td>
    </tr>
</table>
</main>

<script>
test(() => {
    assert_equals(table1.offsetWidth, 53);
}, "col span of 1000 must work");

test(() => {
    assert_equals(table2.offsetWidth, 51, "table2 width");
    assert_equals(table3.offsetWidth, 51, "table3 width");
}, "col span of 1001 must be treated as 1000");

test(() => {
    let td = document.createElement("td");
    td.colSpan = 5;
    assert_equals(td.colSpan, 5);

    td.colSpan = 0;
    assert_equals(td.colSpan, 1);

    td.colSpan = 1000;
    assert_equals(td.colSpan, 1000);

    td.colSpan = 1001;
    assert_equals(td.colSpan, 1000);

    td.colSpan = 555555;
    assert_equals(td.colSpan, 1000);
}, "colspan must be clamped to [1, 1000] when set via script");

test(() => {
    assert_equals(document.getElementById("colspan-limit-test1").colSpan, 5);
    assert_equals(document.getElementById("colspan-limit-test2").colSpan, 1);
    assert_equals(document.getElementById("colspan-limit-test3").colSpan, 1000);
    assert_equals(document.getElementById("colspan-limit-test4").colSpan, 1000);
    assert_equals(document.getElementById("colspan-limit-test5").colSpan, 1000);
}, "colspan must be clamped to [1, 1000] when parsing attributes");

test(() => {
    let column = document.getElementById("colspan-3");
    column.span = 5;
    assert_equals(column.span, 5);

    column.span = 0;
    assert_equals(column.span, 1);

    column.span = 1000;
    assert_equals(column.span, 1000);

    column.span = 1001;
    assert_equals(column.span, 1000);

    column.span = 555555;
    assert_equals(column.span, 1000);
}, "column span must be clamped to [1, 1000] when set via script");
</script>