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

Unified Diff: third_party/WebKit/Source/core/layout/OverflowModelTest.cpp

Issue 1929413002: Don't include contents visual overflow into paint invalidation rect (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/layout/OverflowModelTest.cpp
diff --git a/third_party/WebKit/Source/core/layout/OverflowModelTest.cpp b/third_party/WebKit/Source/core/layout/OverflowModelTest.cpp
index c2f955421f06c3cf975e64bd51d266b3d445e1df..586f8bc07d4dbe386937300cc56296b33924dd03 100644
--- a/third_party/WebKit/Source/core/layout/OverflowModelTest.cpp
+++ b/third_party/WebKit/Source/core/layout/OverflowModelTest.cpp
@@ -46,32 +46,109 @@ LayoutRect initialVisualOverflow()
return LayoutRect(0, 0, 100, 100);
}
-class OverflowModelTest : public testing::Test {
+class SimpleOverflowModelTest : public testing::Test {
protected:
- OverflowModelTest() : m_overflow(initialLayoutOverflow(), initialVisualOverflow()) { }
+ SimpleOverflowModelTest() : m_overflow(initialLayoutOverflow(), initialVisualOverflow()) { }
+ SimpleOverflowModel m_overflow;
+};
+
+TEST_F(SimpleOverflowModelTest, InitialOverflowRects)
+{
+ EXPECT_EQ(initialLayoutOverflow(), m_overflow.layoutOverflowRect());
+ EXPECT_EQ(initialVisualOverflow(), m_overflow.visualOverflowRect());
+}
+
+TEST_F(SimpleOverflowModelTest, AddLayoutOverflowOutsideExpandsRect)
+{
+ m_overflow.addLayoutOverflow(LayoutRect(0, 10, 30, 10));
+ EXPECT_EQ(LayoutRect(0, 10, 90, 80), m_overflow.layoutOverflowRect());
+}
+
+TEST_F(SimpleOverflowModelTest, AddLayoutOverflowInsideDoesNotAffectRect)
+{
+ m_overflow.addLayoutOverflow(LayoutRect(50, 50, 10, 20));
+ EXPECT_EQ(initialLayoutOverflow(), m_overflow.layoutOverflowRect());
+}
+
+TEST_F(SimpleOverflowModelTest, AddLayoutOverflowEmpty)
+{
+ // This test documents the existing behavior so that we are aware when/if
+ // it changes. It would also be reasonable for addLayoutOverflow to be
+ // a no-op in this situation.
+ m_overflow.addLayoutOverflow(LayoutRect(200, 200, 0, 0));
+ EXPECT_EQ(LayoutRect(10, 10, 190, 190), m_overflow.layoutOverflowRect());
+}
+
+TEST_F(SimpleOverflowModelTest, AddLayoutOverflowDoesNotAffectVisualOverflow)
+{
+ m_overflow.addLayoutOverflow(LayoutRect(300, 300, 300, 300));
+ EXPECT_EQ(initialVisualOverflow(), m_overflow.visualOverflowRect());
+}
+
+TEST_F(SimpleOverflowModelTest, AddVisualOverflowOutsideExpandsRect)
+{
+ m_overflow.addVisualOverflow(LayoutRect(150, -50, 10, 10));
+ EXPECT_EQ(LayoutRect(0, -50, 160, 150), m_overflow.visualOverflowRect());
+}
+
+TEST_F(SimpleOverflowModelTest, AddVisualOverflowInsideDoesNotAffectRect)
+{
+ m_overflow.addVisualOverflow(LayoutRect(0, 10, 90, 90));
+ EXPECT_EQ(initialVisualOverflow(), m_overflow.visualOverflowRect());
+}
+
+TEST_F(SimpleOverflowModelTest, AddVisualOverflowEmpty)
+{
+ m_overflow.setVisualOverflow(LayoutRect(0, 0, 600, 0));
+ m_overflow.addVisualOverflow(LayoutRect(100, -50, 100, 100));
+ m_overflow.addVisualOverflow(LayoutRect(300, 300, 0, 10000));
+ EXPECT_EQ(LayoutRect(100, -50, 100, 100), m_overflow.visualOverflowRect());
+}
+
+TEST_F(SimpleOverflowModelTest, AddVisualOverflowDoesNotAffectLayoutOverflow)
+{
+ m_overflow.addVisualOverflow(LayoutRect(300, 300, 300, 300));
+ EXPECT_EQ(initialLayoutOverflow(), m_overflow.layoutOverflowRect());
+}
+
+TEST_F(SimpleOverflowModelTest, MoveAffectsLayoutOverflow)
+{
+ m_overflow.move(LayoutUnit(500), LayoutUnit(100));
+ EXPECT_EQ(LayoutRect(510, 110, 80, 80), m_overflow.layoutOverflowRect());
+}
+
+TEST_F(SimpleOverflowModelTest, MoveAffectsVisualOverflow)
+{
+ m_overflow.move(LayoutUnit(500), LayoutUnit(100));
+ EXPECT_EQ(LayoutRect(500, 100, 100, 100), m_overflow.visualOverflowRect());
+}
+
+class BoxOverflowModelTest : public testing::Test {
+protected:
+ BoxOverflowModelTest() : m_overflow(initialLayoutOverflow(), initialVisualOverflow()) { }
BoxOverflowModel m_overflow;
};
-TEST_F(OverflowModelTest, InitialOverflowRects)
+TEST_F(BoxOverflowModelTest, InitialOverflowRects)
{
EXPECT_EQ(initialLayoutOverflow(), m_overflow.layoutOverflowRect());
EXPECT_EQ(initialVisualOverflow(), m_overflow.selfVisualOverflowRect());
EXPECT_TRUE(m_overflow.contentsVisualOverflowRect().isEmpty());
}
-TEST_F(OverflowModelTest, AddLayoutOverflowOutsideExpandsRect)
+TEST_F(BoxOverflowModelTest, AddLayoutOverflowOutsideExpandsRect)
{
m_overflow.addLayoutOverflow(LayoutRect(0, 10, 30, 10));
EXPECT_EQ(LayoutRect(0, 10, 90, 80), m_overflow.layoutOverflowRect());
}
-TEST_F(OverflowModelTest, AddLayoutOverflowInsideDoesNotAffectRect)
+TEST_F(BoxOverflowModelTest, AddLayoutOverflowInsideDoesNotAffectRect)
{
m_overflow.addLayoutOverflow(LayoutRect(50, 50, 10, 20));
EXPECT_EQ(initialLayoutOverflow(), m_overflow.layoutOverflowRect());
}
-TEST_F(OverflowModelTest, AddLayoutOverflowEmpty)
+TEST_F(BoxOverflowModelTest, AddLayoutOverflowEmpty)
{
// This test documents the existing behavior so that we are aware when/if
// it changes. It would also be reasonable for addLayoutOverflow to be
@@ -80,94 +157,90 @@ TEST_F(OverflowModelTest, AddLayoutOverflowEmpty)
EXPECT_EQ(LayoutRect(10, 10, 190, 190), m_overflow.layoutOverflowRect());
}
-TEST_F(OverflowModelTest, AddLayoutOverflowDoesNotAffectVisualOverflow)
+TEST_F(BoxOverflowModelTest, AddLayoutOverflowDoesNotAffectSelfVisualOverflow)
{
m_overflow.addLayoutOverflow(LayoutRect(300, 300, 300, 300));
EXPECT_EQ(initialVisualOverflow(), m_overflow.selfVisualOverflowRect());
}
-TEST_F(OverflowModelTest, AddLayoutOverflowDoesNotAffectContentsVisualOverflow)
+TEST_F(BoxOverflowModelTest, AddLayoutOverflowDoesNotAffectContentsVisualOverflow)
{
m_overflow.addLayoutOverflow(LayoutRect(300, 300, 300, 300));
EXPECT_TRUE(m_overflow.contentsVisualOverflowRect().isEmpty());
}
-TEST_F(OverflowModelTest, AddVisualOverflowOutsideExpandsRect)
+TEST_F(BoxOverflowModelTest, AddSelfVisualOverflowOutsideExpandsRect)
{
m_overflow.addSelfVisualOverflow(LayoutRect(150, -50, 10, 10));
EXPECT_EQ(LayoutRect(0, -50, 160, 150), m_overflow.selfVisualOverflowRect());
}
-TEST_F(OverflowModelTest, AddVisualOverflowInsideDoesNotAffectRect)
+TEST_F(BoxOverflowModelTest, AddSelfVisualOverflowInsideDoesNotAffectRect)
{
m_overflow.addSelfVisualOverflow(LayoutRect(0, 10, 90, 90));
EXPECT_EQ(initialVisualOverflow(), m_overflow.selfVisualOverflowRect());
}
-TEST_F(OverflowModelTest, AddVisualOverflowEmpty)
+TEST_F(BoxOverflowModelTest, AddSelfVisualOverflowEmpty)
{
- // This test documents the existing behavior so that we are aware when/if
- // it changes. It would also be reasonable for addVisualOverflow to be
- // a no-op in this situation.
- m_overflow.addSelfVisualOverflow(LayoutRect(200, 200, 0, 0));
- EXPECT_EQ(LayoutRect(0, 0, 200, 200), m_overflow.selfVisualOverflowRect());
+ BoxOverflowModel overflow(LayoutRect(), LayoutRect(0, 0, 600, 0));
+ overflow.addSelfVisualOverflow(LayoutRect(100, -50, 100, 100));
+ overflow.addSelfVisualOverflow(LayoutRect(300, 300, 0, 10000));
+ EXPECT_EQ(LayoutRect(100, -50, 100, 100), overflow.selfVisualOverflowRect());
}
-TEST_F(OverflowModelTest, AddVisualOverflowDoesNotAffectLayoutOverflow)
+TEST_F(BoxOverflowModelTest, AddSelfVisualOverflowDoesNotAffectLayoutOverflow)
{
m_overflow.addSelfVisualOverflow(LayoutRect(300, 300, 300, 300));
EXPECT_EQ(initialLayoutOverflow(), m_overflow.layoutOverflowRect());
}
-TEST_F(OverflowModelTest, AddVisualOverflowDoesNotAffectContentsVisualOverflow)
+TEST_F(BoxOverflowModelTest, AddSelfVisualOverflowDoesNotAffectContentsVisualOverflow)
{
m_overflow.addSelfVisualOverflow(LayoutRect(300, 300, 300, 300));
EXPECT_TRUE(m_overflow.contentsVisualOverflowRect().isEmpty());
}
-TEST_F(OverflowModelTest, AddContentsVisualOverflowFirstCall)
+TEST_F(BoxOverflowModelTest, AddContentsVisualOverflowFirstCall)
{
m_overflow.addContentsVisualOverflow(LayoutRect(0, 0, 10, 10));
EXPECT_EQ(LayoutRect(0, 0, 10, 10), m_overflow.contentsVisualOverflowRect());
}
-TEST_F(OverflowModelTest, AddContentsVisualOverflowUnitesRects)
+TEST_F(BoxOverflowModelTest, AddContentsVisualOverflowUnitesRects)
{
m_overflow.addContentsVisualOverflow(LayoutRect(0, 0, 10, 10));
m_overflow.addContentsVisualOverflow(LayoutRect(80, 80, 10, 10));
EXPECT_EQ(LayoutRect(0, 0, 90, 90), m_overflow.contentsVisualOverflowRect());
}
-TEST_F(OverflowModelTest, AddContentsVisualOverflowRectWithinRect)
+TEST_F(BoxOverflowModelTest, AddContentsVisualOverflowRectWithinRect)
{
m_overflow.addContentsVisualOverflow(LayoutRect(0, 0, 10, 10));
m_overflow.addContentsVisualOverflow(LayoutRect(2, 2, 5, 5));
EXPECT_EQ(LayoutRect(0, 0, 10, 10), m_overflow.contentsVisualOverflowRect());
}
-TEST_F(OverflowModelTest, AddContentsVisualOverflowEmpty)
+TEST_F(BoxOverflowModelTest, AddContentsVisualOverflowEmpty)
{
- // This test documents the existing behavior so that we are aware when/if
- // it changes. It would also be reasonable for addContentsVisualOverflow to
- // expand in this situation.
m_overflow.addContentsVisualOverflow(LayoutRect(0, 0, 10, 10));
m_overflow.addContentsVisualOverflow(LayoutRect(20, 20, 0, 0));
EXPECT_EQ(LayoutRect(0, 0, 10, 10), m_overflow.contentsVisualOverflowRect());
}
-TEST_F(OverflowModelTest, MoveAffectsLayoutOverflow)
+TEST_F(BoxOverflowModelTest, MoveAffectsLayoutOverflow)
{
m_overflow.move(LayoutUnit(500), LayoutUnit(100));
EXPECT_EQ(LayoutRect(510, 110, 80, 80), m_overflow.layoutOverflowRect());
}
-TEST_F(OverflowModelTest, MoveAffectsVisualOverflow)
+TEST_F(BoxOverflowModelTest, MoveAffectsSelfVisualOverflow)
{
m_overflow.move(LayoutUnit(500), LayoutUnit(100));
EXPECT_EQ(LayoutRect(500, 100, 100, 100), m_overflow.selfVisualOverflowRect());
}
-TEST_F(OverflowModelTest, MoveAffectsContentsVisualOverflow)
+TEST_F(BoxOverflowModelTest, MoveAffectsContentsVisualOverflow)
{
m_overflow.addContentsVisualOverflow(LayoutRect(0, 0, 10, 10));
m_overflow.move(LayoutUnit(500), LayoutUnit(100));
« no previous file with comments | « third_party/WebKit/Source/core/layout/OverflowModel.h ('k') | third_party/WebKit/Source/core/layout/VisualRectMappingTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698