Index: cc/test/mock_compositor_frame_sink_support_client.h |
diff --git a/cc/test/mock_compositor_frame_sink_support_client.h b/cc/test/mock_compositor_frame_sink_support_client.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7a1d62b05ab748386d992cfb33baf6b5fd7d1d39 |
--- /dev/null |
+++ b/cc/test/mock_compositor_frame_sink_support_client.h |
@@ -0,0 +1,64 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CC_TEST_MOCK_COMPOSITOR_FRAME_SINK_SUPPORT_CLIENT_H_ |
+#define CC_TEST_MOCK_COMPOSITOR_FRAME_SINK_SUPPORT_CLIENT_H_ |
+ |
+#include "cc/surfaces/compositor_frame_sink_support.h" |
+#include "cc/surfaces/compositor_frame_sink_support_client.h" |
+#include "cc/test/compositor_frame_helpers.h" |
+#include "testing/gmock/include/gmock/gmock.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+using testing::Invoke; |
+using testing::_; |
+ |
+namespace cc { |
+namespace test { |
+ |
+class MockCompositorFrameSinkSupportClient |
+ : public CompositorFrameSinkSupportClient { |
+ public: |
+ explicit MockCompositorFrameSinkSupportClient( |
+ bool create_surface_during_eviction); |
+ ~MockCompositorFrameSinkSupportClient() override; |
+ |
+ void set_support(CompositorFrameSinkSupport* support) { support_ = support; } |
+ |
+ ReturnedResourceArray& last_returned_resources() { |
danakj
2017/05/03 16:08:40
Why isn't the test instead expecting the resources
Alex Z.
2017/05/03 18:07:37
Done.
|
+ return last_returned_resources_; |
+ } |
+ |
+ // CompositorFrameSinkSupportClient implementation. |
+ MOCK_METHOD1(DidReceiveCompositorFrameAck, |
+ void(const ReturnedResourceArray&)); |
+ MOCK_METHOD1(OnBeginFrame, void(const BeginFrameArgs&)); |
+ MOCK_METHOD1(ReclaimResources, void(const ReturnedResourceArray&)); |
+ MOCK_METHOD2(WillDrawSurface, void(const LocalSurfaceId&, const gfx::Rect&)); |
+ |
+ private: |
+ void ReclaimResourcesInternal(const ReturnedResourceArray& resources) { |
+ last_returned_resources_ = resources; |
+ } |
+ |
+ void CreateSurfaceDrawCallback(const ReturnedResourceArray& resources) { |
+ last_returned_resources_ = resources; |
+ LocalSurfaceId new_id(7, base::UnguessableToken::Create()); |
+ ASSERT_TRUE(support_); |
+ ON_CALL(*this, DidReceiveCompositorFrameAck(_)) |
+ .WillByDefault(Invoke( |
+ this, |
+ &MockCompositorFrameSinkSupportClient::ReclaimResourcesInternal)); |
+ support_->SubmitCompositorFrame(new_id, MakeCompositorFrame()); |
+ support_->EvictFrame(); |
+ } |
+ |
+ ReturnedResourceArray last_returned_resources_; |
+ CompositorFrameSinkSupport* support_ = nullptr; |
+}; |
+ |
+} // namespace test |
+} // namespace cc |
+ |
+#endif // CC_TEST_MOCK_COMPOSITOR_FRAME_SINK_SUPPORT_CLIENT_H_ |