Index: cc/surfaces/direct_compositor_frame_sink_unittest.cc |
diff --git a/cc/surfaces/direct_compositor_frame_sink_unittest.cc b/cc/surfaces/direct_compositor_frame_sink_unittest.cc |
index ddea81e0b41837abf8e30b0f1bf17bf95d5823e1..c50c220f3b2328c55e598edb929638d8594b75c4 100644 |
--- a/cc/surfaces/direct_compositor_frame_sink_unittest.cc |
+++ b/cc/surfaces/direct_compositor_frame_sink_unittest.cc |
@@ -21,6 +21,7 @@ |
#include "cc/test/fake_compositor_frame_sink_client.h" |
#include "cc/test/fake_output_surface.h" |
#include "cc/test/ordered_simple_task_runner.h" |
+#include "cc/test/test_begin_frame_ack_tracker.h" |
#include "cc/test/test_context_provider.h" |
#include "cc/test/test_gpu_memory_buffer_manager.h" |
#include "cc/test/test_shared_bitmap_manager.h" |
@@ -47,6 +48,7 @@ class DirectCompositorFrameSinkTest : public testing::Test { |
display_rect_(display_size_), |
context_provider_(TestContextProvider::Create()) { |
surface_manager_.RegisterFrameSinkId(kArbitraryFrameSinkId); |
+ surface_manager_.AddObserver(&ack_tracker_); |
std::unique_ptr<FakeOutputSurface> display_output_surface = |
FakeOutputSurface::Create3d(); |
@@ -79,6 +81,7 @@ class DirectCompositorFrameSinkTest : public testing::Test { |
~DirectCompositorFrameSinkTest() override { |
compositor_frame_sink_->DetachFromClient(); |
+ surface_manager_.RemoveObserver(&ack_tracker_); |
} |
void SwapBuffersWithDamage(const gfx::Rect& damage_rect) { |
@@ -117,6 +120,7 @@ class DirectCompositorFrameSinkTest : public testing::Test { |
std::unique_ptr<Display> display_; |
FakeCompositorFrameSinkClient compositor_frame_sink_client_; |
std::unique_ptr<TestDirectCompositorFrameSink> compositor_frame_sink_; |
+ TestBeginFrameAckTracker ack_tracker_; |
}; |
TEST_F(DirectCompositorFrameSinkTest, DamageTriggersSwapBuffers) { |
@@ -148,9 +152,19 @@ TEST_F(DirectCompositorFrameSinkTest, SuspendedDoesNotTriggerSwapBuffers) { |
EXPECT_EQ(2u, display_output_surface_->num_sent_frames()); |
} |
-// TODO(eseckler): Add back tests for BeginFrameAck forwarding through |
-// DirectCompositorFrameSink and CompositorFrameSinkSupport when we add plumbing |
-// of BeginFrameAcks through SurfaceObservers. |
+TEST_F(DirectCompositorFrameSinkTest, AcknowledgesBeginFramesWithDamage) { |
sunnyps
2017/05/25 20:49:13
nit: I don't think we need this test here because
Eric Seckler
2017/05/26 10:57:52
Done. (You're right, the only additional behavior
|
+ // Verify that the frame sink forwards the BeginFrameAck attached to |
+ // CompositorFrame submitted during SetUp(). |
+ EXPECT_EQ(BeginFrameAck(0, 1, 1, true), ack_tracker_.last_ack()); |
+} |
+ |
+TEST_F(DirectCompositorFrameSinkTest, AcknowledgesBeginFramesWithoutDamage) { |
+ // Verify that the frame sink forwards the BeginFrameAck from |
+ // DidNotProduceFrame(). |
+ BeginFrameAck ack(0, 2, 2, false); |
+ compositor_frame_sink_->DidNotProduceFrame(ack); |
+ EXPECT_EQ(ack, ack_tracker_.last_ack()); |
+} |
} // namespace |
} // namespace cc |