Index: cc/output/overlay_unittest.cc |
diff --git a/cc/output/overlay_unittest.cc b/cc/output/overlay_unittest.cc |
index 0009601d9fac1784aec06cbf3ff303c069d6330d..2658fb115eae5c18fc868d278084b35467035dc4 100644 |
--- a/cc/output/overlay_unittest.cc |
+++ b/cc/output/overlay_unittest.cc |
@@ -38,6 +38,7 @@ const gfx::Size kDisplaySize(256, 256); |
const gfx::Rect kOverlayRect(0, 0, 128, 128); |
const gfx::Rect kOverlayTopLeftRect(0, 0, 64, 64); |
const gfx::Rect kOverlayBottomRightRect(64, 64, 64, 64); |
+const gfx::Rect kOverlayClipRect(0, 0, 128, 128); |
const gfx::PointF kUVTopLeft(0.1f, 0.2f); |
const gfx::PointF kUVBottomRight(1.0f, 1.0f); |
const gfx::Transform kNormalTransform = |
@@ -79,6 +80,10 @@ class SingleOverlayValidator : public OverlayCandidateValidator { |
} |
EXPECT_FLOAT_RECT_EQ(BoundingRect(kUVTopLeft, kUVBottomRight), |
candidate.uv_rect); |
+ if (!candidate.clip_rect.IsEmpty()) { |
+ EXPECT_EQ(true, candidate.is_clipped); |
+ EXPECT_EQ(kOverlayClipRect, candidate.clip_rect); |
+ } |
candidate.overlay_handled = true; |
} |
}; |
@@ -880,6 +885,22 @@ TEST_F(SingleOverlayOnTopTest, RejectNonAxisAlignedTransform) { |
EXPECT_EQ(0U, candidate_list.size()); |
} |
+TEST_F(SingleOverlayOnTopTest, AllowClipped) { |
+ scoped_ptr<RenderPass> pass = CreateRenderPass(); |
+ CreateFullscreenCandidateQuad(resource_provider_.get(), |
+ pass->shared_quad_state_list.back(), |
+ pass.get()); |
+ pass->shared_quad_state_list.back()->is_clipped = true; |
+ pass->shared_quad_state_list.back()->clip_rect = kOverlayClipRect; |
+ |
+ RenderPassList pass_list; |
+ pass_list.push_back(pass.Pass()); |
+ OverlayCandidateList candidate_list; |
+ overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list); |
+ ASSERT_EQ(1U, pass_list.size()); |
+ EXPECT_EQ(2U, candidate_list.size()); |
+} |
+ |
TEST_F(SingleOverlayOnTopTest, AllowVerticalFlip) { |
gfx::Rect rect = kOverlayRect; |
rect.set_width(rect.width() / 2); |