Index: cc/surfaces/compositor_frame_sink_support_unittest.cc |
diff --git a/cc/surfaces/compositor_frame_sink_support_unittest.cc b/cc/surfaces/compositor_frame_sink_support_unittest.cc |
index efa9b1b2725067c9f8b253645016c0d9a2c6968a..a947a02981bf4f87019afd67671aebbf4be78c06 100644 |
--- a/cc/surfaces/compositor_frame_sink_support_unittest.cc |
+++ b/cc/surfaces/compositor_frame_sink_support_unittest.cc |
@@ -153,10 +153,13 @@ class CompositorFrameSinkSupportTest : public testing::Test, |
this, &surface_manager_, kChildFrameSink2, false /* is_root */, |
true /* handles_frame_sink_id_invalidation */, |
true /* needs_sync_points */)); |
+ surface_manager_.RegisterBeginFrameSource(begin_frame_source_.get(), |
Fady Samuel
2017/03/01 19:49:07
I guess cc::Display normally does this? Could you
Eric Seckler
2017/03/02 09:41:59
Correct, normally done by the display. The other t
|
+ kDisplayFrameSink); |
} |
void TearDown() override { |
surface_manager_.SetDependencyTracker(nullptr); |
+ surface_manager_.UnregisterBeginFrameSource(begin_frame_source_.get()); |
// SurfaceDependencyTracker depends on this BeginFrameSource and so it must |
// be destroyed AFTER the dependency tracker is destroyed. |
@@ -723,5 +726,20 @@ TEST_F(CompositorFrameSinkSupportTest, DropStaleReferencesAfterActivation) { |
EXPECT_THAT(GetChildReferences(parent_id), UnorderedElementsAre(child_id2)); |
} |
+TEST_F(CompositorFrameSinkSupportTest, PassesOnBeginFrameAcks) { |
+ // Request BeginFrames. |
+ display_support().SetNeedsBeginFrame(true); |
+ |
+ // Issue a BeginFrame. |
+ BeginFrameArgs args = |
+ CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 1); |
+ begin_frame_source()->TestOnBeginFrame(args); |
+ |
+ // Check that the support forwards our ack to the BeginFrameSource. |
+ BeginFrameAck ack(0, 1, 1, 0, false); |
+ display_support().DidFinishFrame(ack); |
+ EXPECT_EQ(ack, begin_frame_source()->LastAckForObserver(&display_support())); |
+} |
+ |
} // namespace test |
} // namespace cc |