Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(667)

Side by Side Diff: blimp/client/feature/compositor/blimp_compositor_manager_unittest.cc

Issue 2274323002: Expose Blimp dependencies to the embedder (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@khushal_baseline_1
Patch Set: Fix linux build break Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "blimp/client/feature/compositor/blimp_compositor_manager.h" 5 #include "blimp/client/feature/compositor/blimp_compositor_manager.h"
6 6
7 #include "base/memory/ptr_util.h" 7 #include "base/memory/ptr_util.h"
8 #include "blimp/client/feature/compositor/blimp_gpu_memory_buffer_manager.h" 8 #include "blimp/client/core/compositor/blimp_compositor_dependencies.h"
9 #include "blimp/client/core/compositor/blob_image_serialization_processor.h"
10 #include "blimp/client/feature/compositor/mock_compositor_dependencies.h"
9 #include "cc/proto/compositor_message.pb.h" 11 #include "cc/proto/compositor_message.pb.h"
10 #include "cc/surfaces/surface_manager.h" 12 #include "cc/surfaces/surface_manager.h"
11 #include "testing/gmock/include/gmock/gmock.h" 13 #include "testing/gmock/include/gmock/gmock.h"
12 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
13 #include "ui/events/gesture_detection/motion_event_generic.h" 15 #include "ui/events/gesture_detection/motion_event_generic.h"
14 16
15 using testing::_; 17 using testing::_;
16 using testing::InSequence; 18 using testing::InSequence;
17 using testing::Sequence; 19 using testing::Sequence;
18 20
19 namespace blimp { 21 namespace blimp {
20 namespace client { 22 namespace client {
21 namespace { 23 namespace {
22 24
23 class MockRenderWidgetFeature : public RenderWidgetFeature { 25 class MockRenderWidgetFeature : public RenderWidgetFeature {
24 public: 26 public:
25 MOCK_METHOD3(SendCompositorMessage, 27 MOCK_METHOD3(SendCompositorMessage,
26 void(const int, 28 void(const int,
27 const int, 29 const int,
28 const cc::proto::CompositorMessage&)); 30 const cc::proto::CompositorMessage&));
29 MOCK_METHOD3(SendInputEvent, void(const int, 31 MOCK_METHOD3(SendInputEvent, void(const int,
30 const int, 32 const int,
31 const blink::WebInputEvent&)); 33 const blink::WebInputEvent&));
32 MOCK_METHOD2(SetDelegate, void(int, RenderWidgetFeatureDelegate*)); 34 MOCK_METHOD2(SetDelegate, void(int, RenderWidgetFeatureDelegate*));
33 MOCK_METHOD1(RemoveDelegate, void(const int)); 35 MOCK_METHOD1(RemoveDelegate, void(const int));
34 }; 36 };
35 37
36 class MockBlimpCompositor : public BlimpCompositor { 38 class MockBlimpCompositor : public BlimpCompositor {
37 public : 39 public:
38 explicit MockBlimpCompositor(const int render_widget_id, 40 explicit MockBlimpCompositor(
39 cc::SurfaceManager* surface_manager, 41 const int render_widget_id,
40 int surface_client_id, 42 BlimpCompositorDependencies* compositor_dependencies,
41 BlimpCompositorClient* client) 43 BlimpCompositorClient* client)
42 : BlimpCompositor(render_widget_id, 44 : BlimpCompositor(render_widget_id, compositor_dependencies, client) {}
43 surface_manager,
44 surface_client_id,
45 client) {}
46 45
47 MOCK_METHOD1(SetVisible, void(bool)); 46 MOCK_METHOD1(SetVisible, void(bool));
48 MOCK_METHOD1(OnTouchEvent, bool(const ui::MotionEvent& motion_event)); 47 MOCK_METHOD1(OnTouchEvent, bool(const ui::MotionEvent& motion_event));
49 48
50 void OnCompositorMessageReceived( 49 void OnCompositorMessageReceived(
51 std::unique_ptr<cc::proto::CompositorMessage> message) override { 50 std::unique_ptr<cc::proto::CompositorMessage> message) override {
52 MockableOnCompositorMessageReceived(*message); 51 MockableOnCompositorMessageReceived(*message);
53 } 52 }
54 MOCK_METHOD1(MockableOnCompositorMessageReceived, 53 MOCK_METHOD1(MockableOnCompositorMessageReceived,
55 void(const cc::proto::CompositorMessage&)); 54 void(const cc::proto::CompositorMessage&));
56 }; 55 };
57 56
58 class BlimpCompositorManagerForTesting : public BlimpCompositorManager { 57 class BlimpCompositorManagerForTesting : public BlimpCompositorManager {
59 public: 58 public:
60 explicit BlimpCompositorManagerForTesting( 59 explicit BlimpCompositorManagerForTesting(
61 RenderWidgetFeature* render_widget_feature, 60 RenderWidgetFeature* render_widget_feature,
62 cc::SurfaceManager* surface_manager, 61 BlimpCompositorDependencies* compositor_dependencies)
63 BlimpGpuMemoryBufferManager* gpu_memory_buffer_manager, 62 : BlimpCompositorManager(render_widget_feature, compositor_dependencies) {
64 SurfaceIdAllocationCallback callback) 63 }
65 : BlimpCompositorManager(render_widget_feature,
66 surface_manager,
67 gpu_memory_buffer_manager,
68 callback) {}
69 64
70 using BlimpCompositorManager::GetCompositor; 65 using BlimpCompositorManager::GetCompositor;
71 66
72 std::unique_ptr<BlimpCompositor> CreateBlimpCompositor( 67 std::unique_ptr<BlimpCompositor> CreateBlimpCompositor(
73 int render_widget_id, 68 int render_widget_id,
74 cc::SurfaceManager* surface_manager, 69 BlimpCompositorDependencies* compositor_dependencies,
75 uint32_t surface_client_id,
76 BlimpCompositorClient* client) override { 70 BlimpCompositorClient* client) override {
77 return base::MakeUnique<MockBlimpCompositor>( 71 return base::MakeUnique<MockBlimpCompositor>(
78 render_widget_id, surface_manager, surface_client_id, client); 72 render_widget_id, compositor_dependencies, client);
79 } 73 }
80 }; 74 };
81 75
82 class BlimpCompositorManagerTest : public testing::Test { 76 class BlimpCompositorManagerTest : public testing::Test {
83 public: 77 public:
84 void SetUp() override { 78 void SetUp() override {
85 EXPECT_CALL(render_widget_feature_, SetDelegate(_, _)).Times(1); 79 EXPECT_CALL(render_widget_feature_, SetDelegate(_, _)).Times(1);
86 EXPECT_CALL(render_widget_feature_, RemoveDelegate(_)).Times(1); 80 EXPECT_CALL(render_widget_feature_, RemoveDelegate(_)).Times(1);
87 81
88 surface_manager_ = base::MakeUnique<cc::SurfaceManager>(); 82 compositor_dependencies_ = base::MakeUnique<BlimpCompositorDependencies>(
89 compositor_manager_.reset(new BlimpCompositorManagerForTesting( 83 base::MakeUnique<MockCompositorDependencies>());
90 &render_widget_feature_, surface_manager_.get(), 84
91 &gpu_memory_buffer_manager_, 85 compositor_manager_ = base::MakeUnique<BlimpCompositorManagerForTesting>(
92 base::Bind(&BlimpCompositorManagerTest::AllocateId, 86 &render_widget_feature_, compositor_dependencies_.get());
93 base::Unretained(this))));
94 } 87 }
95 88
96 void TearDown() override { 89 void TearDown() override {
97 mock_compositor1_ = nullptr; 90 mock_compositor1_ = nullptr;
98 mock_compositor2_ = nullptr; 91 mock_compositor2_ = nullptr;
99 compositor_manager_.reset(); 92 compositor_manager_.reset();
100 surface_manager_.reset(); 93 compositor_dependencies_.reset();
101 } 94 }
102 95
103 uint32_t AllocateId() { return ++id_; }
104
105 void SetUpCompositors() { 96 void SetUpCompositors() {
106 delegate()->OnRenderWidgetCreated(1); 97 delegate()->OnRenderWidgetCreated(1);
107 delegate()->OnRenderWidgetCreated(2); 98 delegate()->OnRenderWidgetCreated(2);
108 99
109 mock_compositor1_ = static_cast<MockBlimpCompositor*> 100 mock_compositor1_ = static_cast<MockBlimpCompositor*>
110 (compositor_manager_->GetCompositor(1)); 101 (compositor_manager_->GetCompositor(1));
111 mock_compositor2_ = static_cast<MockBlimpCompositor*> 102 mock_compositor2_ = static_cast<MockBlimpCompositor*>
112 (compositor_manager_->GetCompositor(2)); 103 (compositor_manager_->GetCompositor(2));
113 104
114 EXPECT_NE(mock_compositor1_, nullptr); 105 EXPECT_NE(mock_compositor1_, nullptr);
115 EXPECT_NE(mock_compositor2_, nullptr); 106 EXPECT_NE(mock_compositor2_, nullptr);
116 107
117 EXPECT_EQ(mock_compositor1_->render_widget_id(), 1); 108 EXPECT_EQ(mock_compositor1_->render_widget_id(), 1);
118 EXPECT_EQ(mock_compositor2_->render_widget_id(), 2); 109 EXPECT_EQ(mock_compositor2_->render_widget_id(), 2);
119 } 110 }
120 111
121 RenderWidgetFeature::RenderWidgetFeatureDelegate* delegate() const { 112 RenderWidgetFeature::RenderWidgetFeatureDelegate* delegate() const {
122 DCHECK(compositor_manager_); 113 DCHECK(compositor_manager_);
123 return static_cast<RenderWidgetFeature::RenderWidgetFeatureDelegate*> 114 return static_cast<RenderWidgetFeature::RenderWidgetFeatureDelegate*>
124 (compositor_manager_.get()); 115 (compositor_manager_.get());
125 } 116 }
126 117
127 uint32_t id_ = 1; 118 std::unique_ptr<BlimpCompositorDependencies> compositor_dependencies_;
128 std::unique_ptr<BlimpCompositorManagerForTesting> compositor_manager_; 119 std::unique_ptr<BlimpCompositorManagerForTesting> compositor_manager_;
129 std::unique_ptr<cc::SurfaceManager> surface_manager_; 120 BlobImageSerializationProcessor blob_image_serialization_processor_;
130 BlimpGpuMemoryBufferManager gpu_memory_buffer_manager_;
131 MockRenderWidgetFeature render_widget_feature_; 121 MockRenderWidgetFeature render_widget_feature_;
132 MockBlimpCompositor* mock_compositor1_; 122 MockBlimpCompositor* mock_compositor1_;
133 MockBlimpCompositor* mock_compositor2_; 123 MockBlimpCompositor* mock_compositor2_;
134 }; 124 };
135 125
136 TEST_F(BlimpCompositorManagerTest, ForwardsMessagesToCorrectCompositor) { 126 TEST_F(BlimpCompositorManagerTest, ForwardsMessagesToCorrectCompositor) {
137 SetUpCompositors(); 127 SetUpCompositors();
138 128
139 // Ensure that the compositor messages for a render widget are forwarded to 129 // Ensure that the compositor messages for a render widget are forwarded to
140 // the correct compositor. 130 // the correct compositor.
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 // events forwarded after this. 181 // events forwarded after this.
192 delegate()->OnRenderWidgetDeleted(1); 182 delegate()->OnRenderWidgetDeleted(1);
193 delegate()->OnRenderWidgetDeleted(2); 183 delegate()->OnRenderWidgetDeleted(2);
194 184
195 compositor_manager_->SetVisible(true); 185 compositor_manager_->SetVisible(true);
196 } 186 }
197 187
198 } // namespace 188 } // namespace
199 } // namespace client 189 } // namespace client
200 } // namespace blimp 190 } // namespace blimp
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698