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

Unified Diff: third_party/WebKit/Source/core/layout/LayoutTableSectionTest.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
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutTableSection.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/core/layout/LayoutTableSectionTest.cpp
diff --git a/third_party/WebKit/Source/core/layout/LayoutTableSectionTest.cpp b/third_party/WebKit/Source/core/layout/LayoutTableSectionTest.cpp
index 905b8a1236a2fc34d647dd479212e89d6ae46a17..8367f6c73777f848872951ec84154b45a70b9013 100644
--- a/third_party/WebKit/Source/core/layout/LayoutTableSectionTest.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutTableSectionTest.cpp
@@ -11,7 +11,12 @@ namespace blink {
namespace {
-using LayoutTableSectionTest = RenderingTest;
+class LayoutTableSectionTest : public RenderingTest {
+ protected:
+ LayoutTableSection* GetSectionByElementId(const char* id) {
+ return ToLayoutTableSection(GetLayoutObjectByElementId(id));
+ }
+};
TEST_F(LayoutTableSectionTest,
BackgroundIsKnownToBeOpaqueWithLayerAndCollapsedBorder) {
@@ -23,8 +28,7 @@ TEST_F(LayoutTableSectionTest,
" </thead>"
"</table>");
- LayoutTableSection* section =
- ToLayoutTableSection(GetLayoutObjectByElementId("section"));
+ auto* section = GetSectionByElementId("section");
EXPECT_TRUE(section);
EXPECT_FALSE(
section->BackgroundIsKnownToBeOpaqueInRect(LayoutRect(0, 0, 1, 1)));
@@ -38,8 +42,7 @@ TEST_F(LayoutTableSectionTest, BackgroundIsKnownToBeOpaqueWithBorderSpacing) {
" </thead>"
"</table>");
- LayoutTableSection* section =
- ToLayoutTableSection(GetLayoutObjectByElementId("section"));
+ auto* section = GetSectionByElementId("section");
EXPECT_TRUE(section);
EXPECT_FALSE(
section->BackgroundIsKnownToBeOpaqueInRect(LayoutRect(0, 0, 1, 1)));
@@ -54,8 +57,7 @@ TEST_F(LayoutTableSectionTest, BackgroundIsKnownToBeOpaqueWithEmptyCell) {
" </thead>"
"</table>");
- LayoutTableSection* section =
- ToLayoutTableSection(GetLayoutObjectByElementId("section"));
+ auto* section = GetSectionByElementId("section");
EXPECT_TRUE(section);
EXPECT_FALSE(
section->BackgroundIsKnownToBeOpaqueInRect(LayoutRect(0, 0, 1, 1)));
@@ -67,8 +69,7 @@ TEST_F(LayoutTableSectionTest, EmptySectionDirtiedRows) {
" <thead id='section'></thead>"
"</table>");
- LayoutTableSection* section =
- ToLayoutTableSection(GetLayoutObjectByElementId("section"));
+ auto* section = GetSectionByElementId("section");
EXPECT_TRUE(section);
CellSpan cell_span = section->DirtiedRows(LayoutRect(50, 50, 100, 100));
EXPECT_EQ(0u, cell_span.Start());
@@ -81,8 +82,7 @@ TEST_F(LayoutTableSectionTest, EmptySectionDirtiedEffectiveColumns) {
" <thead id='section'></thead>"
"</table>");
- LayoutTableSection* section =
- ToLayoutTableSection(GetLayoutObjectByElementId("section"));
+ auto* section = GetSectionByElementId("section");
EXPECT_TRUE(section);
CellSpan cell_span =
section->DirtiedEffectiveColumns(LayoutRect(50, 50, 100, 100));
@@ -111,7 +111,7 @@ TEST_F(LayoutTableSectionTest, PrimaryCellAtAndOriginatingCellAt) {
// 0 1
// 0 0,0(O) 0,1(O)
// 1 1,0(O) 1,0/0,1(S)
- auto* section = ToLayoutTableSection(GetLayoutObjectByElementId("section"));
+ auto* section = GetSectionByElementId("section");
auto* cell00 = GetLayoutObjectByElementId("cell00");
auto* cell01 = GetLayoutObjectByElementId("cell01");
auto* cell10 = GetLayoutObjectByElementId("cell10");
@@ -154,7 +154,7 @@ TEST_F(LayoutTableSectionTest, DirtiedRowsAndDirtiedEffectiveColumnsWithSpans) {
// 0 0,0(O) 0,1(O) 0,2(O)
// 1 1,0(O) 1,0/0,1(S) 0,2(S)
// 2 2,0(O) 2,0(S) 2,0(S)
- auto* section = ToLayoutTableSection(GetLayoutObjectByElementId("section"));
+ auto* section = GetSectionByElementId("section");
// Cell 0,0 only.
auto span = section->DirtiedRows(LayoutRect(5, 5, 90, 90));
@@ -211,6 +211,40 @@ TEST_F(LayoutTableSectionTest, DirtiedRowsAndDirtiedEffectiveColumnsWithSpans) {
EXPECT_EQ(3u, span.end());
}
+TEST_F(LayoutTableSectionTest, VisualOverflowWithCollapsedBorders) {
+ SetBodyInnerHTML(
+ "<style>"
+ " table { border-collapse: collapse }"
+ " td { border: 0px solid blue; padding: 0 }"
+ " div { width: 100px; height: 100px }"
+ "</style>"
+ "<table>"
+ " <tbody id='section'>"
+ " <tr>"
+ " <td style='border-bottom-width: 10px;"
+ " outline: 3px solid blue'><div></div></td>"
+ " <td style='border-width: 3px 15px'><div></div></td>"
+ " </tr>"
+ " <tr style='outline: 8px solid green'><td><div></div></td></tr>"
+ " </tbody>"
+ "</table>");
+
+ auto* section = GetSectionByElementId("section");
+
+ // The section's self visual overflow covers the collapsed borders.
+ LayoutRect expected_self_visual_overflow = section->BorderBoxRect();
+ expected_self_visual_overflow.ExpandEdges(LayoutUnit(1), LayoutUnit(8),
+ LayoutUnit(0), LayoutUnit(0));
+ EXPECT_EQ(expected_self_visual_overflow, section->SelfVisualOverflowRect());
+
+ // The section's visual overflow covers self visual overflow and visual
+ // overflows rows.
+ LayoutRect expected_visual_overflow = section->BorderBoxRect();
+ expected_visual_overflow.ExpandEdges(LayoutUnit(3), LayoutUnit(8),
+ LayoutUnit(8), LayoutUnit(8));
+ EXPECT_EQ(expected_visual_overflow, section->VisualOverflowRect());
+}
+
} // anonymous namespace
} // namespace blink
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutTableSection.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698