Index: third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp |
diff --git a/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp b/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp |
index 46aa009d3efcf81c733cedfb97e8921e2435eef4..e7480ff8e45d51b1c885b130f2ae0d64ee6d60c2 100644 |
--- a/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp |
+++ b/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp |
@@ -57,6 +57,11 @@ LayoutPoint PaintPropertyTreeBuilderTest::paintOffset( |
return object->paintProperties()->localBorderBoxProperties()->paintOffset; |
} |
+const ObjectPaintProperties* |
+PaintPropertyTreeBuilderTest::paintPropertiesForElement(const char* name) { |
+ return document().getElementById(name)->layoutObject()->paintProperties(); |
+} |
+ |
void PaintPropertyTreeBuilderTest::SetUp() { |
Settings::setMockScrollbarsEnabled(true); |
@@ -421,60 +426,24 @@ TEST_P(PaintPropertyTreeBuilderTest, Perspective3DTransformedDescendant) { |
TEST_P(PaintPropertyTreeBuilderTest, |
TransformNodeWithActiveAnimationHasDirectCompositingReason) { |
- setBodyInnerHTML( |
- "<style>" |
- "@keyframes test {" |
- " 0% { transform: translate(1em, 1em) } " |
- " 100% { transform: translate(2em, 2em) } " |
- "} " |
- ".animate { " |
- " animation-name: test; " |
- " animation-duration: 1s " |
- "}" |
- "</style>" |
- "<div id='target' class='animate'></div>"); |
- Element* target = document().getElementById("target"); |
- const ObjectPaintProperties* properties = |
- target->layoutObject()->paintProperties(); |
- EXPECT_TRUE(properties->transform()->hasDirectCompositingReasons()); |
-} |
- |
-namespace { |
- |
-const char* kSimpleOpacityExampleHTML = |
- "<style>" |
- "div {" |
- " width: 100px;" |
- " height: 100px;" |
- " background-color: red;" |
- " animation-name: example;" |
- " animation-duration: 4s;" |
- "}" |
- "@keyframes example {" |
- " from { opacity: 0.0;}" |
- " to { opacity: 1.0;}" |
- "}" |
- "</style>" |
- "<div id='target'></div>"; |
- |
-} // namespace |
+ loadTestData("transform-animation.html"); |
+ EXPECT_TRUE(paintPropertiesForElement("target") |
+ ->transform() |
+ ->hasDirectCompositingReasons()); |
+} |
TEST_P(PaintPropertyTreeBuilderTest, |
OpacityAnimationDoesNotCreateTransformNode) { |
- setBodyInnerHTML(kSimpleOpacityExampleHTML); |
- Element* target = document().getElementById("target"); |
- const ObjectPaintProperties* properties = |
- target->layoutObject()->paintProperties(); |
- EXPECT_EQ(nullptr, properties->transform()); |
+ loadTestData("opacity-animation.html"); |
+ EXPECT_EQ(nullptr, paintPropertiesForElement("target")->transform()); |
} |
TEST_P(PaintPropertyTreeBuilderTest, |
EffectNodeWithActiveAnimationHasDirectCompositingReason) { |
- setBodyInnerHTML(kSimpleOpacityExampleHTML); |
- Element* target = document().getElementById("target"); |
- const ObjectPaintProperties* properties = |
- target->layoutObject()->paintProperties(); |
- EXPECT_TRUE(properties->effect()->hasDirectCompositingReasons()); |
+ loadTestData("opacity-animation.html"); |
+ EXPECT_TRUE(paintPropertiesForElement("target") |
+ ->effect() |
+ ->hasDirectCompositingReasons()); |
} |
TEST_P(PaintPropertyTreeBuilderTest, WillChangeTransform) { |
@@ -3194,4 +3163,37 @@ TEST_P(PaintPropertyTreeBuilderTest, ChangePositionUpdateDescendantProperties) { |
->propertyTreeState.clip()); |
} |
+TEST_P(PaintPropertyTreeBuilderTest, |
+ TransformNodeNotAnimatedHasNoCompositorElementId) { |
+ setBodyInnerHTML("<div id='target' style='transform: translateX(2em)'></div"); |
+ const ObjectPaintProperties* properties = paintPropertiesForElement("target"); |
+ EXPECT_TRUE(properties->transform()); |
+ EXPECT_EQ(CompositorElementId(), |
+ properties->transform()->compositorElementId()); |
+} |
+ |
+TEST_P(PaintPropertyTreeBuilderTest, |
+ EffectNodeNotAnimatedHasNoCompositorElementId) { |
+ setBodyInnerHTML("<div id='target' style='opacity: 0.5'></div"); |
+ const ObjectPaintProperties* properties = paintPropertiesForElement("target"); |
+ EXPECT_TRUE(properties->effect()); |
+ EXPECT_EQ(CompositorElementId(), properties->effect()->compositorElementId()); |
+} |
+ |
+TEST_P(PaintPropertyTreeBuilderTest, |
+ TransformNodeAnimatedHasCompositorElementId) { |
+ loadTestData("transform-animation.html"); |
+ const ObjectPaintProperties* properties = paintPropertiesForElement("target"); |
+ EXPECT_TRUE(properties->transform()); |
+ EXPECT_NE(CompositorElementId(), |
+ properties->transform()->compositorElementId()); |
+} |
+ |
+TEST_P(PaintPropertyTreeBuilderTest, EffectNodeAnimatedHasCompositorElementId) { |
+ loadTestData("opacity-animation.html"); |
+ const ObjectPaintProperties* properties = paintPropertiesForElement("target"); |
+ EXPECT_TRUE(properties->effect()); |
+ EXPECT_NE(CompositorElementId(), properties->effect()->compositorElementId()); |
+} |
+ |
} // namespace blink |