Index: content/browser/renderer_host/begin_frame_observer_proxy_unittest.cc |
diff --git a/content/browser/renderer_host/begin_frame_observer_proxy_unittest.cc b/content/browser/renderer_host/begin_frame_observer_proxy_unittest.cc |
index 77b00e96b01d397ec230147c90212c5b66beb885..ef88289eebcd9b4d5bdaf93a8544c3a63adb8fed 100644 |
--- a/content/browser/renderer_host/begin_frame_observer_proxy_unittest.cc |
+++ b/content/browser/renderer_host/begin_frame_observer_proxy_unittest.cc |
@@ -94,4 +94,28 @@ TEST_F(BeginFrameObserverProxyTest, BeginFrameScheduling) { |
Mock::VerifyAndClearExpectations(&client); |
} |
+TEST_F(BeginFrameObserverProxyTest, SingleBeginFrameScheduling) { |
+ MockBeginFrameObserverProxyClient client; |
+ BeginFrameObserverProxy begin_frame_observer(&client); |
+ begin_frame_observer.SetCompositor(compositor()); |
+ begin_frame_observer.SetNeedsOneBeginFrame(); |
+ |
+ // SendBeginFrame is called when new |args| is delivered. |
+ cc::BeginFrameArgs args = cc::CreateBeginFrameArgsForTesting( |
+ BEGINFRAME_FROM_HERE, base::TimeTicks::FromInternalValue(33)); |
+ EXPECT_CALL(client, SendBeginFrame(args)); |
+ compositor()->SendBeginFramesToChildren(args); |
+ Mock::VerifyAndClearExpectations(&client); |
+ |
+ // SendBeginFrame is not called when new |args2| is delivered, as the |
+ // single frame request was already satisified. |
+ cc::BeginFrameArgs args2 = cc::CreateBeginFrameArgsForTesting( |
+ BEGINFRAME_FROM_HERE, base::TimeTicks::FromInternalValue(66)); |
+ EXPECT_CALL(client, SendBeginFrame(_)).Times(0); |
+ compositor()->SendBeginFramesToChildren(args2); |
+ Mock::VerifyAndClearExpectations(&client); |
+ |
+ begin_frame_observer.ResetCompositor(); |
+} |
+ |
} // namespace content |