Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Unified Diff: cc/layers/surface_layer_unittest.cc

Issue 1057283003: Remove parts of //cc we aren't using (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/layers/surface_layer_impl_unittest.cc ('k') | cc/layers/texture_layer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/surface_layer_unittest.cc
diff --git a/cc/layers/surface_layer_unittest.cc b/cc/layers/surface_layer_unittest.cc
deleted file mode 100644
index 285acee2e122287d9a3c0d7b9d2ad6ca6b626587..0000000000000000000000000000000000000000
--- a/cc/layers/surface_layer_unittest.cc
+++ /dev/null
@@ -1,239 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <set>
-#include <vector>
-
-#include "base/message_loop/message_loop_proxy.h"
-#include "cc/layers/solid_color_layer.h"
-#include "cc/layers/surface_layer.h"
-#include "cc/test/fake_impl_proxy.h"
-#include "cc/test/fake_layer_tree_host.h"
-#include "cc/test/fake_layer_tree_host_client.h"
-#include "cc/test/fake_layer_tree_host_impl.h"
-#include "cc/test/fake_output_surface.h"
-#include "cc/test/layer_tree_test.h"
-#include "cc/test/test_shared_bitmap_manager.h"
-#include "cc/trees/layer_tree_host.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace cc {
-namespace {
-
-class SurfaceLayerTest : public testing::Test {
- public:
- SurfaceLayerTest()
- : fake_client_(
- FakeLayerTreeHostClient(FakeLayerTreeHostClient::DIRECT_3D)) {}
-
- protected:
- void SetUp() override {
- layer_tree_host_ = FakeLayerTreeHost::Create(&fake_client_);
- layer_tree_host_->SetViewportSize(gfx::Size(10, 10));
- }
-
- void TearDown() override {
- if (layer_tree_host_) {
- layer_tree_host_->SetRootLayer(nullptr);
- layer_tree_host_ = nullptr;
- }
- }
-
- scoped_ptr<FakeLayerTreeHost> layer_tree_host_;
- FakeLayerTreeHostClient fake_client_;
- TestSharedBitmapManager shared_bitmap_manager_;
-};
-
-void SatisfyCallback(SurfaceSequence* out, SurfaceSequence in) {
- *out = in;
-}
-
-void RequireCallback(SurfaceId* out_id,
- std::set<SurfaceSequence>* out,
- SurfaceId in_id,
- SurfaceSequence in) {
- *out_id = in_id;
- out->insert(in);
-}
-
-// Check that one surface can be referenced by multiple LayerTreeHosts, and
-// each will create its own SurfaceSequence that's satisfied on destruction.
-TEST_F(SurfaceLayerTest, MultipleFramesOneSurface) {
- SurfaceSequence blank_change; // Receives sequence if commit doesn't happen.
-
- SurfaceId required_id;
- std::set<SurfaceSequence> required_seq;
- scoped_refptr<SurfaceLayer> layer(SurfaceLayer::Create(
- base::Bind(&SatisfyCallback, &blank_change),
- base::Bind(&RequireCallback, &required_id, &required_seq)));
- layer->SetSurfaceId(SurfaceId(1), 1.f, gfx::Size(1, 1));
- layer_tree_host_->set_surface_id_namespace(1);
- layer_tree_host_->SetRootLayer(layer);
-
- scoped_ptr<FakeLayerTreeHost> layer_tree_host2 =
- FakeLayerTreeHost::Create(&fake_client_);
- scoped_refptr<SurfaceLayer> layer2(SurfaceLayer::Create(
- base::Bind(&SatisfyCallback, &blank_change),
- base::Bind(&RequireCallback, &required_id, &required_seq)));
- layer2->SetSurfaceId(SurfaceId(1), 1.f, gfx::Size(1, 1));
- layer_tree_host2->set_surface_id_namespace(2);
- layer_tree_host2->SetRootLayer(layer2);
-
- // Layers haven't been removed, so no sequence should be satisfied.
- EXPECT_TRUE(blank_change.is_null());
-
- SurfaceSequence expected1(1u, 1u);
- SurfaceSequence expected2(2u, 1u);
-
- layer_tree_host2->SetRootLayer(nullptr);
- layer_tree_host2.reset();
-
- // Layer was removed so sequence from second LayerTreeHost should be
- // satisfied.
- EXPECT_TRUE(blank_change == expected2);
-
- // Set of sequences that need to be satisfied should include sequences from
- // both trees.
- EXPECT_TRUE(required_id == SurfaceId(1));
- EXPECT_EQ(2u, required_seq.size());
- EXPECT_TRUE(required_seq.count(expected1));
- EXPECT_TRUE(required_seq.count(expected2));
-
- layer_tree_host_->SetRootLayer(nullptr);
- layer_tree_host_.reset();
-
- // Layer was removed so sequence from first LayerTreeHost should be
- // satisfied.
- EXPECT_TRUE(blank_change == expected1);
-
- // No more SurfaceSequences should have been generated that need to have be
- // satisfied.
- EXPECT_EQ(2u, required_seq.size());
-}
-
-static void CalcDrawProps(FakeLayerTreeHost* host, float device_scale_factor) {
- RenderSurfaceLayerList render_surface_layer_list;
- LayerTreeHostCommon::CalcDrawPropsMainInputsForTesting inputs(
- host->root_layer(), gfx::Size(500, 500), &render_surface_layer_list);
- inputs.device_scale_factor = device_scale_factor;
- LayerTreeHostCommon::CalculateDrawProperties(&inputs);
-}
-
-// Check that setting content scale on the surface works.
-TEST_F(SurfaceLayerTest, ScaleSurface) {
- SurfaceSequence blank_change;
- SurfaceId required_id;
- std::set<SurfaceSequence> required_seq;
- scoped_refptr<SurfaceLayer> layer(SurfaceLayer::Create(
- base::Bind(&SatisfyCallback, &blank_change),
- base::Bind(&RequireCallback, &required_id, &required_seq)));
- gfx::Size surface_size(10, 15);
- layer->SetSurfaceId(SurfaceId(1), 2.f, surface_size);
- layer->SetBounds(gfx::Size(25, 45));
- layer_tree_host_->SetRootLayer(layer);
-
- CalcDrawProps(layer_tree_host_.get(), 5.f);
- EXPECT_EQ(2.f, layer->contents_scale_x());
- EXPECT_EQ(2.f, layer->contents_scale_y());
- EXPECT_EQ(surface_size.ToString(), layer->content_bounds().ToString());
-
- layer_tree_host_->SetRootLayer(nullptr);
- layer_tree_host_.reset();
-}
-
-// Check that SurfaceSequence is sent through swap promise.
-class SurfaceLayerSwapPromise : public LayerTreeTest {
- public:
- SurfaceLayerSwapPromise()
- : commit_count_(0), sequence_was_satisfied_(false) {}
-
- void BeginTest() override {
- layer_tree_host()->set_surface_id_namespace(1);
- layer_ = SurfaceLayer::Create(
- base::Bind(&SatisfyCallback, &satisfied_sequence_),
- base::Bind(&RequireCallback, &required_id_, &required_set_));
- layer_->SetSurfaceId(SurfaceId(1), 1.f, gfx::Size(1, 1));
-
- // Layer hasn't been added to tree so no SurfaceSequence generated yet.
- EXPECT_EQ(0u, required_set_.size());
-
- layer_tree_host()->SetRootLayer(layer_);
-
- // Should have SurfaceSequence from first tree.
- SurfaceSequence expected(1u, 1u);
- EXPECT_TRUE(required_id_ == SurfaceId(1));
- EXPECT_EQ(1u, required_set_.size());
- EXPECT_TRUE(required_set_.count(expected));
-
- gfx::Size bounds(100, 100);
- layer_tree_host()->SetViewportSize(bounds);
- PostSetNeedsCommitToMainThread();
- }
-
- void DidCommitAndDrawFrame() override {
- base::MessageLoopProxy::current()->PostTask(
- FROM_HERE, base::Bind(&SurfaceLayerSwapPromise::ChangeTree,
- base::Unretained(this)));
- }
-
- void ChangeTree() {
- ++commit_count_;
- switch (commit_count_) {
- case 1:
- // Remove SurfaceLayer from tree to cause SwapPromise to be created.
- blank_layer_ = SolidColorLayer::Create();
- blank_layer_->SetIsDrawable(true);
- blank_layer_->SetBounds(gfx::Size(10, 10));
- layer_tree_host()->SetRootLayer(blank_layer_);
- break;
- case 2:
- break;
- default:
- NOTREACHED();
- break;
- }
- }
-
- void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override {
- EXPECT_TRUE(result);
- std::vector<uint32_t>& satisfied =
- output_surface()->last_sent_frame().metadata.satisfies_sequences;
- EXPECT_LE(satisfied.size(), 1u);
- if (satisfied.size() == 1) {
- // Eventually the one SurfaceSequence should be satisfied, but only
- // after the layer was removed from the tree, and only once.
- EXPECT_EQ(1u, satisfied[0]);
- EXPECT_LE(1, commit_count_);
- EXPECT_FALSE(sequence_was_satisfied_);
- sequence_was_satisfied_ = true;
- EndTest();
- }
- }
-
- void AfterTest() override {
- EXPECT_TRUE(required_id_ == SurfaceId(1));
- EXPECT_EQ(1u, required_set_.size());
- // Sequence should have been satisfied through Swap, not with the
- // callback.
- EXPECT_TRUE(satisfied_sequence_.is_null());
- }
-
- private:
- int commit_count_;
- bool sequence_was_satisfied_;
- scoped_refptr<SurfaceLayer> layer_;
- scoped_refptr<Layer> blank_layer_;
- SurfaceSequence satisfied_sequence_;
-
- SurfaceId required_id_;
- std::set<SurfaceSequence> required_set_;
-};
-
-// TODO(jbauman): Reenable on single thread once http://crbug.com/421923 is
-// fixed.
-MULTI_THREAD_TEST_F(SurfaceLayerSwapPromise);
-
-} // namespace
-} // namespace cc
« no previous file with comments | « cc/layers/surface_layer_impl_unittest.cc ('k') | cc/layers/texture_layer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698