Chromium Code Reviews| Index: cc/layers/delegated_renderer_layer_unittest.cc |
| diff --git a/cc/layers/delegated_renderer_layer_unittest.cc b/cc/layers/delegated_renderer_layer_unittest.cc |
| index 3805f1861dd959b119afd7cacf749c6db1eaad51..880f34710674238ec19436f69b2c82ad9541ea4b 100644 |
| --- a/cc/layers/delegated_renderer_layer_unittest.cc |
| +++ b/cc/layers/delegated_renderer_layer_unittest.cc |
| @@ -8,6 +8,7 @@ |
| #include "cc/layers/delegated_frame_resource_collection.h" |
| #include "cc/layers/solid_color_layer.h" |
| #include "cc/output/delegated_frame_data.h" |
| +#include "cc/resources/resource_update_queue.h" |
| #include "cc/test/fake_delegated_renderer_layer.h" |
| #include "cc/test/fake_layer_tree_host.h" |
| #include "cc/test/fake_proxy.h" |
| @@ -19,17 +20,14 @@ namespace { |
| class DelegatedRendererLayerTest : public testing::Test { |
| public: |
| DelegatedRendererLayerTest() : proxy_() { |
| - LayerTreeSettings settings; |
| - settings.minimum_occlusion_tracking_size = gfx::Size(); |
| - |
| - host_impl_ = FakeLayerTreeHost::Create(settings); |
| - host_impl_->SetViewportSize(gfx::Size(10, 10)); |
| + host_ = FakeLayerTreeHost::Create(); |
| + host_->SetViewportSize(gfx::Size(10, 10)); |
| } |
| protected: |
| FakeProxy proxy_; |
| TestSharedBitmapManager shared_bitmap_manager_; |
| - scoped_ptr<LayerTreeHost> host_impl_; |
| + scoped_ptr<FakeLayerTreeHost> host_; |
| }; |
| class DelegatedRendererLayerTestSimple : public DelegatedRendererLayerTest { |
| @@ -45,6 +43,9 @@ class DelegatedRendererLayerTestSimple : public DelegatedRendererLayerTest { |
| root_layer_ = SolidColorLayer::Create(); |
| layer_before_ = SolidColorLayer::Create(); |
| delegated_renderer_layer_ = FakeDelegatedRendererLayer::Create(provider_); |
| + queue_ = make_scoped_ptr(new ResourceUpdateQueue); |
| + host_->SetRootLayer(root_layer_); |
| + host_->InitializeForTesting(scoped_ptr<Proxy>(new FakeProxy)); |
| } |
| protected: |
| @@ -53,8 +54,16 @@ class DelegatedRendererLayerTestSimple : public DelegatedRendererLayerTest { |
| scoped_refptr<DelegatedRendererLayer> delegated_renderer_layer_; |
| scoped_refptr<DelegatedFrameResourceCollection> resources_; |
| scoped_refptr<DelegatedFrameProvider> provider_; |
| + scoped_ptr<ResourceUpdateQueue> queue_; |
| }; |
| +static void CalcDrawProps(LayerTreeHost* host) { |
| + RenderSurfaceLayerList render_surface_layer_list; |
| + LayerTreeHostCommon::CalcDrawPropsMainInputsForTesting inputs( |
| + host->root_layer(), gfx::Size(500, 500), &render_surface_layer_list); |
| + LayerTreeHostCommon::CalculateDrawProperties(&inputs); |
| +} |
| + |
| TEST_F(DelegatedRendererLayerTestSimple, DelegatedManyDescendants) { |
| EXPECT_EQ(0, root_layer_->NumDescendantsThatDrawContent()); |
| root_layer_->AddChild(layer_before_); |
| @@ -70,6 +79,53 @@ TEST_F(DelegatedRendererLayerTestSimple, DelegatedManyDescendants) { |
| EXPECT_EQ(1000, delegated_renderer_layer_->NumDescendantsThatDrawContent()); |
| EXPECT_EQ(1001, layer_before_->NumDescendantsThatDrawContent()); |
| EXPECT_EQ(1002, root_layer_->NumDescendantsThatDrawContent()); |
| + CalcDrawProps(host_.get()); |
|
danakj
2014/08/26 18:06:12
if there's no expects after this, why do it?
awoloszyn
2014/08/28 19:31:42
Done.
|
| +} |
| + |
| +TEST_F(DelegatedRendererLayerTestSimple, DoesNotOwnARenderSurface) { |
| + root_layer_->AddChild(delegated_renderer_layer_); |
| + root_layer_->SetIsDrawable(true); |
| + delegated_renderer_layer_->AddChild(layer_before_); |
| + delegated_renderer_layer_->SetIsDrawable(true); |
| + layer_before_->SetIsDrawable(true); |
| + CalcDrawProps(host_.get()); |
| + |
| + // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it |
| + // has no need to be a RenderSurface for the quads it carries. |
| + EXPECT_FALSE(delegated_renderer_layer_->render_surface()); |
| +} |
| + |
| +TEST_F(DelegatedRendererLayerTestSimple, DoesOwnARenderSurfaceForOpacity) { |
| + delegated_renderer_layer_->SetOpacity(0.5f); |
| + root_layer_->AddChild(delegated_renderer_layer_); |
| + root_layer_->SetIsDrawable(true); |
| + delegated_renderer_layer_->AddChild(layer_before_); |
| + delegated_renderer_layer_->SetIsDrawable(true); |
| + layer_before_->SetIsDrawable(true); |
| + CalcDrawProps(host_.get()); |
| + |
| + // This test case has quads from multiple layers in the delegated renderer, so |
| + // if the DelegatedRendererLayer has opacity < 1, it should end up with a |
| + // render surface. |
| + EXPECT_TRUE(delegated_renderer_layer_->render_surface()); |
| +} |
| + |
| +TEST_F(DelegatedRendererLayerTestSimple, DoesOwnARenderSurfaceForTransform) { |
| + gfx::Transform rotation; |
| + rotation.RotateAboutZAxis(30.0); |
| + delegated_renderer_layer_->SetTransform(rotation); |
| + root_layer_->AddChild(delegated_renderer_layer_); |
| + root_layer_->SetIsDrawable(true); |
| + delegated_renderer_layer_->AddChild(layer_before_); |
| + delegated_renderer_layer_->SetIsDrawable(true); |
| + layer_before_->SetIsDrawable(true); |
| + |
| + CalcDrawProps(host_.get()); |
| + |
| + // This test case has quads from multiple layers in the delegated renderer, so |
| + // if the DelegatedRendererLayer has opacity < 1, it should end up with a |
| + // render surface. |
| + EXPECT_TRUE(delegated_renderer_layer_->render_surface()); |
| } |
| } // namespace |