Index: media/filters/skcanvas_video_renderer_unittest.cc |
diff --git a/media/filters/skcanvas_video_renderer_unittest.cc b/media/filters/skcanvas_video_renderer_unittest.cc |
index 5db3a34d6cfa260029c62ddd8b4c1ba5b56a8875..523aab05b491a2d40ebe6298550e6e0d5f9518cb 100644 |
--- a/media/filters/skcanvas_video_renderer_unittest.cc |
+++ b/media/filters/skcanvas_video_renderer_unittest.cc |
@@ -52,7 +52,10 @@ class SkCanvasVideoRendererTest : public testing::Test { |
// Paints the |video_frame| to the |canvas| using |renderer_|, setting the |
// color of |video_frame| to |color| first. |
- void Paint(VideoFrame* video_frame, SkCanvas* canvas, Color color); |
+ void Paint(VideoFrame* video_frame, |
+ SkCanvas* canvas, |
+ Color color, |
+ SkXfermode::Mode mode = SkXfermode::kSrcOver_Mode); |
// Getters for various frame sizes. |
VideoFrame* natural_frame() { return natural_frame_.get(); } |
@@ -185,12 +188,13 @@ SkCanvasVideoRendererTest::SkCanvasVideoRendererTest() |
SkCanvasVideoRendererTest::~SkCanvasVideoRendererTest() {} |
void SkCanvasVideoRendererTest::PaintWithoutFrame(SkCanvas* canvas) { |
- renderer_.Paint(NULL, canvas, kNaturalRect, 0xFF); |
+ renderer_.Paint(NULL, canvas, kNaturalRect, 0xFF, SkXfermode::kSrcOver_Mode); |
} |
void SkCanvasVideoRendererTest::Paint(VideoFrame* video_frame, |
SkCanvas* canvas, |
- Color color) { |
+ Color color, |
+ SkXfermode::Mode mode) { |
switch (color) { |
case kNone: |
break; |
@@ -204,7 +208,7 @@ void SkCanvasVideoRendererTest::Paint(VideoFrame* video_frame, |
media::FillYUV(video_frame, 29, 255, 107); |
break; |
} |
- renderer_.Paint(video_frame, canvas, kNaturalRect, 0xFF); |
+ renderer_.Paint(video_frame, canvas, kNaturalRect, 0xFF, mode); |
} |
TEST_F(SkCanvasVideoRendererTest, NoFrame) { |
@@ -215,11 +219,20 @@ TEST_F(SkCanvasVideoRendererTest, NoFrame) { |
} |
TEST_F(SkCanvasVideoRendererTest, TransparentFrame) { |
- // Test that we don't blend with existing canvas contents. |
FillCanvas(target_canvas(), SK_ColorRED); |
Paint(VideoFrame::CreateTransparentFrame(gfx::Size(kWidth, kHeight)), |
target_canvas(), |
kNone); |
+ EXPECT_EQ(static_cast<SkColor>(SK_ColorRED), GetColor(target_canvas())); |
+} |
+ |
+TEST_F(SkCanvasVideoRendererTest, TransparentFrameSrcMode) { |
+ FillCanvas(target_canvas(), SK_ColorRED); |
+ // SRC mode completely overwrites the buffer. |
+ Paint(VideoFrame::CreateTransparentFrame(gfx::Size(kWidth, kHeight)), |
+ target_canvas(), |
+ kNone, |
+ SkXfermode::kSrc_Mode); |
EXPECT_EQ(static_cast<SkColor>(SK_ColorTRANSPARENT), |
GetColor(target_canvas())); |
} |