Index: cc/trees/layer_tree_host_unittest_context.cc |
diff --git a/cc/trees/layer_tree_host_unittest_context.cc b/cc/trees/layer_tree_host_unittest_context.cc |
index 8fcfa28a10f1067557ae51fe21fdc4abfc20ae24..8e7aa258c18fe4d7fce348a497148afe72012d82 100644 |
--- a/cc/trees/layer_tree_host_unittest_context.cc |
+++ b/cc/trees/layer_tree_host_unittest_context.cc |
@@ -314,6 +314,77 @@ class LayerTreeHostClientNotReadyDoesNotCreateOutputSurface |
SINGLE_AND_MULTI_THREAD_TEST_F( |
LayerTreeHostClientNotReadyDoesNotCreateOutputSurface); |
+class LayerTreeHostClientFinishedDoesNotCreateOutputSurface |
+ : public LayerTreeHostContextTest { |
+ public: |
+ LayerTreeHostClientFinishedDoesNotCreateOutputSurface() |
+ : LayerTreeHostContextTest() {} |
+ |
+ virtual void WillBeginTest() OVERRIDE { |
+ layer_tree_host()->SetLayerTreeHostClientReady(); |
+ layer_tree_host()->SetLayerTreeHostClientFinished(); |
+ } |
+ |
+ virtual void BeginTest() OVERRIDE { |
+ PostSetNeedsCommitToMainThread(); |
+ EndTest(); |
+ } |
+ |
+ virtual scoped_ptr<OutputSurface> CreateOutputSurface( |
+ bool fallback) OVERRIDE { |
+ EXPECT_TRUE(false); |
+ return scoped_ptr<OutputSurface>(); |
+ } |
+ |
+ virtual void DidInitializeOutputSurface() OVERRIDE { EXPECT_TRUE(false); } |
+ |
+ virtual void AfterTest() OVERRIDE {} |
+}; |
+ |
+SINGLE_AND_MULTI_THREAD_TEST_F( |
+ LayerTreeHostClientFinishedDoesNotCreateOutputSurface); |
+ |
+class LayerTreeHostClientFinishedDoesNotCreateSecondSurface |
+ : public LayerTreeHostContextTest { |
+ public: |
+ LayerTreeHostClientFinishedDoesNotCreateSecondSurface() |
+ : LayerTreeHostContextTest(), attempted_create_output_surface_(false) {} |
+ |
+ virtual void WillBeginTest() OVERRIDE { |
+ layer_tree_host()->SetLayerTreeHostClientReady(); |
+ } |
+ |
+ virtual void BeginTest() OVERRIDE { |
+ PostSetNeedsCommitToMainThread(); |
+ EndTest(); |
+ } |
+ |
+ virtual scoped_ptr<OutputSurface> CreateOutputSurface( |
+ bool fallback) OVERRIDE { |
+ EXPECT_FALSE(attempted_create_output_surface_); |
+ layer_tree_host()->SetLayerTreeHostClientFinished(); |
+ ExpectCreateToFail(); |
+ attempted_create_output_surface_ = true; |
+ // Returning null here will post another task to create another surface. |
+ // However, because the LTH client is finished it should never call this |
+ // again. |
+ PostSetNeedsCommitToMainThread(); |
+ return scoped_ptr<OutputSurface>(); |
+ } |
+ |
+ virtual void DidInitializeOutputSurface() OVERRIDE { EXPECT_TRUE(false); } |
+ |
+ virtual void AfterTest() OVERRIDE { |
+ EXPECT_TRUE(attempted_create_output_surface_); |
+ } |
+ |
+ private: |
+ bool attempted_create_output_surface_; |
+}; |
+ |
+SINGLE_AND_MULTI_THREAD_TEST_F( |
+ LayerTreeHostClientFinishedDoesNotCreateSecondSurface); |
+ |
class LayerTreeHostContextTestLostContextSucceedsWithContent |
: public LayerTreeHostContextTestLostContextSucceeds { |
public: |