| Index: cc/surfaces/surface_factory_unittest.cc
|
| diff --git a/cc/surfaces/surface_factory_unittest.cc b/cc/surfaces/surface_factory_unittest.cc
|
| index 84dcc5e2e481961144f6062e18a7e15fa98e4476..1a87c0f9c4e203aa8b60a30aa654a3284517c71e 100644
|
| --- a/cc/surfaces/surface_factory_unittest.cc
|
| +++ b/cc/surfaces/surface_factory_unittest.cc
|
| @@ -2,6 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "base/bind.h"
|
| #include "cc/output/compositor_frame.h"
|
| #include "cc/output/delegated_frame_data.h"
|
| #include "cc/surfaces/surface.h"
|
| @@ -58,7 +59,8 @@ class SurfaceFactoryTest : public testing::Test {
|
| }
|
| scoped_ptr<CompositorFrame> frame(new CompositorFrame);
|
| frame->delegated_frame_data = frame_data.Pass();
|
| - factory_.SubmitFrame(surface_id_, frame.Pass(), base::Closure());
|
| + factory_.SubmitFrame(surface_id_, frame.Pass(),
|
| + SurfaceFactory::DrawCallback());
|
| }
|
|
|
| void UnrefResources(ResourceProvider::ResourceId* ids_to_unref,
|
| @@ -358,6 +360,11 @@ TEST_F(SurfaceFactoryTest, ResourceLifetime) {
|
| }
|
| }
|
|
|
| +void DrawCallback(bool* executed, bool* result, bool drawn) {
|
| + *executed = true;
|
| + *result = drawn;
|
| +}
|
| +
|
| // Tests doing a DestroyAll before shutting down the factory;
|
| TEST_F(SurfaceFactoryTest, DestroyAll) {
|
| SurfaceId id(7);
|
| @@ -370,10 +377,17 @@ TEST_F(SurfaceFactoryTest, DestroyAll) {
|
| frame_data->resource_list.push_back(resource);
|
| scoped_ptr<CompositorFrame> frame(new CompositorFrame);
|
| frame->delegated_frame_data = frame_data.Pass();
|
| - factory_.SubmitFrame(id, frame.Pass(), base::Closure());
|
| + bool executed = false;
|
| + bool drawn = false;
|
| +
|
| + factory_.SubmitFrame(id, frame.Pass(),
|
| + base::Bind(&DrawCallback, &executed, &drawn));
|
|
|
| surface_id_ = SurfaceId();
|
| + EXPECT_FALSE(executed);
|
| factory_.DestroyAll();
|
| + EXPECT_TRUE(executed);
|
| + EXPECT_FALSE(drawn);
|
| }
|
|
|
| TEST_F(SurfaceFactoryTest, DestroySequence) {
|
| @@ -391,7 +405,8 @@ TEST_F(SurfaceFactoryTest, DestroySequence) {
|
| frame->metadata.satisfies_sequences.push_back(4);
|
| frame->delegated_frame_data = frame_data.Pass();
|
| DCHECK(manager_.GetSurfaceForId(id2));
|
| - factory_.SubmitFrame(surface_id_, frame.Pass(), base::Closure());
|
| + factory_.SubmitFrame(surface_id_, frame.Pass(),
|
| + SurfaceFactory::DrawCallback());
|
| DCHECK(!manager_.GetSurfaceForId(id2));
|
|
|
| // Check that waiting after the sequence is satisfied works.
|
|
|