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

Unified Diff: Source/core/rendering/RenderMultiColumnFlowThreadTest.cpp

Issue 789433006: [New Multicolumn] Let a spanner's containing block be the multicol container. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Compiling release: paint invalidation state is cleared in the super class anyway. Created 6 years 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: Source/core/rendering/RenderMultiColumnFlowThreadTest.cpp
diff --git a/Source/core/rendering/RenderMultiColumnFlowThreadTest.cpp b/Source/core/rendering/RenderMultiColumnFlowThreadTest.cpp
index 719607c5ca475f7d9268619f57a29b3fdf2d1841..4a3192755170aadb39ac3f48fd6d06d2a8451543 100644
--- a/Source/core/rendering/RenderMultiColumnFlowThreadTest.cpp
+++ b/Source/core/rendering/RenderMultiColumnFlowThreadTest.cpp
@@ -7,7 +7,7 @@
#include "core/rendering/RenderMultiColumnFlowThread.h"
#include "core/rendering/RenderMultiColumnSet.h"
-#include "core/rendering/RenderMultiColumnSpannerSet.h"
+#include "core/rendering/RenderMultiColumnSpannerPlaceholder.h"
#include "core/rendering/RenderingTestHelper.h"
#include <gtest/gtest.h>
@@ -20,9 +20,9 @@ class MultiColumnRenderingTest : public RenderingTest {
public:
RenderMultiColumnFlowThread* findFlowThread(const char* id) const;
- // Generate a signature string based on what kind of column sets the flow thread has
- // established. There will be one character for each column set. 'c' is used for regular column
- // content sets, while 's' is used for spanner sets.
+ // Generate a signature string based on what kind of column boxes the flow thread has
+ // established. 'c' is used for regular column content sets, while 's' is used for spanners.
+ // '?' is used when there's an unknown box type (which should be considered a failure).
String columnSetSignature(RenderMultiColumnFlowThread*);
String columnSetSignature(const char* multicolId);
@@ -43,11 +43,15 @@ RenderMultiColumnFlowThread* MultiColumnRenderingTest::findFlowThread(const char
String MultiColumnRenderingTest::columnSetSignature(RenderMultiColumnFlowThread* flowThread)
{
String signature = "";
- for (RenderMultiColumnSet* columnSet = flowThread->firstMultiColumnSet(); columnSet; columnSet = columnSet->nextSiblingMultiColumnSet()) {
- if (columnSet->isRenderMultiColumnSpannerSet())
+ for (RenderBox* columnBox = flowThread->firstMultiColumnBox();
+ columnBox;
+ columnBox = columnBox->nextSiblingMultiColumnBox()) {
+ if (columnBox->isRenderMultiColumnSpannerPlaceholder())
signature.append('s');
- else
+ else if (columnBox->isRenderMultiColumnSet())
signature.append('c');
+ else
+ signature.append('?');
}
return signature;
}
@@ -119,8 +123,10 @@ TEST_F(MultiColumnRenderingTest, Spanner)
setMulticolHTML("<div id='mc'><div id='spanner'></div></div>");
RenderMultiColumnFlowThread* flowThread = findFlowThread("mc");
ASSERT_EQ(columnSetSignature(flowThread), "s");
- RenderMultiColumnSet* columnSet = flowThread->firstMultiColumnSet();
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("spanner")->renderer()), columnSet);
+ RenderBox* columnBox = flowThread->firstMultiColumnBox();
+ EXPECT_EQ(flowThread->firstMultiColumnSet(), nullptr);
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("spanner")->renderer()), columnBox);
+ EXPECT_EQ(document().getElementById("spanner")->renderer()->spannerPlaceholder(), columnBox);
}
TEST_F(MultiColumnRenderingTest, ContentThenSpanner)
@@ -129,9 +135,9 @@ TEST_F(MultiColumnRenderingTest, ContentThenSpanner)
setMulticolHTML("<div id='mc'><div id='columnContent'></div><div id='spanner'></div></div>");
RenderMultiColumnFlowThread* flowThread = findFlowThread("mc");
ASSERT_EQ(columnSetSignature(flowThread), "cs");
- RenderMultiColumnSet* columnSet = flowThread->lastMultiColumnSet();
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("spanner")->renderer()), columnSet);
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("columnContent")->renderer()), nullptr);
+ RenderBox* columnBox = flowThread->lastMultiColumnBox();
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("spanner")->renderer()), columnBox);
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("columnContent")->renderer()), nullptr);
}
TEST_F(MultiColumnRenderingTest, SpannerThenContent)
@@ -140,9 +146,9 @@ TEST_F(MultiColumnRenderingTest, SpannerThenContent)
setMulticolHTML("<div id='mc'><div id='spanner'></div><div id='columnContent'></div></div>");
RenderMultiColumnFlowThread* flowThread = findFlowThread("mc");
ASSERT_EQ(columnSetSignature(flowThread), "sc");
- RenderMultiColumnSet* columnSet = flowThread->firstMultiColumnSet();
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("spanner")->renderer()), columnSet);
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("columnContent")->renderer()), nullptr);
+ RenderBox* columnBox = flowThread->firstMultiColumnBox();
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("spanner")->renderer()), columnBox);
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("columnContent")->renderer()), nullptr);
}
TEST_F(MultiColumnRenderingTest, ContentThenSpannerThenContent)
@@ -152,10 +158,10 @@ TEST_F(MultiColumnRenderingTest, ContentThenSpannerThenContent)
setMulticolHTML("<div id='mc'><div id='columnContentBefore'></div><div id='spanner'></div><div id='columnContentAfter'></div></div>");
RenderMultiColumnFlowThread* flowThread = findFlowThread("mc");
ASSERT_EQ(columnSetSignature(flowThread), "csc");
- RenderMultiColumnSet* columnSet = flowThread->firstMultiColumnSet()->nextSiblingMultiColumnSet();
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("columnContentBefore")->renderer()), nullptr);
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("spanner")->renderer()), columnSet);
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("columnContentAfter")->renderer()), nullptr);
+ RenderBox* columnBox = flowThread->firstMultiColumnSet()->nextSiblingMultiColumnBox();
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("columnContentBefore")->renderer()), nullptr);
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("spanner")->renderer()), columnBox);
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("columnContentAfter")->renderer()), nullptr);
}
TEST_F(MultiColumnRenderingTest, TwoSpanners)
@@ -164,10 +170,13 @@ TEST_F(MultiColumnRenderingTest, TwoSpanners)
setMulticolHTML("<div id='mc'><div id='spanner1'></div><div id='spanner2'></div></div>");
RenderMultiColumnFlowThread* flowThread = findFlowThread("mc");
ASSERT_EQ(columnSetSignature(flowThread), "ss");
- RenderMultiColumnSet* columnSet = flowThread->firstMultiColumnSet();
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("spanner1")->renderer()), columnSet);
- columnSet = columnSet->nextSiblingMultiColumnSet();
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("spanner2")->renderer()), columnSet);
+ RenderBox* columnBox = flowThread->firstMultiColumnBox();
+ EXPECT_EQ(flowThread->firstMultiColumnSet(), nullptr);
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("spanner1")->renderer()), columnBox);
+ EXPECT_EQ(document().getElementById("spanner1")->renderer()->spannerPlaceholder(), columnBox);
+ columnBox = columnBox->nextSiblingMultiColumnBox();
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("spanner2")->renderer()), columnBox);
+ EXPECT_EQ(document().getElementById("spanner2")->renderer()->spannerPlaceholder(), columnBox);
}
TEST_F(MultiColumnRenderingTest, SpannerThenContentThenSpanner)
@@ -177,10 +186,14 @@ TEST_F(MultiColumnRenderingTest, SpannerThenContentThenSpanner)
RenderMultiColumnFlowThread* flowThread = findFlowThread("mc");
ASSERT_EQ(columnSetSignature(flowThread), "scs");
RenderMultiColumnSet* columnSet = flowThread->firstMultiColumnSet();
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("spanner1")->renderer()), columnSet);
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("columnContent")->renderer()), nullptr);
- columnSet = columnSet->nextSiblingMultiColumnSet()->nextSiblingMultiColumnSet();
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("spanner2")->renderer()), columnSet);
+ EXPECT_EQ(columnSet->nextSiblingMultiColumnSet(), nullptr);
+ RenderBox* columnBox = flowThread->firstMultiColumnBox();
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("spanner1")->renderer()), columnBox);
+ columnBox = columnBox->nextSiblingMultiColumnBox();
+ EXPECT_EQ(columnBox, columnSet);
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("columnContent")->renderer()), nullptr);
+ columnBox = columnBox->nextSiblingMultiColumnBox();
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("spanner2")->renderer()), columnBox);
}
TEST_F(MultiColumnRenderingTest, SpannerWithSpanner)
@@ -189,10 +202,12 @@ TEST_F(MultiColumnRenderingTest, SpannerWithSpanner)
setMulticolHTML("<div id='mc'><div id='spanner'><div id='invalidSpanner' class='s'></div></div></div>");
RenderMultiColumnFlowThread* flowThread = findFlowThread("mc");
ASSERT_EQ(columnSetSignature(flowThread), "s");
- RenderMultiColumnSet* columnSet = flowThread->firstMultiColumnSet();
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("spanner")->renderer()), columnSet);
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("invalidSpanner")->renderer()), columnSet);
- EXPECT_EQ(toRenderMultiColumnSpannerSet(columnSet)->rendererInFlowThread(), document().getElementById("spanner")->renderer());
+ RenderBox* columnBox = flowThread->firstMultiColumnBox();
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("spanner")->renderer()), columnBox);
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("invalidSpanner")->renderer()), columnBox);
+ EXPECT_EQ(toRenderMultiColumnSpannerPlaceholder(columnBox)->rendererInFlowThread(), document().getElementById("spanner")->renderer());
+ EXPECT_EQ(document().getElementById("spanner")->renderer()->spannerPlaceholder(), columnBox);
+ EXPECT_EQ(document().getElementById("invalidSpanner")->renderer()->spannerPlaceholder(), nullptr);
}
TEST_F(MultiColumnRenderingTest, SubtreeWithSpanner)
@@ -200,12 +215,13 @@ TEST_F(MultiColumnRenderingTest, SubtreeWithSpanner)
setMulticolHTML("<div id='mc'><div id='outer'><div id='block1'></div><div id='spanner'></div><div id='block2'></div></div></div>");
RenderMultiColumnFlowThread* flowThread = findFlowThread("mc");
EXPECT_EQ(columnSetSignature(flowThread), "csc");
- RenderMultiColumnSet* columnSet = flowThread->firstMultiColumnSet()->nextSiblingMultiColumnSet();
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("spanner")->renderer()), columnSet);
- EXPECT_EQ(toRenderMultiColumnSpannerSet(columnSet)->rendererInFlowThread(), document().getElementById("spanner")->renderer());
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("outer")->renderer()), nullptr);
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("block1")->renderer()), nullptr);
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("block2")->renderer()), nullptr);
+ RenderBox* columnBox = flowThread->firstMultiColumnSet()->nextSiblingMultiColumnBox();
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("spanner")->renderer()), columnBox);
+ EXPECT_EQ(document().getElementById("spanner")->renderer()->spannerPlaceholder(), columnBox);
+ EXPECT_EQ(toRenderMultiColumnSpannerPlaceholder(columnBox)->rendererInFlowThread(), document().getElementById("spanner")->renderer());
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("outer")->renderer()), nullptr);
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("block1")->renderer()), nullptr);
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("block2")->renderer()), nullptr);
}
TEST_F(MultiColumnRenderingTest, SubtreeWithSpannerAfterSpanner)
@@ -213,14 +229,16 @@ TEST_F(MultiColumnRenderingTest, SubtreeWithSpannerAfterSpanner)
setMulticolHTML("<div id='mc'><div id='spanner1'></div><div id='outer'>text<div id='spanner2'></div><div id='after'></div></div></div>");
RenderMultiColumnFlowThread* flowThread = findFlowThread("mc");
EXPECT_EQ(columnSetSignature(flowThread), "scsc");
- RenderMultiColumnSet* columnSet = flowThread->firstMultiColumnSet();
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("spanner1")->renderer()), columnSet);
- EXPECT_EQ(toRenderMultiColumnSpannerSet(columnSet)->rendererInFlowThread(), document().getElementById("spanner1")->renderer());
- columnSet = columnSet->nextSiblingMultiColumnSet()->nextSiblingMultiColumnSet();
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("spanner2")->renderer()), columnSet);
- EXPECT_EQ(toRenderMultiColumnSpannerSet(columnSet)->rendererInFlowThread(), document().getElementById("spanner2")->renderer());
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("outer")->renderer()), nullptr);
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("after")->renderer()), nullptr);
+ RenderBox* columnBox = flowThread->firstMultiColumnBox();
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("spanner1")->renderer()), columnBox);
+ EXPECT_EQ(toRenderMultiColumnSpannerPlaceholder(columnBox)->rendererInFlowThread(), document().getElementById("spanner1")->renderer());
+ EXPECT_EQ(document().getElementById("spanner1")->renderer()->spannerPlaceholder(), columnBox);
+ columnBox = columnBox->nextSiblingMultiColumnBox()->nextSiblingMultiColumnBox();
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("spanner2")->renderer()), columnBox);
+ EXPECT_EQ(toRenderMultiColumnSpannerPlaceholder(columnBox)->rendererInFlowThread(), document().getElementById("spanner2")->renderer());
+ EXPECT_EQ(document().getElementById("spanner2")->renderer()->spannerPlaceholder(), columnBox);
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("outer")->renderer()), nullptr);
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("after")->renderer()), nullptr);
}
TEST_F(MultiColumnRenderingTest, SubtreeWithSpannerBeforeSpanner)
@@ -228,13 +246,15 @@ TEST_F(MultiColumnRenderingTest, SubtreeWithSpannerBeforeSpanner)
setMulticolHTML("<div id='mc'><div id='outer'>text<div id='spanner1'></div>text</div><div id='spanner2'></div></div>");
RenderMultiColumnFlowThread* flowThread = findFlowThread("mc");
EXPECT_EQ(columnSetSignature(flowThread), "cscs");
- RenderMultiColumnSet* columnSet = flowThread->firstMultiColumnSet()->nextSiblingMultiColumnSet();
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("spanner1")->renderer()), columnSet);
- EXPECT_EQ(toRenderMultiColumnSpannerSet(columnSet)->rendererInFlowThread(), document().getElementById("spanner1")->renderer());
- columnSet = columnSet->nextSiblingMultiColumnSet()->nextSiblingMultiColumnSet();
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("spanner2")->renderer()), columnSet);
- EXPECT_EQ(toRenderMultiColumnSpannerSet(columnSet)->rendererInFlowThread(), document().getElementById("spanner2")->renderer());
- EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById("outer")->renderer()), nullptr);
+ RenderBox* columnBox = flowThread->firstMultiColumnSet()->nextSiblingMultiColumnBox();
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("spanner1")->renderer()), columnBox);
+ EXPECT_EQ(document().getElementById("spanner1")->renderer()->spannerPlaceholder(), columnBox);
+ EXPECT_EQ(toRenderMultiColumnSpannerPlaceholder(columnBox)->rendererInFlowThread(), document().getElementById("spanner1")->renderer());
+ columnBox = columnBox->nextSiblingMultiColumnBox()->nextSiblingMultiColumnBox();
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("spanner2")->renderer()), columnBox);
+ EXPECT_EQ(document().getElementById("spanner2")->renderer()->spannerPlaceholder(), columnBox);
+ EXPECT_EQ(toRenderMultiColumnSpannerPlaceholder(columnBox)->rendererInFlowThread(), document().getElementById("spanner2")->renderer());
+ EXPECT_EQ(flowThread->containingColumnSpannerPlaceholder(document().getElementById("outer")->renderer()), nullptr);
}
} // anonymous namespace
« no previous file with comments | « Source/core/rendering/RenderMultiColumnFlowThread.cpp ('k') | Source/core/rendering/RenderMultiColumnSpannerPlaceholder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698