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

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

Issue 2631993002: Media Remoting: UMAs to track session events and measurements. (Closed)
Patch Set: REBASE before commit 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
« no previous file with comments | « media/remoting/remote_renderer_impl.cc ('k') | media/remoting/remoting_renderer_controller.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/remote_renderer_impl.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"
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 } 281 }
282 int ReceivedRpcMessageCount() const { return received_rpc_.size(); } 282 int ReceivedRpcMessageCount() const { return received_rpc_.size(); }
283 void ResetReceivedRpcMessage() { received_rpc_.clear(); } 283 void ResetReceivedRpcMessage() { received_rpc_.clear(); }
284 284
285 void ValidateCurrentTime(base::TimeDelta current, 285 void ValidateCurrentTime(base::TimeDelta current,
286 base::TimeDelta current_max) const { 286 base::TimeDelta current_max) const {
287 ASSERT_EQ(remote_renderer_impl_->current_media_time_, current); 287 ASSERT_EQ(remote_renderer_impl_->current_media_time_, current);
288 ASSERT_EQ(remote_renderer_impl_->current_max_time_, current_max); 288 ASSERT_EQ(remote_renderer_impl_->current_max_time_, current_max);
289 } 289 }
290 290
291 base::MessageLoop message_loop_;
291 std::unique_ptr<RemotingRendererController> remoting_renderer_controller_; 292 std::unique_ptr<RemotingRendererController> remoting_renderer_controller_;
292 std::unique_ptr<RendererClientImpl> render_client_; 293 std::unique_ptr<RendererClientImpl> render_client_;
293 std::unique_ptr<FakeRemotingDemuxerStreamProvider> demuxer_stream_provider_; 294 std::unique_ptr<FakeRemotingDemuxerStreamProvider> demuxer_stream_provider_;
294 std::unique_ptr<RemoteRendererImpl> remote_renderer_impl_; 295 std::unique_ptr<RemoteRendererImpl> remote_renderer_impl_;
295 base::MessageLoop message_loop_;
296 296
297 // RPC handles. 297 // RPC handles.
298 const int receiver_renderer_handle_; 298 const int receiver_renderer_handle_;
299 const int receiver_audio_demuxer_callback_handle_; 299 const int receiver_audio_demuxer_callback_handle_;
300 const int receiver_video_demuxer_callback_handle_; 300 const int receiver_video_demuxer_callback_handle_;
301 int sender_client_handle_; 301 int sender_client_handle_;
302 int sender_renderer_callback_handle_; 302 int sender_renderer_callback_handle_;
303 int sender_audio_demuxer_handle_; 303 int sender_audio_demuxer_handle_;
304 int sender_video_demuxer_handle_; 304 int sender_video_demuxer_handle_;
305 305
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 RunPendingTasks(); 358 RunPendingTasks();
359 359
360 // Checks if it sends out RPC message with correct value. 360 // Checks if it sends out RPC message with correct value.
361 ASSERT_EQ(1, ReceivedRpcMessageCount()); 361 ASSERT_EQ(1, ReceivedRpcMessageCount());
362 const remoting::pb::RpcMessage* rpc = 362 const remoting::pb::RpcMessage* rpc =
363 PeekRpcMessage(remoting::pb::RpcMessage::RPC_R_STARTPLAYINGFROM); 363 PeekRpcMessage(remoting::pb::RpcMessage::RPC_R_STARTPLAYINGFROM);
364 ASSERT_TRUE(rpc); 364 ASSERT_TRUE(rpc);
365 ASSERT_EQ(rpc->integer64_value(), 100); 365 ASSERT_EQ(rpc->integer64_value(), 100);
366 } 366 }
367 367
368 // SetVolume can be called anytime without conditions.
369 TEST_F(RemoteRendererImplTest, SetVolume) { 368 TEST_F(RemoteRendererImplTest, SetVolume) {
369 // Initialize Renderer because, as of this writing, the pipeline guarantees it
370 // will not call SetVolume() until after the media::Renderer is initialized.
371 InitializeRenderer();
372 RunPendingTasks();
373 ASSERT_EQ(0, ReceivedRpcMessageCount());
374
370 // SetVolume() will send remoting::pb::RpcMessage::RPC_R_SETVOLUME RPC. 375 // SetVolume() will send remoting::pb::RpcMessage::RPC_R_SETVOLUME RPC.
371 remote_renderer_impl_->SetVolume(3.0); 376 remote_renderer_impl_->SetVolume(3.0);
372 RunPendingTasks(); 377 RunPendingTasks();
373 378
374 // Checks if it sends out RPC message with correct value. 379 // Checks if it sends out RPC message with correct value.
375 ASSERT_EQ(1, ReceivedRpcMessageCount()); 380 ASSERT_EQ(1, ReceivedRpcMessageCount());
376 const remoting::pb::RpcMessage* rpc = 381 const remoting::pb::RpcMessage* rpc =
377 PeekRpcMessage(remoting::pb::RpcMessage::RPC_R_SETVOLUME); 382 PeekRpcMessage(remoting::pb::RpcMessage::RPC_R_SETVOLUME);
378 ASSERT_TRUE(rpc); 383 ASSERT_TRUE(rpc);
379 ASSERT_TRUE(rpc->double_value() == 3.0); 384 ASSERT_TRUE(rpc->double_value() == 3.0);
380 } 385 }
381 386
382 // SetVolume can be called only when the state is playing.
383 TEST_F(RemoteRendererImplTest, SetPlaybackRate) { 387 TEST_F(RemoteRendererImplTest, SetPlaybackRate) {
384 // Without initializing renderer, SetPlaybackRate() will be no-op. 388 // Initialize Renderer because, as of this writing, the pipeline guarantees it
385 remote_renderer_impl_->SetPlaybackRate(-1.5); 389 // will not call SetPlaybackRate() until after the media::Renderer is
390 // initialized.
391 InitializeRenderer();
386 RunPendingTasks(); 392 RunPendingTasks();
387 ASSERT_EQ(0, ReceivedRpcMessageCount()); 393 ASSERT_EQ(0, ReceivedRpcMessageCount());
388 394
389 // Initialize Renderer
390 InitializeRenderer();
391 RunPendingTasks();
392
393 remoting_renderer_controller_->GetRpcBroker()->SetMessageCallbackForTesting( 395 remoting_renderer_controller_->GetRpcBroker()->SetMessageCallbackForTesting(
394 base::Bind(&RemoteRendererImplTest::OnSendMessageToSink, 396 base::Bind(&RemoteRendererImplTest::OnSendMessageToSink,
395 base::Unretained(this))); 397 base::Unretained(this)));
396 remote_renderer_impl_->SetPlaybackRate(2.5); 398 remote_renderer_impl_->SetPlaybackRate(2.5);
397 RunPendingTasks(); 399 RunPendingTasks();
398 ASSERT_EQ(1, ReceivedRpcMessageCount()); 400 ASSERT_EQ(1, ReceivedRpcMessageCount());
399 // Checks if it sends out RPC message with correct value. 401 // Checks if it sends out RPC message with correct value.
400 const remoting::pb::RpcMessage* rpc = 402 const remoting::pb::RpcMessage* rpc =
401 PeekRpcMessage(remoting::pb::RpcMessage::RPC_R_SETPLAYBACKRATE); 403 PeekRpcMessage(remoting::pb::RpcMessage::RPC_R_SETPLAYBACKRATE);
402 ASSERT_TRUE(rpc); 404 ASSERT_TRUE(rpc);
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 InitializeRenderer(); 554 InitializeRenderer();
553 // Issues RPC_RC_ONDURATIONCHANGE RPC message. 555 // Issues RPC_RC_ONDURATIONCHANGE RPC message.
554 EXPECT_CALL(*render_client_, OnDurationChange(_)).Times(0); 556 EXPECT_CALL(*render_client_, OnDurationChange(_)).Times(0);
555 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage()); 557 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage());
556 rpc->set_handle(5); 558 rpc->set_handle(5);
557 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONDURATIONCHANGE); 559 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONDURATIONCHANGE);
558 rpc->set_integer64_value(-345); 560 rpc->set_integer64_value(-345);
559 OnReceivedRpc(std::move(rpc)); 561 OnReceivedRpc(std::move(rpc));
560 RunPendingTasks(); 562 RunPendingTasks();
561 } 563 }
564
565 // TODO(xjz): Tests for detecting PACING_TOO_SLOWLY and FRAME_DROP_RATE_HIGH.
566
562 } // namespace media 567 } // namespace media
OLDNEW
« no previous file with comments | « media/remoting/remote_renderer_impl.cc ('k') | media/remoting/remoting_renderer_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698