OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 | 6 |
7 #include "core/rendering/RenderMultiColumnFlowThread.h" | 7 #include "core/rendering/RenderMultiColumnFlowThread.h" |
8 | 8 |
9 #include "core/rendering/RenderMultiColumnSet.h" | 9 #include "core/rendering/RenderMultiColumnSet.h" |
10 #include "core/rendering/RenderMultiColumnSpannerSet.h" | 10 #include "core/rendering/RenderMultiColumnSpannerSet.h" |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
230 EXPECT_EQ(columnSetSignature(flowThread), "cscs"); | 230 EXPECT_EQ(columnSetSignature(flowThread), "cscs"); |
231 RenderMultiColumnSet* columnSet = flowThread->firstMultiColumnSet()->nextSib lingMultiColumnSet(); | 231 RenderMultiColumnSet* columnSet = flowThread->firstMultiColumnSet()->nextSib lingMultiColumnSet(); |
232 EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById(" spanner1")->renderer()), columnSet); | 232 EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById(" spanner1")->renderer()), columnSet); |
233 EXPECT_EQ(toRenderMultiColumnSpannerSet(columnSet)->rendererInFlowThread(), document().getElementById("spanner1")->renderer()); | 233 EXPECT_EQ(toRenderMultiColumnSpannerSet(columnSet)->rendererInFlowThread(), document().getElementById("spanner1")->renderer()); |
234 columnSet = columnSet->nextSiblingMultiColumnSet()->nextSiblingMultiColumnSe t(); | 234 columnSet = columnSet->nextSiblingMultiColumnSet()->nextSiblingMultiColumnSe t(); |
235 EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById(" spanner2")->renderer()), columnSet); | 235 EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById(" spanner2")->renderer()), columnSet); |
236 EXPECT_EQ(toRenderMultiColumnSpannerSet(columnSet)->rendererInFlowThread(), document().getElementById("spanner2")->renderer()); | 236 EXPECT_EQ(toRenderMultiColumnSpannerSet(columnSet)->rendererInFlowThread(), document().getElementById("spanner2")->renderer()); |
237 EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById(" outer")->renderer()), nullptr); | 237 EXPECT_EQ(flowThread->containingColumnSpannerSet(document().getElementById(" outer")->renderer()), nullptr); |
238 } | 238 } |
239 | 239 |
240 TEST_F(MultiColumnRenderingTest, columnSetAtBlockOffset) | |
241 { | |
242 setMulticolHTML("<div id='mc' style='line-height:100px;'>text<br>text<br>tex t<br>text<br>text<div id='spanner1'>spanner</div>text<br>text<div id='spanner2'> text<br>text</div>text</div>"); | |
243 RenderMultiColumnFlowThread* flowThread = findFlowThread("mc"); | |
244 EXPECT_EQ(columnSetSignature(flowThread), "cscsc"); | |
245 RenderMultiColumnSet* firstRow = flowThread->firstMultiColumnSet(); | |
246 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(-10000)), firstRow); // negative overflow | |
247 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit()), firstRow); | |
248 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(499)), firstRow); // bottom of last line in first row. | |
249 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(599)), firstRow); // empty content in last column in first row | |
250 RenderMultiColumnSet* firstSpanner = firstRow->nextSiblingMultiColumnSet(); | |
251 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(600)), firstSpanner) ; | |
252 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(699)), firstSpanner) ; | |
253 RenderMultiColumnSet* secondRow = firstSpanner->nextSiblingMultiColumnSet(); | |
254 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(700)), secondRow); | |
255 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(899)), secondRow); | |
256 RenderMultiColumnSet* secondSpanner = secondRow->nextSiblingMultiColumnSet() ; | |
257 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(900)), secondSpanner ); | |
258 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(1099)), secondSpanne r); | |
259 RenderMultiColumnSet* thirdRow = secondSpanner->nextSiblingMultiColumnSet(); | |
260 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(1100)), thirdRow); | |
261 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(1199)), thirdRow); / / bottom of last row | |
262 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(10000)), thirdRow); // overflow | |
263 } | |
264 | |
265 TEST_F(MultiColumnRenderingTest, columnSetAtBlockOffset_verticalRl) | |
266 { | |
267 setMulticolHTML("<div id='mc' style='line-height:100px; -webkit-writing-mode :vertical-rl;'>text<br>text<br>text<br>text<br>text<div id='spanner1'>spanner</d iv>text<br>text<div id='spanner2'>text<br>text</div>text</div>"); | |
268 RenderMultiColumnFlowThread* flowThread = findFlowThread("mc"); | |
269 EXPECT_EQ(columnSetSignature(flowThread), "cscsc"); | |
270 RenderMultiColumnSet* firstRow = flowThread->firstMultiColumnSet(); | |
271 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(-10000)), firstRow); // negative overflow | |
272 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit()), firstRow); | |
273 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(499)), firstRow); // bottom of last line in first row. | |
274 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(599)), firstRow); // empty content in last column in first row | |
275 RenderMultiColumnSet* firstSpanner = firstRow->nextSiblingMultiColumnSet(); | |
276 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(600)), firstSpanner) ; | |
277 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(699)), firstSpanner) ; | |
278 RenderMultiColumnSet* secondRow = firstSpanner->nextSiblingMultiColumnSet(); | |
279 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(700)), secondRow); | |
280 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(899)), secondRow); | |
281 RenderMultiColumnSet* secondSpanner = secondRow->nextSiblingMultiColumnSet() ; | |
282 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(900)), secondSpanner ); | |
283 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(1099)), secondSpanne r); | |
284 RenderMultiColumnSet* thirdRow = secondSpanner->nextSiblingMultiColumnSet(); | |
285 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(1100)), thirdRow); | |
286 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(1199)), thirdRow); / / bottom of last row | |
287 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(10000)), thirdRow); // overflow | |
288 } | |
289 | |
290 TEST_F(MultiColumnRenderingTest, columnSetAtBlockOffset_verticalLr) | |
Julien - ping for review
2014/12/03 23:02:22
The name is unconsistent, you should either useCam
mstensho (USE GERRIT)
2014/12/10 13:48:19
Done.
| |
291 { | |
292 setMulticolHTML("<div id='mc' style='line-height:100px; -webkit-writing-mode :vertical-lr;'>text<br>text<br>text<br>text<br>text<div id='spanner1'>spanner</d iv>text<br>text<div id='spanner2'>text<br>text</div>text</div>"); | |
293 RenderMultiColumnFlowThread* flowThread = findFlowThread("mc"); | |
294 EXPECT_EQ(columnSetSignature(flowThread), "cscsc"); | |
295 RenderMultiColumnSet* firstRow = flowThread->firstMultiColumnSet(); | |
296 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(-10000)), firstRow); // negative overflow | |
297 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit()), firstRow); | |
298 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(499)), firstRow); // bottom of last line in first row. | |
299 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(599)), firstRow); // empty content in last column in first row | |
300 RenderMultiColumnSet* firstSpanner = firstRow->nextSiblingMultiColumnSet(); | |
301 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(600)), firstSpanner) ; | |
302 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(699)), firstSpanner) ; | |
303 RenderMultiColumnSet* secondRow = firstSpanner->nextSiblingMultiColumnSet(); | |
304 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(700)), secondRow); | |
305 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(899)), secondRow); | |
306 RenderMultiColumnSet* secondSpanner = secondRow->nextSiblingMultiColumnSet() ; | |
307 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(900)), secondSpanner ); | |
308 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(1099)), secondSpanne r); | |
309 RenderMultiColumnSet* thirdRow = secondSpanner->nextSiblingMultiColumnSet(); | |
310 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(1100)), thirdRow); | |
311 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(1199)), thirdRow); / / bottom of last row | |
312 EXPECT_EQ(flowThread->columnSetAtBlockOffset(LayoutUnit(10000)), thirdRow); // overflow | |
313 } | |
314 | |
240 } // anonymous namespace | 315 } // anonymous namespace |
241 | 316 |
242 } // namespace blink | 317 } // namespace blink |
OLD | NEW |