Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(258)

Unified Diff: third_party/WebKit/Source/core/layout/LayoutTableCellTest.cpp

Issue 2861373003: Let table row and section's self visual overflow cover whole collapsed borders (Closed)
Patch Set: rebaseline-cl Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/layout/LayoutTableCellTest.cpp
diff --git a/third_party/WebKit/Source/core/layout/LayoutTableCellTest.cpp b/third_party/WebKit/Source/core/layout/LayoutTableCellTest.cpp
index 99b80a6cfbac67a2c5b8653f5a92aa66d06c054c..62f879c66bf8fda0b312771b74509c05276589d4 100644
--- a/third_party/WebKit/Source/core/layout/LayoutTableCellTest.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutTableCellTest.cpp
@@ -79,6 +79,9 @@ class LayoutTableCellTest : public RenderingTest {
bool HasEndBorderAdjoiningTable(const LayoutTableCell* cell) {
return cell->HasEndBorderAdjoiningTable();
}
+ LayoutRect LocalVisualRect(const LayoutTableCell* cell) {
+ return cell->LocalVisualRect();
+ }
LayoutTableCell* GetCellByElementId(const char* id) {
return ToLayoutTableCell(GetLayoutObjectByElementId(id));
@@ -251,4 +254,47 @@ TEST_F(LayoutTableCellTest, HasBorderAdjoiningTableRTL) {
EXPECT_FALSE(HasEndBorderAdjoiningTable(cell32));
}
+TEST_F(LayoutTableCellTest, LocalVisualRectWithCollapsedBorders) {
+ SetBodyInnerHTML(
+ "<style>"
+ " table { border-collapse: collapse }"
+ " td { border: 0px solid blue; padding: 0 }"
+ " div { width: 100px; height: 100px }"
+ "</style>"
+ "<table>"
+ " <tr>"
+ " <td id='cell1' style='border-bottom-width: 10px;"
+ " outline: 3px solid blue'><div></div></td>"
+ " <td id='cell2' style='border-width: 3px 15px'><div></div></td>"
+ " </tr>"
+ "</table>");
+
+ auto* cell1 = GetCellByElementId("cell1");
+ auto* cell2 = GetCellByElementId("cell2");
+ EXPECT_TRUE(cell1->Table()->ShouldCollapseBorders());
+
+ EXPECT_EQ(0, cell1->BorderLeft());
+ EXPECT_EQ(7, cell1->BorderRight());
+ EXPECT_EQ(0, cell1->BorderTop());
+ EXPECT_EQ(5, cell1->BorderBottom());
+ EXPECT_EQ(8, cell2->BorderLeft());
+ EXPECT_EQ(7, cell2->BorderRight());
+ EXPECT_EQ(2, cell2->BorderTop());
+ EXPECT_EQ(1, cell2->BorderBottom());
+
+ LayoutRect expected_visual_rect1 = cell1->BorderBoxRect();
+ // Expand top, left for outline, right and bottom for collapsed border.
+ expected_visual_rect1.ExpandEdges(LayoutUnit(3), LayoutUnit(8), LayoutUnit(5),
+ LayoutUnit(3));
+ EXPECT_EQ(expected_visual_rect1, LocalVisualRect(cell1));
+
+ LayoutRect expected_visual_rect2 = cell2->BorderBoxRect();
+ // Expand outer half border width at each side. For the bottom side, expand
+ // more because the left border is lengthened to cover the joint with the
+ // bottom border of the cell to the left.
+ expected_visual_rect2.ExpandEdges(LayoutUnit(1), LayoutUnit(8), LayoutUnit(5),
+ LayoutUnit(7));
+ EXPECT_EQ(expected_visual_rect2, LocalVisualRect(cell2));
+}
+
} // namespace blink
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutTableCell.cpp ('k') | third_party/WebKit/Source/core/layout/LayoutTableRow.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698