Index: third_party/WebKit/Source/platform/graphics/paint/PaintArtifactToSkCanvasTest.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/paint/PaintArtifactToSkCanvasTest.cpp b/third_party/WebKit/Source/platform/graphics/paint/PaintArtifactToSkCanvasTest.cpp |
index d19462521bb2b0a334f19add0b30362d602b8536..94116173e387576711ae2feeedf33c9af280245c 100644 |
--- a/third_party/WebKit/Source/platform/graphics/paint/PaintArtifactToSkCanvasTest.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/paint/PaintArtifactToSkCanvasTest.cpp |
@@ -27,7 +27,30 @@ using testing::Property; |
using testing::ResultOf; |
namespace blink { |
+ |
namespace { |
+TransformPaintPropertyNode* dummyRootTransform() { |
+ DEFINE_STATIC_REF(TransformPaintPropertyNode, rootTransform, |
+ (TransformPaintPropertyNode::create( |
+ nullptr, TransformationMatrix(), FloatPoint3D()))); |
+ return rootTransform; |
+} |
+ |
+ClipPaintPropertyNode* dummyRootClip() { |
+ DEFINE_STATIC_REF(ClipPaintPropertyNode, rootClip, |
+ (ClipPaintPropertyNode::create( |
+ nullptr, dummyRootTransform(), |
+ FloatRoundedRect(LayoutRect::infiniteIntRect())))); |
+ return rootClip; |
+} |
+ |
+EffectPaintPropertyNode* dummyRootEffect() { |
+ DEFINE_STATIC_REF(EffectPaintPropertyNode, rootEffect, |
+ (EffectPaintPropertyNode::create( |
+ nullptr, dummyRootTransform(), dummyRootClip(), |
+ CompositorFilterOperations(), 1.0))); |
+ return rootEffect; |
+} |
static const int kCanvasWidth = 800; |
static const int kCanvasHeight = 600; |
@@ -136,6 +159,7 @@ TEST_F(PaintArtifactToSkCanvasTest, OpacityEffectsCombining) { |
MockCanvas canvas(kCanvasWidth, kCanvasHeight); |
{ |
testing::InSequence sequence; |
+ EXPECT_CALL(canvas, willSaveLayer(255, _)); |
EXPECT_CALL(canvas, willSaveLayer(expectedFirstOpacity, _)); |
EXPECT_CALL(canvas, |
onDrawRect(SkRect::MakeWH(300, 200), |
@@ -148,14 +172,18 @@ TEST_F(PaintArtifactToSkCanvasTest, OpacityEffectsCombining) { |
// Build an opacity effect tree. |
RefPtr<EffectPaintPropertyNode> opacityEffect1 = |
- EffectPaintPropertyNode::create(nullptr, 0.5); |
+ EffectPaintPropertyNode::create(dummyRootEffect(), dummyRootTransform(), |
+ dummyRootClip(), |
+ CompositorFilterOperations(), 0.5); |
RefPtr<EffectPaintPropertyNode> opacityEffect2 = |
- EffectPaintPropertyNode::create(opacityEffect1, 0.25); |
+ EffectPaintPropertyNode::create(opacityEffect1, dummyRootTransform(), |
+ dummyRootClip(), |
+ CompositorFilterOperations(), 0.25); |
TestPaintArtifact artifact; |
- artifact.chunk(nullptr, nullptr, opacityEffect1.get()) |
+ artifact.chunk(dummyRootTransform(), dummyRootClip(), opacityEffect1.get()) |
.rectDrawing(FloatRect(0, 0, 300, 200), SK_ColorRED); |
- artifact.chunk(nullptr, nullptr, opacityEffect2.get()) |
+ artifact.chunk(dummyRootTransform(), dummyRootClip(), opacityEffect2.get()) |
.rectDrawing(FloatRect(0, 0, 300, 200), SK_ColorBLUE); |
paintArtifactToSkCanvas(artifact.build(), &canvas); |
} |
@@ -168,6 +196,7 @@ TEST_F(PaintArtifactToSkCanvasTest, ChangingOpacityEffects) { |
MockCanvas canvas(kCanvasWidth, kCanvasHeight); |
{ |
testing::InSequence sequence; |
+ EXPECT_CALL(canvas, willSaveLayer(255, _)); |
EXPECT_CALL(canvas, willSaveLayer(expectedAOpacity, _)); |
EXPECT_CALL(canvas, willSaveLayer(expectedBOpacity, _)); |
EXPECT_CALL(canvas, |
@@ -187,20 +216,28 @@ TEST_F(PaintArtifactToSkCanvasTest, ChangingOpacityEffects) { |
// | | |
// 0.2 b d 0.4 |
RefPtr<EffectPaintPropertyNode> opacityEffectA = |
- EffectPaintPropertyNode::create(nullptr, 0.1); |
+ EffectPaintPropertyNode::create(dummyRootEffect(), dummyRootTransform(), |
+ dummyRootClip(), |
+ CompositorFilterOperations(), 0.1); |
RefPtr<EffectPaintPropertyNode> opacityEffectB = |
- EffectPaintPropertyNode::create(opacityEffectA, 0.2); |
+ EffectPaintPropertyNode::create(opacityEffectA, dummyRootTransform(), |
+ dummyRootClip(), |
+ CompositorFilterOperations(), 0.2); |
RefPtr<EffectPaintPropertyNode> opacityEffectC = |
- EffectPaintPropertyNode::create(nullptr, 0.3); |
+ EffectPaintPropertyNode::create(dummyRootEffect(), dummyRootTransform(), |
+ dummyRootClip(), |
+ CompositorFilterOperations(), 0.3); |
RefPtr<EffectPaintPropertyNode> opacityEffectD = |
- EffectPaintPropertyNode::create(opacityEffectC, 0.4); |
+ EffectPaintPropertyNode::create(opacityEffectC, dummyRootTransform(), |
+ dummyRootClip(), |
+ CompositorFilterOperations(), 0.4); |
// Build a two-chunk artifact directly. |
// chunk1 references opacity node b, chunk2 references opacity node d. |
TestPaintArtifact artifact; |
- artifact.chunk(nullptr, nullptr, opacityEffectB.get()) |
+ artifact.chunk(dummyRootTransform(), dummyRootClip(), opacityEffectB.get()) |
.rectDrawing(FloatRect(0, 0, 300, 200), SK_ColorRED); |
- artifact.chunk(nullptr, nullptr, opacityEffectD.get()) |
+ artifact.chunk(dummyRootTransform(), dummyRootClip(), opacityEffectD.get()) |
.rectDrawing(FloatRect(0, 0, 300, 200), SK_ColorBLUE); |
paintArtifactToSkCanvas(artifact.build(), &canvas); |
} |