| Index: third_party/WebKit/Source/core/layout/LayoutTableRowTest.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/LayoutTableRowTest.cpp b/third_party/WebKit/Source/core/layout/LayoutTableRowTest.cpp
|
| index 2e37b0d81f64a822b228c717454820a36a5ab8eb..027ef973c655e8a549923008b967635b8a7a9a52 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutTableRowTest.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutTableRowTest.cpp
|
| @@ -70,54 +70,81 @@ TEST_F(LayoutTableRowDeathTest, CrashIfSettingUnsetRowIndex) {
|
|
|
| #endif
|
|
|
| -using LayoutTableRowTest = RenderingTest;
|
| +class LayoutTableRowTest : public RenderingTest {
|
| + protected:
|
| + LayoutTableRow* GetRowByElementId(const char* id) {
|
| + return ToLayoutTableRow(GetLayoutObjectByElementId(id));
|
| + }
|
| +};
|
|
|
| TEST_F(LayoutTableRowTest,
|
| BackgroundIsKnownToBeOpaqueWithLayerAndCollapsedBorder) {
|
| SetBodyInnerHTML(
|
| "<table style='border-collapse: collapse'>"
|
| - "<tr style='will-change: transform; background-color: "
|
| - "blue'><td>Cell</td></tr>"
|
| + " <tr id='row' style='will-change: transform;"
|
| + " background-color: blue'>"
|
| + " <td>Cell</td>"
|
| + " </tr>"
|
| "</table>");
|
|
|
| - LayoutTableRow* row = ToLayoutTableRow(GetDocument()
|
| - .body()
|
| - ->firstChild()
|
| - ->firstChild()
|
| - ->firstChild()
|
| - ->GetLayoutObject());
|
| - EXPECT_FALSE(row->BackgroundIsKnownToBeOpaqueInRect(LayoutRect(0, 0, 1, 1)));
|
| + EXPECT_FALSE(GetRowByElementId("row")->BackgroundIsKnownToBeOpaqueInRect(
|
| + LayoutRect(0, 0, 1, 1)));
|
| }
|
|
|
| TEST_F(LayoutTableRowTest, BackgroundIsKnownToBeOpaqueWithBorderSpacing) {
|
| SetBodyInnerHTML(
|
| "<table style='border-spacing: 10px'>"
|
| - "<tr style='background-color: blue'><td>Cell</td></tr>"
|
| + " <tr id='row' style='background-color: blue'><td>Cell</td></tr>"
|
| "</table>");
|
|
|
| - LayoutTableRow* row = ToLayoutTableRow(GetDocument()
|
| - .body()
|
| - ->firstChild()
|
| - ->firstChild()
|
| - ->firstChild()
|
| - ->GetLayoutObject());
|
| - EXPECT_FALSE(row->BackgroundIsKnownToBeOpaqueInRect(LayoutRect(0, 0, 1, 1)));
|
| + EXPECT_FALSE(GetRowByElementId("row")->BackgroundIsKnownToBeOpaqueInRect(
|
| + LayoutRect(0, 0, 1, 1)));
|
| }
|
|
|
| TEST_F(LayoutTableRowTest, BackgroundIsKnownToBeOpaqueWithEmptyCell) {
|
| SetBodyInnerHTML(
|
| "<table style='border-spacing: 10px'>"
|
| - "<tr style='background-color: blue'><td>Cell</td></tr>"
|
| - "<tr style='background-color: blue'><td>Cell</td><td>Cell</td></tr>"
|
| + " <tr id='row' style='background-color: blue'><td>Cell</td></tr>"
|
| + " <tr style='background-color: blue'><td>Cell</td><td>Cell</td></tr>"
|
| + "</table>");
|
| +
|
| + EXPECT_FALSE(GetRowByElementId("row")->BackgroundIsKnownToBeOpaqueInRect(
|
| + LayoutRect(0, 0, 1, 1)));
|
| +}
|
| +
|
| +TEST_F(LayoutTableRowTest, ContentsVisualOverflowCellRowSpan) {
|
| + // +---+---+---+
|
| + // | | | | row1
|
| + // | |---| |
|
| + // | | | | row2
|
| + // |---| | |
|
| + // | | | | row3
|
| + // +---+---+---+
|
| + SetBodyInnerHTML(
|
| + "<style>"
|
| + " td { width: 100px; height: 100px; padding: 0; background: blue }"
|
| + "</style>"
|
| + "<table style='border-spacing: 0'>"
|
| + " <tr id='row1'>"
|
| + " <td rowspan='2'></td><td></td><td rowspan='3'></td>"
|
| + " </tr>"
|
| + " <tr id='row2'>"
|
| + " <td rowspan='2'></td>"
|
| + " </tr>"
|
| + " <tr id='row3'>"
|
| + " <td></td>"
|
| + " </tr>"
|
| "</table>");
|
|
|
| - LayoutTableRow* row = ToLayoutTableRow(GetDocument()
|
| - .body()
|
| - ->firstChild()
|
| - ->firstChild()
|
| - ->firstChild()
|
| - ->GetLayoutObject());
|
| - EXPECT_FALSE(row->BackgroundIsKnownToBeOpaqueInRect(LayoutRect(0, 0, 1, 1)));
|
| + // The left cell with rowspan=2 and the right cell with rowspan=3.
|
| + EXPECT_EQ(LayoutRect(0, 0, 300, 300),
|
| + GetRowByElementId("row1")->ContentsVisualOverflowRect());
|
| + // The middle cell with rowspan=2.
|
| + EXPECT_EQ(LayoutRect(100, 0, 100, 200),
|
| + GetRowByElementId("row2")->ContentsVisualOverflowRect());
|
| + // No cell overflow.
|
| + EXPECT_EQ(LayoutRect(),
|
| + GetRowByElementId("row3")->ContentsVisualOverflowRect());
|
| }
|
|
|
| } // anonymous namespace
|
|
|