Skip to content

Commit

Permalink
[css-tables] Add some subpixel collapsed border tests
Browse files Browse the repository at this point in the history
This CL contains tests only, no behavior change.

Chrome passes only 001, no matter the device pixels.
Safari-lodpi and Firefox-lodpi pass only 001 and 002.
EdgeHTML 18.17763-lodpi, Firefox-hidpi, and Safari-hidpi pass 001, 002,
and 003.

From a plain reading of the tables spec the 003 test is correct. But
given its rampant failure (only EdgeHTML passes when 1x device pixel per
CSS pixel), it'd be reasonable to codify the current empirical behavior
somewhere, if it's not already in a place that I missed.

Chrome probably passes 001 but fails 002 because of LayoutUnit's 1/64
pixel precision but that's not confirmed.

Note that these tests will become invalid if the proposal in
w3c/csswg-drafts#606 is adopted.

Bug: 377847
Change-Id: Ifc9e8f9f878f7462cb949670350eadb17c7c2940
Reviewed-on: https://chromium-review.googlesource.com/c/1477334
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: David Grogan <dgrogan@chromium.org>
Commit-Queue: David Grogan <dgrogan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#633538}
  • Loading branch information
davidsgrogan authored and Marcos Cáceres committed Jul 23, 2019
1 parent 60a5d3f commit 9d10ab9
Show file tree
Hide file tree
Showing 5 changed files with 134 additions and 0 deletions.
30 changes: 30 additions & 0 deletions css/css-tables/subpixel-collapsed-borders-001.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!DOCTYPE html>
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://www.w3.org/TR/CSS22/tables.html#collapsing-borders">
<link rel="help" href="https://drafts.csswg.org/css-tables-3/#border-conflict-resolution-algorithm">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/606">
<link rel="match" href="subpixel-collapsed-borders-ref.html">
<meta name="flags" content="" />
<meta name="assert" content="When collapsed border tables have border widths larger than cells', the table border wins." />

<style>
table {
border: 5px solid green;
border-collapse: collapse;
}

td {
width: 50px;
height: 50px;
border: 4.95px solid red;
}
</style>

<p>There should be a square with a green border, not a red border.
</p>

<table>
<tr>
<td></td>
</tr>
</table>
30 changes: 30 additions & 0 deletions css/css-tables/subpixel-collapsed-borders-002.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!DOCTYPE html>
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://www.w3.org/TR/CSS22/tables.html#collapsing-borders">
<link rel="help" href="https://drafts.csswg.org/css-tables-3/#border-conflict-resolution-algorithm">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/606">
<link rel="match" href="subpixel-collapsed-borders-ref.html">
<meta name="flags" content="" />
<meta name="assert" content="When collapsed border tables have border widths larger than cells', the table border wins even when the cell border is merely 0.01 pixels narrower" />

<style>
table {
border: 5px solid green;
border-collapse: collapse;
}

td {
width: 50px;
height: 50px;
border: 4.99px solid red;
}
</style>

<p>There should be a square with a green border, not a red border.
</p>

<table>
<tr>
<td></td>
</tr>
</table>
22 changes: 22 additions & 0 deletions css/css-tables/subpixel-collapsed-borders-003-ref.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<!DOCTYPE html>
<style>
table {
border: 5.95px solid green;
border-collapse: collapse;
}

td {
width: 50px;
height: 50px;
border: 1px solid red;
}
</style>

<p>There should be a square with a green border, not a red border.
</p>

<table>
<tr>
<td></td>
</tr>
</table>
30 changes: 30 additions & 0 deletions css/css-tables/subpixel-collapsed-borders-003.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!DOCTYPE html>
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://www.w3.org/TR/CSS22/tables.html#collapsing-borders">
<link rel="help" href="https://drafts.csswg.org/css-tables-3/#border-conflict-resolution-algorithm">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/606">
<link rel="match" href="subpixel-collapsed-borders-003-ref.html">
<meta name="flags" content="" />
<meta name="assert" content="When collapsed border tables have border widths larger than cells', the table border wins even when the floored table border is the same size as the cell's." />

<style>
table {
border: 5.95px solid green;
border-collapse: collapse;
}

td {
width: 50px;
height: 50px;
border: 5px solid red;
}
</style>

<p>There should be a square with a green border, not a red border.
</p>

<table>
<tr>
<td></td>
</tr>
</table>
22 changes: 22 additions & 0 deletions css/css-tables/subpixel-collapsed-borders-ref.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<!DOCTYPE html>
<style>
table {
border: 5px solid green;
border-collapse: collapse;
}

td {
width: 50px;
height: 50px;
border: 1px solid red;
}
</style>

<p>There should be a square with a green border, not a red border.
</p>

<table>
<tr>
<td></td>
</tr>
</table>

0 comments on commit 9d10ab9

Please sign in to comment.