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

Side by Side Diff: third_party/WebKit/Source/core/layout/MapCoordinatesTest.cpp

Issue 1909233002: Spec-compliant parsing and initial values for 'orphans' and 'widows'. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Some unit tests had non-conformant widphans assumptions too. Created 4 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "core/layout/LayoutInline.h" 5 #include "core/layout/LayoutInline.h"
6 #include "core/layout/LayoutTestHelper.h" 6 #include "core/layout/LayoutTestHelper.h"
7 #include "core/layout/LayoutView.h" 7 #include "core/layout/LayoutView.h"
8 #include "platform/geometry/TransformState.h" 8 #include "platform/geometry/TransformState.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
(...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 471
472 // y = 70 - 8000, since the iframe is offset by 8000px from the main frame. 472 // y = 70 - 8000, since the iframe is offset by 8000px from the main frame.
473 // The scroll is not taken into account because the element is not fixed to the root LayoutView, 473 // The scroll is not taken into account because the element is not fixed to the root LayoutView,
474 // and the space of the root LayoutView does not include scroll. 474 // and the space of the root LayoutView does not include scroll.
475 EXPECT_EQ(FloatPoint(10, -7930), mappedPoint); 475 EXPECT_EQ(FloatPoint(10, -7930), mappedPoint);
476 } 476 }
477 477
478 TEST_F(MapCoordinatesTest, MulticolWithText) 478 TEST_F(MapCoordinatesTest, MulticolWithText)
479 { 479 {
480 setBodyInnerHTML( 480 setBodyInnerHTML(
481 "<div id='multicol' style='-webkit-columns:2; -webkit-column-gap:20px; w idth:400px; line-height:50px; padding:5px;'>" 481 "<div id='multicol' style='columns:2; column-gap:20px; width:400px; line -height:50px; padding:5px; orphans:1; widows:1;'>"
482 " <br id='sibling'>" 482 " <br id='sibling'>"
483 " text" 483 " text"
484 "</div>"); 484 "</div>");
485 485
486 LayoutObject* target = getLayoutObjectByElementId("sibling")->nextSibling(); 486 LayoutObject* target = getLayoutObjectByElementId("sibling")->nextSibling();
487 ASSERT_TRUE(target->isText()); 487 ASSERT_TRUE(target->isText());
488 LayoutBox* flowThread = toLayoutBox(target->parent()); 488 LayoutBox* flowThread = toLayoutBox(target->parent());
489 ASSERT_TRUE(flowThread->isLayoutFlowThread()); 489 ASSERT_TRUE(flowThread->isLayoutFlowThread());
490 LayoutBox* multicol = toLayoutBox(getLayoutObjectByElementId("multicol")); 490 LayoutBox* multicol = toLayoutBox(getLayoutObjectByElementId("multicol"));
491 491
492 FloatPoint mappedPoint = mapLocalToAncestor(target, flowThread, FloatPoint(1 0, 70)); 492 FloatPoint mappedPoint = mapLocalToAncestor(target, flowThread, FloatPoint(1 0, 70));
493 EXPECT_EQ(FloatPoint(10, 70), mappedPoint); 493 EXPECT_EQ(FloatPoint(10, 70), mappedPoint);
494 494
495 mappedPoint = mapLocalToAncestor(flowThread, multicol, mappedPoint); 495 mappedPoint = mapLocalToAncestor(flowThread, multicol, mappedPoint);
496 EXPECT_EQ(FloatPoint(225, 25), mappedPoint); 496 EXPECT_EQ(FloatPoint(225, 25), mappedPoint);
497 497
498 mappedPoint = mapAncestorToLocal(flowThread, multicol, mappedPoint); 498 mappedPoint = mapAncestorToLocal(flowThread, multicol, mappedPoint);
499 EXPECT_EQ(FloatPoint(220, 20), mappedPoint); 499 EXPECT_EQ(FloatPoint(220, 20), mappedPoint);
500 500
501 mappedPoint = mapAncestorToLocal(target, flowThread, mappedPoint); 501 mappedPoint = mapAncestorToLocal(target, flowThread, mappedPoint);
502 EXPECT_EQ(FloatPoint(10, 70), mappedPoint); 502 EXPECT_EQ(FloatPoint(10, 70), mappedPoint);
503 } 503 }
504 504
505 TEST_F(MapCoordinatesTest, MulticolWithInline) 505 TEST_F(MapCoordinatesTest, MulticolWithInline)
506 { 506 {
507 setBodyInnerHTML( 507 setBodyInnerHTML(
508 "<div id='multicol' style='-webkit-columns:2; -webkit-column-gap:20px; w idth:400px; line-height:50px; padding:5px;'>" 508 "<div id='multicol' style='columns:2; column-gap:20px; width:400px; line -height:50px; padding:5px; orphans:1; widows:1;'>"
509 " <span id='target'><br>text</span>" 509 " <span id='target'><br>text</span>"
510 "</div>"); 510 "</div>");
511 511
512 LayoutObject* target = getLayoutObjectByElementId("target"); 512 LayoutObject* target = getLayoutObjectByElementId("target");
513 LayoutBox* flowThread = toLayoutBox(target->parent()); 513 LayoutBox* flowThread = toLayoutBox(target->parent());
514 ASSERT_TRUE(flowThread->isLayoutFlowThread()); 514 ASSERT_TRUE(flowThread->isLayoutFlowThread());
515 LayoutBox* multicol = toLayoutBox(getLayoutObjectByElementId("multicol")); 515 LayoutBox* multicol = toLayoutBox(getLayoutObjectByElementId("multicol"));
516 516
517 FloatPoint mappedPoint = mapLocalToAncestor(target, flowThread, FloatPoint(1 0, 70)); 517 FloatPoint mappedPoint = mapLocalToAncestor(target, flowThread, FloatPoint(1 0, 70));
518 EXPECT_EQ(FloatPoint(10, 70), mappedPoint); 518 EXPECT_EQ(FloatPoint(10, 70), mappedPoint);
(...skipping 650 matching lines...) Expand 10 before | Expand all | Expand 10 after
1169 1169
1170 // With child2, each rotation gets flattened and the end result is approxima tely a 90-degree rotation. 1170 // With child2, each rotation gets flattened and the end result is approxima tely a 90-degree rotation.
1171 matrix = child2->localToAbsoluteTransform(); 1171 matrix = child2->localToAbsoluteTransform();
1172 EXPECT_NEAR(50.0, matrix.projectPoint(FloatPoint(100.0, 50.0)).x(), LayoutUn it::epsilon()); 1172 EXPECT_NEAR(50.0, matrix.projectPoint(FloatPoint(100.0, 50.0)).x(), LayoutUn it::epsilon());
1173 EXPECT_NEAR(50.0, matrix.projectPoint(FloatPoint(100.0, 50.0)).y(), LayoutUn it::epsilon()); 1173 EXPECT_NEAR(50.0, matrix.projectPoint(FloatPoint(100.0, 50.0)).y(), LayoutUn it::epsilon());
1174 EXPECT_NEAR(25.0, matrix.projectPoint(FloatPoint(50.0, 100.0)).x(), LayoutUn it::epsilon()); 1174 EXPECT_NEAR(25.0, matrix.projectPoint(FloatPoint(50.0, 100.0)).x(), LayoutUn it::epsilon());
1175 EXPECT_NEAR(100.0, matrix.projectPoint(FloatPoint(50.0, 100.0)).y(), LayoutU nit::epsilon()); 1175 EXPECT_NEAR(100.0, matrix.projectPoint(FloatPoint(50.0, 100.0)).y(), LayoutU nit::epsilon());
1176 } 1176 }
1177 1177
1178 } // namespace blink 1178 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp ('k') | third_party/WebKit/Source/core/style/ComputedStyle.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698