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

Side by Side Diff: media/remoting/courier_renderer_unittest.cc

Issue 2643253003: Media Remoting Clean-up: Less-redundant naming, style consistency, etc. (Closed)
Patch Set: Created 3 years, 11 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 "media/remoting/remote_renderer_impl.h" 5 #include "media/remoting/courier_renderer.h"
6 6
7 #include "base/memory/ptr_util.h" 7 #include "base/memory/ptr_util.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "base/threading/thread_task_runner_handle.h" 9 #include "base/threading/thread_task_runner_handle.h"
10 #include "media/base/pipeline_status.h" 10 #include "media/base/pipeline_status.h"
11 #include "media/base/renderer_client.h"
11 #include "media/base/test_helpers.h" 12 #include "media/base/test_helpers.h"
12 #include "media/remoting/fake_remoting_controller.h" 13 #include "media/remoting/fake_demuxer_stream_provider.h"
13 #include "media/remoting/fake_remoting_demuxer_stream_provider.h" 14 #include "media/remoting/fake_remoter.h"
14 #include "media/remoting/remoting_renderer_controller.h" 15 #include "media/remoting/user_experience_controller.h"
15 #include "testing/gmock/include/gmock/gmock.h" 16 #include "testing/gmock/include/gmock/gmock.h"
16 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
17 18
18 using testing::_; 19 using testing::_;
19 using testing::Invoke; 20 using testing::Invoke;
20 using testing::Return; 21 using testing::Return;
21 22
22 namespace media { 23 namespace media {
24 namespace remoting {
23 25
24 namespace { 26 namespace {
25 27
26 PipelineMetadata DefaultMetadata() { 28 PipelineMetadata DefaultMetadata() {
27 PipelineMetadata data; 29 PipelineMetadata data;
28 data.has_audio = true; 30 data.has_audio = true;
29 data.has_video = true; 31 data.has_video = true;
30 data.video_decoder_config = TestVideoConfig::Normal(); 32 data.video_decoder_config = TestVideoConfig::Normal();
31 return data; 33 return data;
32 } 34 }
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 gfx::Size size_; 97 gfx::Size size_;
96 bool opaque_ = false; 98 bool opaque_ = false;
97 base::TimeDelta duration_; 99 base::TimeDelta duration_;
98 PipelineStatistics stats_; 100 PipelineStatistics stats_;
99 101
100 DISALLOW_COPY_AND_ASSIGN(RendererClientImpl); 102 DISALLOW_COPY_AND_ASSIGN(RendererClientImpl);
101 }; 103 };
102 104
103 } // namespace 105 } // namespace
104 106
105 class RemoteRendererImplTest : public testing::Test { 107 class CourierRendererTest : public testing::Test {
106 public: 108 public:
107 RemoteRendererImplTest() 109 CourierRendererTest()
108 : receiver_renderer_handle_(10), 110 : receiver_renderer_handle_(10),
109 receiver_audio_demuxer_callback_handle_(11), 111 receiver_audio_demuxer_callback_handle_(11),
110 receiver_video_demuxer_callback_handle_(12), 112 receiver_video_demuxer_callback_handle_(12),
111 sender_client_handle_(remoting::kInvalidHandle), 113 sender_client_handle_(RpcBroker::kInvalidHandle),
112 sender_renderer_callback_handle_(remoting::kInvalidHandle), 114 sender_renderer_callback_handle_(RpcBroker::kInvalidHandle),
113 sender_audio_demuxer_handle_(remoting::kInvalidHandle), 115 sender_audio_demuxer_handle_(RpcBroker::kInvalidHandle),
114 sender_video_demuxer_handle_(remoting::kInvalidHandle), 116 sender_video_demuxer_handle_(RpcBroker::kInvalidHandle),
115 received_audio_ds_init_cb_(false), 117 received_audio_ds_init_cb_(false),
116 received_video_ds_init_cb_(false), 118 received_video_ds_init_cb_(false),
117 renderer_initialized_(false) {} 119 renderer_initialized_(false) {}
118 ~RemoteRendererImplTest() override = default; 120 ~CourierRendererTest() override = default;
119 121
120 // Use this function to mimic receiver to handle RPC message for renderer 122 // Use this function to mimic receiver to handle RPC message for renderer
121 // initialization, 123 // initialization,
122 void RpcMessageResponseBot(std::unique_ptr<std::vector<uint8_t>> message) { 124 void RpcMessageResponseBot(std::unique_ptr<std::vector<uint8_t>> message) {
123 std::unique_ptr<remoting::pb::RpcMessage> rpc( 125 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
124 new remoting::pb::RpcMessage());
125 ASSERT_TRUE(rpc->ParseFromArray(message->data(), message->size())); 126 ASSERT_TRUE(rpc->ParseFromArray(message->data(), message->size()));
126 switch (rpc->proc()) { 127 switch (rpc->proc()) {
127 case remoting::pb::RpcMessage::RPC_ACQUIRE_RENDERER: { 128 case pb::RpcMessage::RPC_ACQUIRE_RENDERER: {
128 // Issues RPC_ACQUIRE_RENDERER_DONE RPC message. 129 // Issues RPC_ACQUIRE_RENDERER_DONE RPC message.
129 std::unique_ptr<remoting::pb::RpcMessage> acquire_done( 130 std::unique_ptr<pb::RpcMessage> acquire_done(new pb::RpcMessage());
130 new remoting::pb::RpcMessage());
131 acquire_done->set_handle(rpc->integer_value()); 131 acquire_done->set_handle(rpc->integer_value());
132 acquire_done->set_proc( 132 acquire_done->set_proc(pb::RpcMessage::RPC_ACQUIRE_RENDERER_DONE);
133 remoting::pb::RpcMessage::RPC_ACQUIRE_RENDERER_DONE);
134 acquire_done->set_integer_value(receiver_renderer_handle_); 133 acquire_done->set_integer_value(receiver_renderer_handle_);
135 remoting_renderer_controller_->GetRpcBroker()->ProcessMessageFromRemote( 134 controller_->GetRpcBroker()->ProcessMessageFromRemote(
136 std::move(acquire_done)); 135 std::move(acquire_done));
137 } break; 136 } break;
138 case remoting::pb::RpcMessage::RPC_R_INITIALIZE: { 137 case pb::RpcMessage::RPC_R_INITIALIZE: {
139 EXPECT_EQ(rpc->handle(), receiver_renderer_handle_); 138 EXPECT_EQ(rpc->handle(), receiver_renderer_handle_);
140 sender_renderer_callback_handle_ = 139 sender_renderer_callback_handle_ =
141 rpc->renderer_initialize_rpc().callback_handle(); 140 rpc->renderer_initialize_rpc().callback_handle();
142 sender_client_handle_ = rpc->renderer_initialize_rpc().client_handle(); 141 sender_client_handle_ = rpc->renderer_initialize_rpc().client_handle();
143 sender_audio_demuxer_handle_ = 142 sender_audio_demuxer_handle_ =
144 rpc->renderer_initialize_rpc().audio_demuxer_handle(); 143 rpc->renderer_initialize_rpc().audio_demuxer_handle();
145 sender_video_demuxer_handle_ = 144 sender_video_demuxer_handle_ =
146 rpc->renderer_initialize_rpc().video_demuxer_handle(); 145 rpc->renderer_initialize_rpc().video_demuxer_handle();
147 146
148 // Issues audio RPC_DS_INITIALIZE RPC message. 147 // Issues audio RPC_DS_INITIALIZE RPC message.
149 if (sender_audio_demuxer_handle_ != remoting::kInvalidHandle) { 148 if (sender_audio_demuxer_handle_ != RpcBroker::kInvalidHandle) {
150 std::unique_ptr<remoting::pb::RpcMessage> ds_init( 149 std::unique_ptr<pb::RpcMessage> ds_init(new pb::RpcMessage());
151 new remoting::pb::RpcMessage());
152 ds_init->set_handle(sender_audio_demuxer_handle_); 150 ds_init->set_handle(sender_audio_demuxer_handle_);
153 ds_init->set_proc(remoting::pb::RpcMessage::RPC_DS_INITIALIZE); 151 ds_init->set_proc(pb::RpcMessage::RPC_DS_INITIALIZE);
154 ds_init->set_integer_value(receiver_audio_demuxer_callback_handle_); 152 ds_init->set_integer_value(receiver_audio_demuxer_callback_handle_);
155 remoting_renderer_controller_->GetRpcBroker() 153 controller_->GetRpcBroker()->ProcessMessageFromRemote(
156 ->ProcessMessageFromRemote(std::move(ds_init)); 154 std::move(ds_init));
157 } 155 }
158 if (sender_video_demuxer_handle_ != remoting::kInvalidHandle) { 156 if (sender_video_demuxer_handle_ != RpcBroker::kInvalidHandle) {
159 std::unique_ptr<remoting::pb::RpcMessage> ds_init( 157 std::unique_ptr<pb::RpcMessage> ds_init(new pb::RpcMessage());
160 new remoting::pb::RpcMessage());
161 ds_init->set_handle(sender_video_demuxer_handle_); 158 ds_init->set_handle(sender_video_demuxer_handle_);
162 ds_init->set_proc(remoting::pb::RpcMessage::RPC_DS_INITIALIZE); 159 ds_init->set_proc(pb::RpcMessage::RPC_DS_INITIALIZE);
163 ds_init->set_integer_value(receiver_video_demuxer_callback_handle_); 160 ds_init->set_integer_value(receiver_video_demuxer_callback_handle_);
164 remoting_renderer_controller_->GetRpcBroker() 161 controller_->GetRpcBroker()->ProcessMessageFromRemote(
165 ->ProcessMessageFromRemote(std::move(ds_init)); 162 std::move(ds_init));
166 } 163 }
167 } break; 164 } break;
168 case remoting::pb::RpcMessage::RPC_DS_INITIALIZE_CALLBACK: { 165 case pb::RpcMessage::RPC_DS_INITIALIZE_CALLBACK: {
169 if (rpc->handle() == receiver_audio_demuxer_callback_handle_) 166 if (rpc->handle() == receiver_audio_demuxer_callback_handle_)
170 received_audio_ds_init_cb_ = true; 167 received_audio_ds_init_cb_ = true;
171 if (rpc->handle() == receiver_video_demuxer_callback_handle_) 168 if (rpc->handle() == receiver_video_demuxer_callback_handle_)
172 received_video_ds_init_cb_ = true; 169 received_video_ds_init_cb_ = true;
173 170
174 // Issues RPC_R_INITIALIZE_CALLBACK RPC message when receiving 171 // Issues RPC_R_INITIALIZE_CALLBACK RPC message when receiving
175 // RPC_DS_INITIALIZE_CALLBACK on available streams. 172 // RPC_DS_INITIALIZE_CALLBACK on available streams.
176 if (received_audio_ds_init_cb_ == 173 if (received_audio_ds_init_cb_ ==
177 (sender_audio_demuxer_handle_ != remoting::kInvalidHandle) && 174 (sender_audio_demuxer_handle_ != RpcBroker::kInvalidHandle) &&
178 received_video_ds_init_cb_ == 175 received_video_ds_init_cb_ ==
179 (sender_video_demuxer_handle_ != remoting::kInvalidHandle)) { 176 (sender_video_demuxer_handle_ != RpcBroker::kInvalidHandle)) {
180 std::unique_ptr<remoting::pb::RpcMessage> init_cb( 177 std::unique_ptr<pb::RpcMessage> init_cb(new pb::RpcMessage());
181 new remoting::pb::RpcMessage());
182 init_cb->set_handle(sender_renderer_callback_handle_); 178 init_cb->set_handle(sender_renderer_callback_handle_);
183 init_cb->set_proc( 179 init_cb->set_proc(pb::RpcMessage::RPC_R_INITIALIZE_CALLBACK);
184 remoting::pb::RpcMessage::RPC_R_INITIALIZE_CALLBACK);
185 init_cb->set_boolean_value(true); 180 init_cb->set_boolean_value(true);
186 remoting_renderer_controller_->GetRpcBroker() 181 controller_->GetRpcBroker()->ProcessMessageFromRemote(
187 ->ProcessMessageFromRemote(std::move(init_cb)); 182 std::move(init_cb));
188 renderer_initialized_ = true; 183 renderer_initialized_ = true;
189 } 184 }
190 185
191 } break; 186 } break;
192 case remoting::pb::RpcMessage::RPC_R_FLUSHUNTIL: { 187 case pb::RpcMessage::RPC_R_FLUSHUNTIL: {
193 // Issues RPC_R_FLUSHUNTIL_CALLBACK RPC message. 188 // Issues RPC_R_FLUSHUNTIL_CALLBACK RPC message.
194 std::unique_ptr<remoting::pb::RpcMessage> flush_cb( 189 std::unique_ptr<pb::RpcMessage> flush_cb(new pb::RpcMessage());
195 new remoting::pb::RpcMessage());
196 flush_cb->set_handle(rpc->renderer_flushuntil_rpc().callback_handle()); 190 flush_cb->set_handle(rpc->renderer_flushuntil_rpc().callback_handle());
197 flush_cb->set_proc(remoting::pb::RpcMessage::RPC_R_FLUSHUNTIL_CALLBACK); 191 flush_cb->set_proc(pb::RpcMessage::RPC_R_FLUSHUNTIL_CALLBACK);
198 remoting_renderer_controller_->GetRpcBroker()->ProcessMessageFromRemote( 192 controller_->GetRpcBroker()->ProcessMessageFromRemote(
199 std::move(flush_cb)); 193 std::move(flush_cb));
200 194
201 } break; 195 } break;
202 196
203 default: 197 default:
204 NOTREACHED(); 198 NOTREACHED();
205 } 199 }
206 RunPendingTasks(); 200 RunPendingTasks();
207 } 201 }
208 202
209 // Callback from RpcBroker when sending message to remote sink. 203 // Callback from RpcBroker when sending message to remote sink.
210 void OnSendMessageToSink(std::unique_ptr<std::vector<uint8_t>> message) { 204 void OnSendMessageToSink(std::unique_ptr<std::vector<uint8_t>> message) {
211 std::unique_ptr<remoting::pb::RpcMessage> rpc( 205 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
212 new remoting::pb::RpcMessage());
213 ASSERT_TRUE(rpc->ParseFromArray(message->data(), message->size())); 206 ASSERT_TRUE(rpc->ParseFromArray(message->data(), message->size()));
214 received_rpc_.push_back(std::move(rpc)); 207 received_rpc_.push_back(std::move(rpc));
215 } 208 }
216 209
217 protected: 210 protected:
218 void InitializeRenderer() { 211 void InitializeRenderer() {
219 // Register media::RendererClient implementation. 212 // Register media::RendererClient implementation.
220 render_client_.reset(new RendererClientImpl()); 213 render_client_.reset(new RendererClientImpl());
221 demuxer_stream_provider_.reset(new FakeRemotingDemuxerStreamProvider()); 214 demuxer_stream_provider_.reset(new FakeDemuxerStreamProvider());
222 EXPECT_CALL(*render_client_, OnPipelineStatus(_)).Times(1); 215 EXPECT_CALL(*render_client_, OnPipelineStatus(_)).Times(1);
223 DCHECK(remote_renderer_impl_); 216 DCHECK(remote_renderer_impl_);
224 // Redirect RPC message for simulate receiver scenario 217 // Redirect RPC message for simulate receiver scenario
225 remoting_renderer_controller_->GetRpcBroker()->SetMessageCallbackForTesting( 218 controller_->GetRpcBroker()->SetMessageCallbackForTesting(base::Bind(
226 base::Bind(&RemoteRendererImplTest::RpcMessageResponseBot, 219 &CourierRendererTest::RpcMessageResponseBot, base::Unretained(this)));
227 base::Unretained(this)));
228 RunPendingTasks(); 220 RunPendingTasks();
229 remote_renderer_impl_->Initialize( 221 remote_renderer_impl_->Initialize(
230 demuxer_stream_provider_.get(), render_client_.get(), 222 demuxer_stream_provider_.get(), render_client_.get(),
231 base::Bind(&RendererClientImpl::OnPipelineStatus, 223 base::Bind(&RendererClientImpl::OnPipelineStatus,
232 base::Unretained(render_client_.get()))); 224 base::Unretained(render_client_.get())));
233 RunPendingTasks(); 225 RunPendingTasks();
234 // Redirect RPC message back to save for later check. 226 // Redirect RPC message back to save for later check.
235 remoting_renderer_controller_->GetRpcBroker()->SetMessageCallbackForTesting( 227 controller_->GetRpcBroker()->SetMessageCallbackForTesting(base::Bind(
236 base::Bind(&RemoteRendererImplTest::OnSendMessageToSink, 228 &CourierRendererTest::OnSendMessageToSink, base::Unretained(this)));
237 base::Unretained(this)));
238 RunPendingTasks(); 229 RunPendingTasks();
239 } 230 }
240 231
241 bool IsRendererInitialized() const { 232 bool IsRendererInitialized() const {
242 return remote_renderer_impl_->state_ == RemoteRendererImpl::STATE_PLAYING; 233 return remote_renderer_impl_->state_ == CourierRenderer::STATE_PLAYING;
243 } 234 }
244 235
245 void OnReceivedRpc(std::unique_ptr<remoting::pb::RpcMessage> message) { 236 void OnReceivedRpc(std::unique_ptr<pb::RpcMessage> message) {
246 remote_renderer_impl_->OnReceivedRpc(std::move(message)); 237 remote_renderer_impl_->OnReceivedRpc(std::move(message));
247 } 238 }
248 239
249 void SetUp() override { 240 void SetUp() override {
250 // Creates RemotingRendererController. 241 // Creates UserExperienceController.
251 remoting_renderer_controller_ = 242 controller_ = base::MakeUnique<UserExperienceController>(
252 base::MakeUnique<RemotingRendererController>( 243 FakeRemoterFactory::CreateSharedSession(false));
253 CreateRemotingSourceImpl(false)); 244 controller_->OnMetadataChanged(DefaultMetadata());
254 remoting_renderer_controller_->OnMetadataChanged(DefaultMetadata());
255 245
256 // Redirect RPC message to RemoteRendererImplTest::OnSendMessageToSink(). 246 // Redirect RPC message to CourierRendererTest::OnSendMessageToSink().
257 remoting_renderer_controller_->GetRpcBroker()->SetMessageCallbackForTesting( 247 controller_->GetRpcBroker()->SetMessageCallbackForTesting(base::Bind(
258 base::Bind(&RemoteRendererImplTest::OnSendMessageToSink, 248 &CourierRendererTest::OnSendMessageToSink, base::Unretained(this)));
259 base::Unretained(this)));
260 249
261 // Creates RemoteRendererImpl. 250 // Creates CourierRenderer.
262 remote_renderer_impl_.reset(new RemoteRendererImpl( 251 remote_renderer_impl_.reset(
263 base::ThreadTaskRunnerHandle::Get(), 252 new CourierRenderer(base::ThreadTaskRunnerHandle::Get(),
264 remoting_renderer_controller_->GetWeakPtr(), nullptr)); 253 controller_->GetWeakPtr(), nullptr));
265 RunPendingTasks(); 254 RunPendingTasks();
266 } 255 }
267 256
268 RemoteRendererImpl::State state() const { 257 CourierRenderer::State state() const { return remote_renderer_impl_->state_; }
269 return remote_renderer_impl_->state_;
270 }
271 258
272 void RunPendingTasks() { base::RunLoop().RunUntilIdle(); } 259 void RunPendingTasks() { base::RunLoop().RunUntilIdle(); }
273 260
274 // Gets first available RpcMessage with specific |proc|. 261 // Gets first available RpcMessage with specific |proc|.
275 const remoting::pb::RpcMessage* PeekRpcMessage(int proc) const { 262 const pb::RpcMessage* PeekRpcMessage(int proc) const {
276 for (auto& s : received_rpc_) { 263 for (auto& s : received_rpc_) {
277 if (proc == s->proc()) 264 if (proc == s->proc())
278 return s.get(); 265 return s.get();
279 } 266 }
280 return nullptr; 267 return nullptr;
281 } 268 }
282 int ReceivedRpcMessageCount() const { return received_rpc_.size(); } 269 int ReceivedRpcMessageCount() const { return received_rpc_.size(); }
283 void ResetReceivedRpcMessage() { received_rpc_.clear(); } 270 void ResetReceivedRpcMessage() { received_rpc_.clear(); }
284 271
285 void ValidateCurrentTime(base::TimeDelta current, 272 void ValidateCurrentTime(base::TimeDelta current,
286 base::TimeDelta current_max) const { 273 base::TimeDelta current_max) const {
287 ASSERT_EQ(remote_renderer_impl_->current_media_time_, current); 274 ASSERT_EQ(remote_renderer_impl_->current_media_time_, current);
288 ASSERT_EQ(remote_renderer_impl_->current_max_time_, current_max); 275 ASSERT_EQ(remote_renderer_impl_->current_max_time_, current_max);
289 } 276 }
290 277
291 base::MessageLoop message_loop_; 278 base::MessageLoop message_loop_;
292 std::unique_ptr<RemotingRendererController> remoting_renderer_controller_; 279 std::unique_ptr<UserExperienceController> controller_;
293 std::unique_ptr<RendererClientImpl> render_client_; 280 std::unique_ptr<RendererClientImpl> render_client_;
294 std::unique_ptr<FakeRemotingDemuxerStreamProvider> demuxer_stream_provider_; 281 std::unique_ptr<FakeDemuxerStreamProvider> demuxer_stream_provider_;
295 std::unique_ptr<RemoteRendererImpl> remote_renderer_impl_; 282 std::unique_ptr<CourierRenderer> remote_renderer_impl_;
296 283
297 // RPC handles. 284 // RPC handles.
298 const int receiver_renderer_handle_; 285 const int receiver_renderer_handle_;
299 const int receiver_audio_demuxer_callback_handle_; 286 const int receiver_audio_demuxer_callback_handle_;
300 const int receiver_video_demuxer_callback_handle_; 287 const int receiver_video_demuxer_callback_handle_;
301 int sender_client_handle_; 288 int sender_client_handle_;
302 int sender_renderer_callback_handle_; 289 int sender_renderer_callback_handle_;
303 int sender_audio_demuxer_handle_; 290 int sender_audio_demuxer_handle_;
304 int sender_video_demuxer_handle_; 291 int sender_video_demuxer_handle_;
305 292
306 // flag to indicate if RPC_DS_INITIALIZE_CALLBACK RPC messages are received. 293 // flag to indicate if RPC_DS_INITIALIZE_CALLBACK RPC messages are received.
307 bool received_audio_ds_init_cb_; 294 bool received_audio_ds_init_cb_;
308 bool received_video_ds_init_cb_; 295 bool received_video_ds_init_cb_;
309 296
310 // Check if |remote_renderer_impl_| is initialized successfully or not. 297 // Check if |remote_renderer_impl_| is initialized successfully or not.
311 bool renderer_initialized_; 298 bool renderer_initialized_;
312 299
313 // vector to store received RPC message with proc value 300 // vector to store received RPC message with proc value
314 std::vector<std::unique_ptr<remoting::pb::RpcMessage>> received_rpc_; 301 std::vector<std::unique_ptr<pb::RpcMessage>> received_rpc_;
315 302
316 private: 303 private:
317 DISALLOW_COPY_AND_ASSIGN(RemoteRendererImplTest); 304 DISALLOW_COPY_AND_ASSIGN(CourierRendererTest);
318 }; 305 };
319 306
320 TEST_F(RemoteRendererImplTest, Initialize) { 307 TEST_F(CourierRendererTest, Initialize) {
321 InitializeRenderer(); 308 InitializeRenderer();
322 RunPendingTasks(); 309 RunPendingTasks();
323 310
324 ASSERT_TRUE(IsRendererInitialized()); 311 ASSERT_TRUE(IsRendererInitialized());
325 ASSERT_EQ(render_client_->status(), PIPELINE_OK); 312 ASSERT_EQ(render_client_->status(), PIPELINE_OK);
326 } 313 }
327 314
328 TEST_F(RemoteRendererImplTest, Flush) { 315 TEST_F(CourierRendererTest, Flush) {
329 // Initialize Renderer. 316 // Initialize Renderer.
330 InitializeRenderer(); 317 InitializeRenderer();
331 RunPendingTasks(); 318 RunPendingTasks();
332 ASSERT_TRUE(IsRendererInitialized()); 319 ASSERT_TRUE(IsRendererInitialized());
333 ASSERT_EQ(render_client_->status(), PIPELINE_OK); 320 ASSERT_EQ(render_client_->status(), PIPELINE_OK);
334 321
335 // Flush Renderer. 322 // Flush Renderer.
336 // Redirect RPC message for simulate receiver scenario 323 // Redirect RPC message for simulate receiver scenario
337 remoting_renderer_controller_->GetRpcBroker()->SetMessageCallbackForTesting( 324 controller_->GetRpcBroker()->SetMessageCallbackForTesting(base::Bind(
338 base::Bind(&RemoteRendererImplTest::RpcMessageResponseBot, 325 &CourierRendererTest::RpcMessageResponseBot, base::Unretained(this)));
339 base::Unretained(this)));
340 RunPendingTasks(); 326 RunPendingTasks();
341 EXPECT_CALL(*render_client_, OnFlushCallback()).Times(1); 327 EXPECT_CALL(*render_client_, OnFlushCallback()).Times(1);
342 remote_renderer_impl_->Flush( 328 remote_renderer_impl_->Flush(
343 base::Bind(&RendererClientImpl::OnFlushCallback, 329 base::Bind(&RendererClientImpl::OnFlushCallback,
344 base::Unretained(render_client_.get()))); 330 base::Unretained(render_client_.get())));
345 RunPendingTasks(); 331 RunPendingTasks();
346 } 332 }
347 333
348 TEST_F(RemoteRendererImplTest, StartPlayingFrom) { 334 TEST_F(CourierRendererTest, StartPlayingFrom) {
349 // Initialize Renderer 335 // Initialize Renderer
350 InitializeRenderer(); 336 InitializeRenderer();
351 RunPendingTasks(); 337 RunPendingTasks();
352 ASSERT_TRUE(IsRendererInitialized()); 338 ASSERT_TRUE(IsRendererInitialized());
353 ASSERT_EQ(render_client_->status(), PIPELINE_OK); 339 ASSERT_EQ(render_client_->status(), PIPELINE_OK);
354 340
355 // StartPlaying from 341 // StartPlaying from
356 base::TimeDelta seek = base::TimeDelta::FromMicroseconds(100); 342 base::TimeDelta seek = base::TimeDelta::FromMicroseconds(100);
357 remote_renderer_impl_->StartPlayingFrom(seek); 343 remote_renderer_impl_->StartPlayingFrom(seek);
358 RunPendingTasks(); 344 RunPendingTasks();
359 345
360 // Checks if it sends out RPC message with correct value. 346 // Checks if it sends out RPC message with correct value.
361 ASSERT_EQ(1, ReceivedRpcMessageCount()); 347 ASSERT_EQ(1, ReceivedRpcMessageCount());
362 const remoting::pb::RpcMessage* rpc = 348 const pb::RpcMessage* rpc =
363 PeekRpcMessage(remoting::pb::RpcMessage::RPC_R_STARTPLAYINGFROM); 349 PeekRpcMessage(pb::RpcMessage::RPC_R_STARTPLAYINGFROM);
364 ASSERT_TRUE(rpc); 350 ASSERT_TRUE(rpc);
365 ASSERT_EQ(rpc->integer64_value(), 100); 351 ASSERT_EQ(rpc->integer64_value(), 100);
366 } 352 }
367 353
368 TEST_F(RemoteRendererImplTest, SetVolume) { 354 TEST_F(CourierRendererTest, SetVolume) {
369 // Initialize Renderer because, as of this writing, the pipeline guarantees it 355 // Initialize Renderer because, as of this writing, the pipeline guarantees it
370 // will not call SetVolume() until after the media::Renderer is initialized. 356 // will not call SetVolume() until after the media::Renderer is initialized.
371 InitializeRenderer(); 357 InitializeRenderer();
372 RunPendingTasks(); 358 RunPendingTasks();
373 ASSERT_EQ(0, ReceivedRpcMessageCount()); 359 ASSERT_EQ(0, ReceivedRpcMessageCount());
374 360
375 // SetVolume() will send remoting::pb::RpcMessage::RPC_R_SETVOLUME RPC. 361 // SetVolume() will send pb::RpcMessage::RPC_R_SETVOLUME RPC.
376 remote_renderer_impl_->SetVolume(3.0); 362 remote_renderer_impl_->SetVolume(3.0);
377 RunPendingTasks(); 363 RunPendingTasks();
378 364
379 // Checks if it sends out RPC message with correct value. 365 // Checks if it sends out RPC message with correct value.
380 ASSERT_EQ(1, ReceivedRpcMessageCount()); 366 ASSERT_EQ(1, ReceivedRpcMessageCount());
381 const remoting::pb::RpcMessage* rpc = 367 const pb::RpcMessage* rpc = PeekRpcMessage(pb::RpcMessage::RPC_R_SETVOLUME);
382 PeekRpcMessage(remoting::pb::RpcMessage::RPC_R_SETVOLUME);
383 ASSERT_TRUE(rpc); 368 ASSERT_TRUE(rpc);
384 ASSERT_TRUE(rpc->double_value() == 3.0); 369 ASSERT_TRUE(rpc->double_value() == 3.0);
385 } 370 }
386 371
387 TEST_F(RemoteRendererImplTest, SetPlaybackRate) { 372 TEST_F(CourierRendererTest, SetPlaybackRate) {
388 // Initialize Renderer because, as of this writing, the pipeline guarantees it 373 // Initialize Renderer because, as of this writing, the pipeline guarantees it
389 // will not call SetPlaybackRate() until after the media::Renderer is 374 // will not call SetPlaybackRate() until after the media::Renderer is
390 // initialized. 375 // initialized.
391 InitializeRenderer(); 376 InitializeRenderer();
392 RunPendingTasks(); 377 RunPendingTasks();
393 ASSERT_EQ(0, ReceivedRpcMessageCount()); 378 ASSERT_EQ(0, ReceivedRpcMessageCount());
394 379
395 remoting_renderer_controller_->GetRpcBroker()->SetMessageCallbackForTesting( 380 controller_->GetRpcBroker()->SetMessageCallbackForTesting(base::Bind(
396 base::Bind(&RemoteRendererImplTest::OnSendMessageToSink, 381 &CourierRendererTest::OnSendMessageToSink, base::Unretained(this)));
397 base::Unretained(this)));
398 remote_renderer_impl_->SetPlaybackRate(2.5); 382 remote_renderer_impl_->SetPlaybackRate(2.5);
399 RunPendingTasks(); 383 RunPendingTasks();
400 ASSERT_EQ(1, ReceivedRpcMessageCount()); 384 ASSERT_EQ(1, ReceivedRpcMessageCount());
401 // Checks if it sends out RPC message with correct value. 385 // Checks if it sends out RPC message with correct value.
402 const remoting::pb::RpcMessage* rpc = 386 const pb::RpcMessage* rpc =
403 PeekRpcMessage(remoting::pb::RpcMessage::RPC_R_SETPLAYBACKRATE); 387 PeekRpcMessage(pb::RpcMessage::RPC_R_SETPLAYBACKRATE);
404 ASSERT_TRUE(rpc); 388 ASSERT_TRUE(rpc);
405 ASSERT_TRUE(rpc->double_value() == 2.5); 389 ASSERT_TRUE(rpc->double_value() == 2.5);
406 } 390 }
407 391
408 TEST_F(RemoteRendererImplTest, OnTimeUpdate) { 392 TEST_F(CourierRendererTest, OnTimeUpdate) {
409 // Issues RPC_RC_ONTIMEUPDATE RPC message. 393 // Issues RPC_RC_ONTIMEUPDATE RPC message.
410 base::TimeDelta media_time = base::TimeDelta::FromMicroseconds(100); 394 base::TimeDelta media_time = base::TimeDelta::FromMicroseconds(100);
411 base::TimeDelta max_media_time = base::TimeDelta::FromMicroseconds(500); 395 base::TimeDelta max_media_time = base::TimeDelta::FromMicroseconds(500);
412 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage()); 396 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
413 rpc->set_handle(5); 397 rpc->set_handle(5);
414 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONTIMEUPDATE); 398 rpc->set_proc(pb::RpcMessage::RPC_RC_ONTIMEUPDATE);
415 auto* time_message = rpc->mutable_rendererclient_ontimeupdate_rpc(); 399 auto* time_message = rpc->mutable_rendererclient_ontimeupdate_rpc();
416 time_message->set_time_usec(media_time.InMicroseconds()); 400 time_message->set_time_usec(media_time.InMicroseconds());
417 time_message->set_max_time_usec(max_media_time.InMicroseconds()); 401 time_message->set_max_time_usec(max_media_time.InMicroseconds());
418 OnReceivedRpc(std::move(rpc)); 402 OnReceivedRpc(std::move(rpc));
419 ValidateCurrentTime(media_time, max_media_time); 403 ValidateCurrentTime(media_time, max_media_time);
420 404
421 // Issues RPC_RC_ONTIMEUPDATE RPC message with invalid time 405 // Issues RPC_RC_ONTIMEUPDATE RPC message with invalid time
422 base::TimeDelta media_time2 = base::TimeDelta::FromMicroseconds(-100); 406 base::TimeDelta media_time2 = base::TimeDelta::FromMicroseconds(-100);
423 base::TimeDelta max_media_time2 = base::TimeDelta::FromMicroseconds(500); 407 base::TimeDelta max_media_time2 = base::TimeDelta::FromMicroseconds(500);
424 std::unique_ptr<remoting::pb::RpcMessage> rpc2( 408 std::unique_ptr<pb::RpcMessage> rpc2(new pb::RpcMessage());
425 new remoting::pb::RpcMessage());
426 rpc2->set_handle(5); 409 rpc2->set_handle(5);
427 rpc2->set_proc(remoting::pb::RpcMessage::RPC_RC_ONTIMEUPDATE); 410 rpc2->set_proc(pb::RpcMessage::RPC_RC_ONTIMEUPDATE);
428 auto* time_message2 = rpc2->mutable_rendererclient_ontimeupdate_rpc(); 411 auto* time_message2 = rpc2->mutable_rendererclient_ontimeupdate_rpc();
429 time_message2->set_time_usec(media_time2.InMicroseconds()); 412 time_message2->set_time_usec(media_time2.InMicroseconds());
430 time_message2->set_max_time_usec(max_media_time2.InMicroseconds()); 413 time_message2->set_max_time_usec(max_media_time2.InMicroseconds());
431 OnReceivedRpc(std::move(rpc2)); 414 OnReceivedRpc(std::move(rpc2));
432 // Because of invalid value, the time will not be updated and remain the same. 415 // Because of invalid value, the time will not be updated and remain the same.
433 ValidateCurrentTime(media_time, max_media_time); 416 ValidateCurrentTime(media_time, max_media_time);
434 } 417 }
435 418
436 TEST_F(RemoteRendererImplTest, OnBufferingStateChange) { 419 TEST_F(CourierRendererTest, OnBufferingStateChange) {
437 InitializeRenderer(); 420 InitializeRenderer();
438 // Issues RPC_RC_ONBUFFERINGSTATECHANGE RPC message. 421 // Issues RPC_RC_ONBUFFERINGSTATECHANGE RPC message.
439 EXPECT_CALL(*render_client_, 422 EXPECT_CALL(*render_client_, OnBufferingStateChange(BUFFERING_HAVE_NOTHING))
440 OnBufferingStateChange(media::BUFFERING_HAVE_NOTHING))
441 .Times(1); 423 .Times(1);
442 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage()); 424 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
443 rpc->set_handle(5); 425 rpc->set_handle(5);
444 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONBUFFERINGSTATECHANGE); 426 rpc->set_proc(pb::RpcMessage::RPC_RC_ONBUFFERINGSTATECHANGE);
445 auto* buffering_state = 427 auto* buffering_state =
446 rpc->mutable_rendererclient_onbufferingstatechange_rpc(); 428 rpc->mutable_rendererclient_onbufferingstatechange_rpc();
447 buffering_state->set_state( 429 buffering_state->set_state(
448 remoting::pb::RendererClientOnBufferingStateChange:: 430 pb::RendererClientOnBufferingStateChange::BUFFERING_HAVE_NOTHING);
449 BUFFERING_HAVE_NOTHING);
450 OnReceivedRpc(std::move(rpc)); 431 OnReceivedRpc(std::move(rpc));
451 RunPendingTasks(); 432 RunPendingTasks();
452 } 433 }
453 434
454 TEST_F(RemoteRendererImplTest, OnVideoNaturalSizeChange) { 435 TEST_F(CourierRendererTest, OnVideoNaturalSizeChange) {
455 InitializeRenderer(); 436 InitializeRenderer();
456 // Makes sure initial value of video natural size is not set to 437 // Makes sure initial value of video natural size is not set to
457 // gfx::Size(100, 200). 438 // gfx::Size(100, 200).
458 ASSERT_NE(render_client_->size().width(), 100); 439 ASSERT_NE(render_client_->size().width(), 100);
459 ASSERT_NE(render_client_->size().height(), 200); 440 ASSERT_NE(render_client_->size().height(), 200);
460 // Issues RPC_RC_ONVIDEONATURALSIZECHANGE RPC message. 441 // Issues RPC_RC_ONVIDEONATURALSIZECHANGE RPC message.
461 EXPECT_CALL(*render_client_, OnVideoNaturalSizeChange(gfx::Size(100, 200))) 442 EXPECT_CALL(*render_client_, OnVideoNaturalSizeChange(gfx::Size(100, 200)))
462 .Times(1); 443 .Times(1);
463 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage()); 444 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
464 rpc->set_handle(5); 445 rpc->set_handle(5);
465 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONVIDEONATURALSIZECHANGE); 446 rpc->set_proc(pb::RpcMessage::RPC_RC_ONVIDEONATURALSIZECHANGE);
466 auto* size_message = 447 auto* size_message =
467 rpc->mutable_rendererclient_onvideonatualsizechange_rpc(); 448 rpc->mutable_rendererclient_onvideonatualsizechange_rpc();
468 size_message->set_width(100); 449 size_message->set_width(100);
469 size_message->set_height(200); 450 size_message->set_height(200);
470 OnReceivedRpc(std::move(rpc)); 451 OnReceivedRpc(std::move(rpc));
471 RunPendingTasks(); 452 RunPendingTasks();
472 ASSERT_EQ(render_client_->size().width(), 100); 453 ASSERT_EQ(render_client_->size().width(), 100);
473 ASSERT_EQ(render_client_->size().height(), 200); 454 ASSERT_EQ(render_client_->size().height(), 200);
474 } 455 }
475 456
476 TEST_F(RemoteRendererImplTest, OnVideoNaturalSizeChangeWithInvalidValue) { 457 TEST_F(CourierRendererTest, OnVideoNaturalSizeChangeWithInvalidValue) {
477 InitializeRenderer(); 458 InitializeRenderer();
478 // Issues RPC_RC_ONVIDEONATURALSIZECHANGE RPC message. 459 // Issues RPC_RC_ONVIDEONATURALSIZECHANGE RPC message.
479 EXPECT_CALL(*render_client_, OnVideoNaturalSizeChange(_)).Times(0); 460 EXPECT_CALL(*render_client_, OnVideoNaturalSizeChange(_)).Times(0);
480 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage()); 461 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
481 rpc->set_handle(5); 462 rpc->set_handle(5);
482 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONVIDEONATURALSIZECHANGE); 463 rpc->set_proc(pb::RpcMessage::RPC_RC_ONVIDEONATURALSIZECHANGE);
483 auto* size_message = 464 auto* size_message =
484 rpc->mutable_rendererclient_onvideonatualsizechange_rpc(); 465 rpc->mutable_rendererclient_onvideonatualsizechange_rpc();
485 size_message->set_width(-100); 466 size_message->set_width(-100);
486 size_message->set_height(0); 467 size_message->set_height(0);
487 OnReceivedRpc(std::move(rpc)); 468 OnReceivedRpc(std::move(rpc));
488 RunPendingTasks(); 469 RunPendingTasks();
489 } 470 }
490 471
491 TEST_F(RemoteRendererImplTest, OnVideoOpacityChange) { 472 TEST_F(CourierRendererTest, OnVideoOpacityChange) {
492 InitializeRenderer(); 473 InitializeRenderer();
493 ASSERT_FALSE(render_client_->opaque()); 474 ASSERT_FALSE(render_client_->opaque());
494 // Issues RPC_RC_ONVIDEOOPACITYCHANGE RPC message. 475 // Issues RPC_RC_ONVIDEOOPACITYCHANGE RPC message.
495 EXPECT_CALL(*render_client_, OnVideoOpacityChange(true)).Times(1); 476 EXPECT_CALL(*render_client_, OnVideoOpacityChange(true)).Times(1);
496 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage()); 477 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
497 rpc->set_handle(5); 478 rpc->set_handle(5);
498 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONVIDEOOPACITYCHANGE); 479 rpc->set_proc(pb::RpcMessage::RPC_RC_ONVIDEOOPACITYCHANGE);
499 rpc->set_boolean_value(true); 480 rpc->set_boolean_value(true);
500 OnReceivedRpc(std::move(rpc)); 481 OnReceivedRpc(std::move(rpc));
501 RunPendingTasks(); 482 RunPendingTasks();
502 ASSERT_TRUE(render_client_->opaque()); 483 ASSERT_TRUE(render_client_->opaque());
503 } 484 }
504 485
505 TEST_F(RemoteRendererImplTest, OnStatisticsUpdate) { 486 TEST_F(CourierRendererTest, OnStatisticsUpdate) {
506 InitializeRenderer(); 487 InitializeRenderer();
507 ASSERT_NE(render_client_->stats().audio_bytes_decoded, 1234U); 488 ASSERT_NE(render_client_->stats().audio_bytes_decoded, 1234U);
508 ASSERT_NE(render_client_->stats().video_bytes_decoded, 2345U); 489 ASSERT_NE(render_client_->stats().video_bytes_decoded, 2345U);
509 ASSERT_NE(render_client_->stats().video_frames_decoded, 3456U); 490 ASSERT_NE(render_client_->stats().video_frames_decoded, 3456U);
510 ASSERT_NE(render_client_->stats().video_frames_dropped, 4567U); 491 ASSERT_NE(render_client_->stats().video_frames_dropped, 4567U);
511 ASSERT_NE(render_client_->stats().audio_memory_usage, 5678); 492 ASSERT_NE(render_client_->stats().audio_memory_usage, 5678);
512 ASSERT_NE(render_client_->stats().video_memory_usage, 6789); 493 ASSERT_NE(render_client_->stats().video_memory_usage, 6789);
513 // Issues RPC_RC_ONSTATISTICSUPDATE RPC message. 494 // Issues RPC_RC_ONSTATISTICSUPDATE RPC message.
514 EXPECT_CALL(*render_client_, OnStatisticsUpdate(_)).Times(1); 495 EXPECT_CALL(*render_client_, OnStatisticsUpdate(_)).Times(1);
515 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage()); 496 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
516 rpc->set_handle(5); 497 rpc->set_handle(5);
517 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONSTATISTICSUPDATE); 498 rpc->set_proc(pb::RpcMessage::RPC_RC_ONSTATISTICSUPDATE);
518 auto* message = rpc->mutable_rendererclient_onstatisticsupdate_rpc(); 499 auto* message = rpc->mutable_rendererclient_onstatisticsupdate_rpc();
519 message->set_audio_bytes_decoded(1234U); 500 message->set_audio_bytes_decoded(1234U);
520 message->set_video_bytes_decoded(2345U); 501 message->set_video_bytes_decoded(2345U);
521 message->set_video_frames_decoded(3456U); 502 message->set_video_frames_decoded(3456U);
522 message->set_video_frames_dropped(4567U); 503 message->set_video_frames_dropped(4567U);
523 message->set_audio_memory_usage(5678); 504 message->set_audio_memory_usage(5678);
524 message->set_video_memory_usage(6789); 505 message->set_video_memory_usage(6789);
525 OnReceivedRpc(std::move(rpc)); 506 OnReceivedRpc(std::move(rpc));
526 RunPendingTasks(); 507 RunPendingTasks();
527 ASSERT_EQ(render_client_->stats().audio_bytes_decoded, 1234U); 508 ASSERT_EQ(render_client_->stats().audio_bytes_decoded, 1234U);
528 ASSERT_EQ(render_client_->stats().video_bytes_decoded, 2345U); 509 ASSERT_EQ(render_client_->stats().video_bytes_decoded, 2345U);
529 ASSERT_EQ(render_client_->stats().video_frames_decoded, 3456U); 510 ASSERT_EQ(render_client_->stats().video_frames_decoded, 3456U);
530 ASSERT_EQ(render_client_->stats().video_frames_dropped, 4567U); 511 ASSERT_EQ(render_client_->stats().video_frames_dropped, 4567U);
531 ASSERT_EQ(render_client_->stats().audio_memory_usage, 5678); 512 ASSERT_EQ(render_client_->stats().audio_memory_usage, 5678);
532 ASSERT_EQ(render_client_->stats().video_memory_usage, 6789); 513 ASSERT_EQ(render_client_->stats().video_memory_usage, 6789);
533 } 514 }
534 515
535 TEST_F(RemoteRendererImplTest, OnDurationChange) { 516 TEST_F(CourierRendererTest, OnDurationChange) {
536 InitializeRenderer(); 517 InitializeRenderer();
537 ASSERT_NE(render_client_->duration(), 518 ASSERT_NE(render_client_->duration(),
538 base::TimeDelta::FromMicroseconds(1234)); 519 base::TimeDelta::FromMicroseconds(1234));
539 // Issues RPC_RC_ONDURATIONCHANGE RPC message. 520 // Issues RPC_RC_ONDURATIONCHANGE RPC message.
540 EXPECT_CALL(*render_client_, 521 EXPECT_CALL(*render_client_,
541 OnDurationChange(base::TimeDelta::FromMicroseconds(1234))) 522 OnDurationChange(base::TimeDelta::FromMicroseconds(1234)))
542 .Times(1); 523 .Times(1);
543 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage()); 524 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
544 rpc->set_handle(5); 525 rpc->set_handle(5);
545 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONDURATIONCHANGE); 526 rpc->set_proc(pb::RpcMessage::RPC_RC_ONDURATIONCHANGE);
546 rpc->set_integer64_value(1234); 527 rpc->set_integer64_value(1234);
547 OnReceivedRpc(std::move(rpc)); 528 OnReceivedRpc(std::move(rpc));
548 RunPendingTasks(); 529 RunPendingTasks();
549 ASSERT_EQ(render_client_->duration(), 530 ASSERT_EQ(render_client_->duration(),
550 base::TimeDelta::FromMicroseconds(1234)); 531 base::TimeDelta::FromMicroseconds(1234));
551 } 532 }
552 533
553 TEST_F(RemoteRendererImplTest, OnDurationChangeWithInvalidValue) { 534 TEST_F(CourierRendererTest, OnDurationChangeWithInvalidValue) {
554 InitializeRenderer(); 535 InitializeRenderer();
555 // Issues RPC_RC_ONDURATIONCHANGE RPC message. 536 // Issues RPC_RC_ONDURATIONCHANGE RPC message.
556 EXPECT_CALL(*render_client_, OnDurationChange(_)).Times(0); 537 EXPECT_CALL(*render_client_, OnDurationChange(_)).Times(0);
557 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage()); 538 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
558 rpc->set_handle(5); 539 rpc->set_handle(5);
559 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONDURATIONCHANGE); 540 rpc->set_proc(pb::RpcMessage::RPC_RC_ONDURATIONCHANGE);
560 rpc->set_integer64_value(-345); 541 rpc->set_integer64_value(-345);
561 OnReceivedRpc(std::move(rpc)); 542 OnReceivedRpc(std::move(rpc));
562 RunPendingTasks(); 543 RunPendingTasks();
563 } 544 }
564 545
565 // TODO(xjz): Tests for detecting PACING_TOO_SLOWLY and FRAME_DROP_RATE_HIGH. 546 // TODO(xjz): Tests for detecting PACING_TOO_SLOWLY and FRAME_DROP_RATE_HIGH.
566 547
548 } // namespace remoting
567 } // namespace media 549 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698