| 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
|
|
|