diff options
Diffstat (limited to 'cc/trees/occlusion_tracker_unittest.cc')
-rw-r--r-- | cc/trees/occlusion_tracker_unittest.cc | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/cc/trees/occlusion_tracker_unittest.cc b/cc/trees/occlusion_tracker_unittest.cc index 0e8b5d4..90f7fb4 100644 --- a/cc/trees/occlusion_tracker_unittest.cc +++ b/cc/trees/occlusion_tracker_unittest.cc @@ -4006,5 +4006,37 @@ class OcclusionTrackerTestEmptyEventLayerDoesNotOcclude ALL_OCCLUSIONTRACKER_TEST(OcclusionTrackerTestEmptyEventLayerDoesNotOcclude) +template <class Types> +class OcclusionTrackerTestZeroOpacityLayerDoesNotOcclude + : public OcclusionTrackerTest<Types> { + protected: + explicit OcclusionTrackerTestZeroOpacityLayerDoesNotOcclude(bool opaque) + : OcclusionTrackerTest<Types>(opaque) {} + void RunMyTest() { + typename Types::ContentLayerType* root = this->CreateRoot( + this->identity_matrix, gfx::Point(), gfx::Size(400, 400)); + typename Types::ContentLayerType* zero_opacity_layer = + this->CreateDrawingLayer(root, this->identity_matrix, gfx::Point(), + gfx::Size(200, 200), true); + this->SetDrawsContent(zero_opacity_layer, false); + zero_opacity_layer->SetTouchEventHandlerRegion(gfx::Rect(10, 10, 10, 10)); + + this->CalcDrawEtc(root); + + TestOcclusionTrackerWithClip<typename Types::LayerType, + typename Types::RenderSurfaceType> occlusion( + gfx::Rect(0, 0, 1000, 1000), false); + + this->VisitLayer(zero_opacity_layer, &occlusion); + + EXPECT_EQ(gfx::Rect().ToString(), + occlusion.occlusion_from_outside_target().ToString()); + EXPECT_EQ(gfx::Rect().ToString(), + occlusion.occlusion_from_inside_target().ToString()); + } +}; + +ALL_OCCLUSIONTRACKER_TEST(OcclusionTrackerTestZeroOpacityLayerDoesNotOcclude); + } // namespace } // namespace cc |