Index: cc/layer_tree_host_unittest.cc |
diff --git a/cc/layer_tree_host_unittest.cc b/cc/layer_tree_host_unittest.cc |
index a03e41802a1b1c56e2214990f3d6415e1a53bb0f..af782b2e01b88be12ea7db02898d8c24f78686fd 100644 |
--- a/cc/layer_tree_host_unittest.cc |
+++ b/cc/layer_tree_host_unittest.cc |
@@ -3183,4 +3183,57 @@ TEST_F(LayerTreeHostTestContinuousAnimate, runMultiThread) |
runTest(true); |
} |
+class LayerTreeHostTestDeferCommits : public LayerTreeHostTest { |
+public: |
+ LayerTreeHostTestDeferCommits() |
+ : m_numCommitsDeferred(0) |
+ , m_numCompleteCommits(0) |
+ { |
+ } |
+ |
+ virtual void beginTest() OVERRIDE |
+ { |
+ postSetNeedsCommitToMainThread(); |
+ } |
+ |
+ virtual void didDeferCommit() OVERRIDE |
+ { |
+ m_numCommitsDeferred++; |
+ m_layerTreeHost->setDeferCommits(false); |
+ } |
+ |
+ virtual void commitCompleteOnThread(LayerTreeHostImpl*) OVERRIDE |
+ { |
+ m_numCompleteCommits++; |
+ switch (m_numCompleteCommits) { |
+ case 1: |
+ EXPECT_EQ(0, m_numCommitsDeferred); |
+ m_layerTreeHost->setDeferCommits(true); |
+ postSetNeedsCommitToMainThread(); |
+ break; |
+ case 2: |
+ endTest(); |
+ break; |
+ default: |
+ NOTREACHED(); |
+ break; |
+ } |
+ } |
+ |
+ virtual void afterTest() OVERRIDE |
+ { |
+ EXPECT_EQ(1, m_numCommitsDeferred); |
+ EXPECT_EQ(2, m_numCompleteCommits); |
+ } |
+ |
+private: |
+ int m_numCommitsDeferred; |
+ int m_numCompleteCommits; |
+}; |
+ |
+TEST_F(LayerTreeHostTestDeferCommits, runMultiThread) |
+{ |
+ runTest(true); |
+} |
+ |
} // namespace |