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

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: REBASE 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/courier_renderer.cc ('k') | media/remoting/demuxer_stream_adapter.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/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/renderer_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(renderer_);
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 renderer_->Initialize(demuxer_stream_provider_.get(), render_client_.get(),
230 demuxer_stream_provider_.get(), render_client_.get(), 222 base::Bind(&RendererClientImpl::OnPipelineStatus,
231 base::Bind(&RendererClientImpl::OnPipelineStatus, 223 base::Unretained(render_client_.get())));
232 base::Unretained(render_client_.get())));
233 RunPendingTasks(); 224 RunPendingTasks();
234 // Redirect RPC message back to save for later check. 225 // Redirect RPC message back to save for later check.
235 remoting_renderer_controller_->GetRpcBroker()->SetMessageCallbackForTesting( 226 controller_->GetRpcBroker()->SetMessageCallbackForTesting(base::Bind(
236 base::Bind(&RemoteRendererImplTest::OnSendMessageToSink, 227 &CourierRendererTest::OnSendMessageToSink, base::Unretained(this)));
237 base::Unretained(this)));
238 RunPendingTasks(); 228 RunPendingTasks();
239 } 229 }
240 230
241 bool IsRendererInitialized() const { 231 bool IsRendererInitialized() const {
242 return remote_renderer_impl_->state_ == RemoteRendererImpl::STATE_PLAYING; 232 return renderer_->state_ == CourierRenderer::STATE_PLAYING;
243 } 233 }
244 234
245 void OnReceivedRpc(std::unique_ptr<remoting::pb::RpcMessage> message) { 235 void OnReceivedRpc(std::unique_ptr<pb::RpcMessage> message) {
246 remote_renderer_impl_->OnReceivedRpc(std::move(message)); 236 renderer_->OnReceivedRpc(std::move(message));
247 } 237 }
248 238
249 void SetUp() override { 239 void SetUp() override {
250 // Creates RemotingRendererController. 240 controller_ = base::MakeUnique<RendererController>(
251 remoting_renderer_controller_ = 241 FakeRemoterFactory::CreateSharedSession(false));
252 base::MakeUnique<RemotingRendererController>( 242 controller_->OnMetadataChanged(DefaultMetadata());
253 CreateRemotingSourceImpl(false));
254 remoting_renderer_controller_->OnMetadataChanged(DefaultMetadata());
255 243
256 // Redirect RPC message to RemoteRendererImplTest::OnSendMessageToSink(). 244 // Redirect RPC message to CourierRendererTest::OnSendMessageToSink().
257 remoting_renderer_controller_->GetRpcBroker()->SetMessageCallbackForTesting( 245 controller_->GetRpcBroker()->SetMessageCallbackForTesting(base::Bind(
258 base::Bind(&RemoteRendererImplTest::OnSendMessageToSink, 246 &CourierRendererTest::OnSendMessageToSink, base::Unretained(this)));
259 base::Unretained(this)));
260 247
261 // Creates RemoteRendererImpl. 248 renderer_.reset(new CourierRenderer(base::ThreadTaskRunnerHandle::Get(),
262 remote_renderer_impl_.reset(new RemoteRendererImpl( 249 controller_->GetWeakPtr(), nullptr));
263 base::ThreadTaskRunnerHandle::Get(),
264 remoting_renderer_controller_->GetWeakPtr(), nullptr));
265 RunPendingTasks(); 250 RunPendingTasks();
266 } 251 }
267 252
268 RemoteRendererImpl::State state() const { 253 CourierRenderer::State state() const { return renderer_->state_; }
269 return remote_renderer_impl_->state_;
270 }
271 254
272 void RunPendingTasks() { base::RunLoop().RunUntilIdle(); } 255 void RunPendingTasks() { base::RunLoop().RunUntilIdle(); }
273 256
274 // Gets first available RpcMessage with specific |proc|. 257 // Gets first available RpcMessage with specific |proc|.
275 const remoting::pb::RpcMessage* PeekRpcMessage(int proc) const { 258 const pb::RpcMessage* PeekRpcMessage(int proc) const {
276 for (auto& s : received_rpc_) { 259 for (auto& s : received_rpc_) {
277 if (proc == s->proc()) 260 if (proc == s->proc())
278 return s.get(); 261 return s.get();
279 } 262 }
280 return nullptr; 263 return nullptr;
281 } 264 }
282 int ReceivedRpcMessageCount() const { return received_rpc_.size(); } 265 int ReceivedRpcMessageCount() const { return received_rpc_.size(); }
283 void ResetReceivedRpcMessage() { received_rpc_.clear(); } 266 void ResetReceivedRpcMessage() { received_rpc_.clear(); }
284 267
285 void ValidateCurrentTime(base::TimeDelta current, 268 void ValidateCurrentTime(base::TimeDelta current,
286 base::TimeDelta current_max) const { 269 base::TimeDelta current_max) const {
287 ASSERT_EQ(remote_renderer_impl_->current_media_time_, current); 270 ASSERT_EQ(renderer_->current_media_time_, current);
288 ASSERT_EQ(remote_renderer_impl_->current_max_time_, current_max); 271 ASSERT_EQ(renderer_->current_max_time_, current_max);
289 } 272 }
290 273
291 base::MessageLoop message_loop_; 274 base::MessageLoop message_loop_;
292 std::unique_ptr<RemotingRendererController> remoting_renderer_controller_; 275 std::unique_ptr<RendererController> controller_;
293 std::unique_ptr<RendererClientImpl> render_client_; 276 std::unique_ptr<RendererClientImpl> render_client_;
294 std::unique_ptr<FakeRemotingDemuxerStreamProvider> demuxer_stream_provider_; 277 std::unique_ptr<FakeDemuxerStreamProvider> demuxer_stream_provider_;
295 std::unique_ptr<RemoteRendererImpl> remote_renderer_impl_; 278 std::unique_ptr<CourierRenderer> renderer_;
296 279
297 // RPC handles. 280 // RPC handles.
298 const int receiver_renderer_handle_; 281 const int receiver_renderer_handle_;
299 const int receiver_audio_demuxer_callback_handle_; 282 const int receiver_audio_demuxer_callback_handle_;
300 const int receiver_video_demuxer_callback_handle_; 283 const int receiver_video_demuxer_callback_handle_;
301 int sender_client_handle_; 284 int sender_client_handle_;
302 int sender_renderer_callback_handle_; 285 int sender_renderer_callback_handle_;
303 int sender_audio_demuxer_handle_; 286 int sender_audio_demuxer_handle_;
304 int sender_video_demuxer_handle_; 287 int sender_video_demuxer_handle_;
305 288
306 // flag to indicate if RPC_DS_INITIALIZE_CALLBACK RPC messages are received. 289 // flag to indicate if RPC_DS_INITIALIZE_CALLBACK RPC messages are received.
307 bool received_audio_ds_init_cb_; 290 bool received_audio_ds_init_cb_;
308 bool received_video_ds_init_cb_; 291 bool received_video_ds_init_cb_;
309 292
310 // Check if |remote_renderer_impl_| is initialized successfully or not. 293 // Check if |renderer_| is initialized successfully or not.
311 bool renderer_initialized_; 294 bool renderer_initialized_;
312 295
313 // vector to store received RPC message with proc value 296 // vector to store received RPC message with proc value
314 std::vector<std::unique_ptr<remoting::pb::RpcMessage>> received_rpc_; 297 std::vector<std::unique_ptr<pb::RpcMessage>> received_rpc_;
315 298
316 private: 299 private:
317 DISALLOW_COPY_AND_ASSIGN(RemoteRendererImplTest); 300 DISALLOW_COPY_AND_ASSIGN(CourierRendererTest);
318 }; 301 };
319 302
320 TEST_F(RemoteRendererImplTest, Initialize) { 303 TEST_F(CourierRendererTest, Initialize) {
321 InitializeRenderer(); 304 InitializeRenderer();
322 RunPendingTasks(); 305 RunPendingTasks();
323 306
324 ASSERT_TRUE(IsRendererInitialized()); 307 ASSERT_TRUE(IsRendererInitialized());
325 ASSERT_EQ(render_client_->status(), PIPELINE_OK); 308 ASSERT_EQ(render_client_->status(), PIPELINE_OK);
326 } 309 }
327 310
328 TEST_F(RemoteRendererImplTest, Flush) { 311 TEST_F(CourierRendererTest, Flush) {
329 // Initialize Renderer. 312 // Initialize Renderer.
330 InitializeRenderer(); 313 InitializeRenderer();
331 RunPendingTasks(); 314 RunPendingTasks();
332 ASSERT_TRUE(IsRendererInitialized()); 315 ASSERT_TRUE(IsRendererInitialized());
333 ASSERT_EQ(render_client_->status(), PIPELINE_OK); 316 ASSERT_EQ(render_client_->status(), PIPELINE_OK);
334 317
335 // Flush Renderer. 318 // Flush Renderer.
336 // Redirect RPC message for simulate receiver scenario 319 // Redirect RPC message for simulate receiver scenario
337 remoting_renderer_controller_->GetRpcBroker()->SetMessageCallbackForTesting( 320 controller_->GetRpcBroker()->SetMessageCallbackForTesting(base::Bind(
338 base::Bind(&RemoteRendererImplTest::RpcMessageResponseBot, 321 &CourierRendererTest::RpcMessageResponseBot, base::Unretained(this)));
339 base::Unretained(this)));
340 RunPendingTasks(); 322 RunPendingTasks();
341 EXPECT_CALL(*render_client_, OnFlushCallback()).Times(1); 323 EXPECT_CALL(*render_client_, OnFlushCallback()).Times(1);
342 remote_renderer_impl_->Flush( 324 renderer_->Flush(base::Bind(&RendererClientImpl::OnFlushCallback,
343 base::Bind(&RendererClientImpl::OnFlushCallback, 325 base::Unretained(render_client_.get())));
344 base::Unretained(render_client_.get())));
345 RunPendingTasks(); 326 RunPendingTasks();
346 } 327 }
347 328
348 TEST_F(RemoteRendererImplTest, StartPlayingFrom) { 329 TEST_F(CourierRendererTest, StartPlayingFrom) {
349 // Initialize Renderer 330 // Initialize Renderer
350 InitializeRenderer(); 331 InitializeRenderer();
351 RunPendingTasks(); 332 RunPendingTasks();
352 ASSERT_TRUE(IsRendererInitialized()); 333 ASSERT_TRUE(IsRendererInitialized());
353 ASSERT_EQ(render_client_->status(), PIPELINE_OK); 334 ASSERT_EQ(render_client_->status(), PIPELINE_OK);
354 335
355 // StartPlaying from 336 // StartPlaying from
356 base::TimeDelta seek = base::TimeDelta::FromMicroseconds(100); 337 base::TimeDelta seek = base::TimeDelta::FromMicroseconds(100);
357 remote_renderer_impl_->StartPlayingFrom(seek); 338 renderer_->StartPlayingFrom(seek);
358 RunPendingTasks(); 339 RunPendingTasks();
359 340
360 // Checks if it sends out RPC message with correct value. 341 // Checks if it sends out RPC message with correct value.
361 ASSERT_EQ(1, ReceivedRpcMessageCount()); 342 ASSERT_EQ(1, ReceivedRpcMessageCount());
362 const remoting::pb::RpcMessage* rpc = 343 const pb::RpcMessage* rpc =
363 PeekRpcMessage(remoting::pb::RpcMessage::RPC_R_STARTPLAYINGFROM); 344 PeekRpcMessage(pb::RpcMessage::RPC_R_STARTPLAYINGFROM);
364 ASSERT_TRUE(rpc); 345 ASSERT_TRUE(rpc);
365 ASSERT_EQ(rpc->integer64_value(), 100); 346 ASSERT_EQ(rpc->integer64_value(), 100);
366 } 347 }
367 348
368 TEST_F(RemoteRendererImplTest, SetVolume) { 349 TEST_F(CourierRendererTest, SetVolume) {
369 // Initialize Renderer because, as of this writing, the pipeline guarantees it 350 // Initialize Renderer because, as of this writing, the pipeline guarantees it
370 // will not call SetVolume() until after the media::Renderer is initialized. 351 // will not call SetVolume() until after the media::Renderer is initialized.
371 InitializeRenderer(); 352 InitializeRenderer();
372 RunPendingTasks(); 353 RunPendingTasks();
373 ASSERT_EQ(0, ReceivedRpcMessageCount()); 354 ASSERT_EQ(0, ReceivedRpcMessageCount());
374 355
375 // SetVolume() will send remoting::pb::RpcMessage::RPC_R_SETVOLUME RPC. 356 // SetVolume() will send pb::RpcMessage::RPC_R_SETVOLUME RPC.
376 remote_renderer_impl_->SetVolume(3.0); 357 renderer_->SetVolume(3.0);
377 RunPendingTasks(); 358 RunPendingTasks();
378 359
379 // Checks if it sends out RPC message with correct value. 360 // Checks if it sends out RPC message with correct value.
380 ASSERT_EQ(1, ReceivedRpcMessageCount()); 361 ASSERT_EQ(1, ReceivedRpcMessageCount());
381 const remoting::pb::RpcMessage* rpc = 362 const pb::RpcMessage* rpc = PeekRpcMessage(pb::RpcMessage::RPC_R_SETVOLUME);
382 PeekRpcMessage(remoting::pb::RpcMessage::RPC_R_SETVOLUME);
383 ASSERT_TRUE(rpc); 363 ASSERT_TRUE(rpc);
384 ASSERT_TRUE(rpc->double_value() == 3.0); 364 ASSERT_TRUE(rpc->double_value() == 3.0);
385 } 365 }
386 366
387 TEST_F(RemoteRendererImplTest, SetPlaybackRate) { 367 TEST_F(CourierRendererTest, SetPlaybackRate) {
388 // Initialize Renderer because, as of this writing, the pipeline guarantees it 368 // Initialize Renderer because, as of this writing, the pipeline guarantees it
389 // will not call SetPlaybackRate() until after the media::Renderer is 369 // will not call SetPlaybackRate() until after the media::Renderer is
390 // initialized. 370 // initialized.
391 InitializeRenderer(); 371 InitializeRenderer();
392 RunPendingTasks(); 372 RunPendingTasks();
393 ASSERT_EQ(0, ReceivedRpcMessageCount()); 373 ASSERT_EQ(0, ReceivedRpcMessageCount());
394 374
395 remoting_renderer_controller_->GetRpcBroker()->SetMessageCallbackForTesting( 375 controller_->GetRpcBroker()->SetMessageCallbackForTesting(base::Bind(
396 base::Bind(&RemoteRendererImplTest::OnSendMessageToSink, 376 &CourierRendererTest::OnSendMessageToSink, base::Unretained(this)));
397 base::Unretained(this))); 377 renderer_->SetPlaybackRate(2.5);
398 remote_renderer_impl_->SetPlaybackRate(2.5);
399 RunPendingTasks(); 378 RunPendingTasks();
400 ASSERT_EQ(1, ReceivedRpcMessageCount()); 379 ASSERT_EQ(1, ReceivedRpcMessageCount());
401 // Checks if it sends out RPC message with correct value. 380 // Checks if it sends out RPC message with correct value.
402 const remoting::pb::RpcMessage* rpc = 381 const pb::RpcMessage* rpc =
403 PeekRpcMessage(remoting::pb::RpcMessage::RPC_R_SETPLAYBACKRATE); 382 PeekRpcMessage(pb::RpcMessage::RPC_R_SETPLAYBACKRATE);
404 ASSERT_TRUE(rpc); 383 ASSERT_TRUE(rpc);
405 ASSERT_TRUE(rpc->double_value() == 2.5); 384 ASSERT_TRUE(rpc->double_value() == 2.5);
406 } 385 }
407 386
408 TEST_F(RemoteRendererImplTest, OnTimeUpdate) { 387 TEST_F(CourierRendererTest, OnTimeUpdate) {
409 // Issues RPC_RC_ONTIMEUPDATE RPC message. 388 // Issues RPC_RC_ONTIMEUPDATE RPC message.
410 base::TimeDelta media_time = base::TimeDelta::FromMicroseconds(100); 389 base::TimeDelta media_time = base::TimeDelta::FromMicroseconds(100);
411 base::TimeDelta max_media_time = base::TimeDelta::FromMicroseconds(500); 390 base::TimeDelta max_media_time = base::TimeDelta::FromMicroseconds(500);
412 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage()); 391 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
413 rpc->set_handle(5); 392 rpc->set_handle(5);
414 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONTIMEUPDATE); 393 rpc->set_proc(pb::RpcMessage::RPC_RC_ONTIMEUPDATE);
415 auto* time_message = rpc->mutable_rendererclient_ontimeupdate_rpc(); 394 auto* time_message = rpc->mutable_rendererclient_ontimeupdate_rpc();
416 time_message->set_time_usec(media_time.InMicroseconds()); 395 time_message->set_time_usec(media_time.InMicroseconds());
417 time_message->set_max_time_usec(max_media_time.InMicroseconds()); 396 time_message->set_max_time_usec(max_media_time.InMicroseconds());
418 OnReceivedRpc(std::move(rpc)); 397 OnReceivedRpc(std::move(rpc));
419 ValidateCurrentTime(media_time, max_media_time); 398 ValidateCurrentTime(media_time, max_media_time);
420 399
421 // Issues RPC_RC_ONTIMEUPDATE RPC message with invalid time 400 // Issues RPC_RC_ONTIMEUPDATE RPC message with invalid time
422 base::TimeDelta media_time2 = base::TimeDelta::FromMicroseconds(-100); 401 base::TimeDelta media_time2 = base::TimeDelta::FromMicroseconds(-100);
423 base::TimeDelta max_media_time2 = base::TimeDelta::FromMicroseconds(500); 402 base::TimeDelta max_media_time2 = base::TimeDelta::FromMicroseconds(500);
424 std::unique_ptr<remoting::pb::RpcMessage> rpc2( 403 std::unique_ptr<pb::RpcMessage> rpc2(new pb::RpcMessage());
425 new remoting::pb::RpcMessage());
426 rpc2->set_handle(5); 404 rpc2->set_handle(5);
427 rpc2->set_proc(remoting::pb::RpcMessage::RPC_RC_ONTIMEUPDATE); 405 rpc2->set_proc(pb::RpcMessage::RPC_RC_ONTIMEUPDATE);
428 auto* time_message2 = rpc2->mutable_rendererclient_ontimeupdate_rpc(); 406 auto* time_message2 = rpc2->mutable_rendererclient_ontimeupdate_rpc();
429 time_message2->set_time_usec(media_time2.InMicroseconds()); 407 time_message2->set_time_usec(media_time2.InMicroseconds());
430 time_message2->set_max_time_usec(max_media_time2.InMicroseconds()); 408 time_message2->set_max_time_usec(max_media_time2.InMicroseconds());
431 OnReceivedRpc(std::move(rpc2)); 409 OnReceivedRpc(std::move(rpc2));
432 // Because of invalid value, the time will not be updated and remain the same. 410 // Because of invalid value, the time will not be updated and remain the same.
433 ValidateCurrentTime(media_time, max_media_time); 411 ValidateCurrentTime(media_time, max_media_time);
434 } 412 }
435 413
436 TEST_F(RemoteRendererImplTest, OnBufferingStateChange) { 414 TEST_F(CourierRendererTest, OnBufferingStateChange) {
437 InitializeRenderer(); 415 InitializeRenderer();
438 // Issues RPC_RC_ONBUFFERINGSTATECHANGE RPC message. 416 // Issues RPC_RC_ONBUFFERINGSTATECHANGE RPC message.
439 EXPECT_CALL(*render_client_, 417 EXPECT_CALL(*render_client_, OnBufferingStateChange(BUFFERING_HAVE_NOTHING))
440 OnBufferingStateChange(media::BUFFERING_HAVE_NOTHING))
441 .Times(1); 418 .Times(1);
442 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage()); 419 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
443 rpc->set_handle(5); 420 rpc->set_handle(5);
444 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONBUFFERINGSTATECHANGE); 421 rpc->set_proc(pb::RpcMessage::RPC_RC_ONBUFFERINGSTATECHANGE);
445 auto* buffering_state = 422 auto* buffering_state =
446 rpc->mutable_rendererclient_onbufferingstatechange_rpc(); 423 rpc->mutable_rendererclient_onbufferingstatechange_rpc();
447 buffering_state->set_state( 424 buffering_state->set_state(
448 remoting::pb::RendererClientOnBufferingStateChange:: 425 pb::RendererClientOnBufferingStateChange::BUFFERING_HAVE_NOTHING);
449 BUFFERING_HAVE_NOTHING);
450 OnReceivedRpc(std::move(rpc)); 426 OnReceivedRpc(std::move(rpc));
451 RunPendingTasks(); 427 RunPendingTasks();
452 } 428 }
453 429
454 TEST_F(RemoteRendererImplTest, OnVideoNaturalSizeChange) { 430 TEST_F(CourierRendererTest, OnVideoNaturalSizeChange) {
455 InitializeRenderer(); 431 InitializeRenderer();
456 // Makes sure initial value of video natural size is not set to 432 // Makes sure initial value of video natural size is not set to
457 // gfx::Size(100, 200). 433 // gfx::Size(100, 200).
458 ASSERT_NE(render_client_->size().width(), 100); 434 ASSERT_NE(render_client_->size().width(), 100);
459 ASSERT_NE(render_client_->size().height(), 200); 435 ASSERT_NE(render_client_->size().height(), 200);
460 // Issues RPC_RC_ONVIDEONATURALSIZECHANGE RPC message. 436 // Issues RPC_RC_ONVIDEONATURALSIZECHANGE RPC message.
461 EXPECT_CALL(*render_client_, OnVideoNaturalSizeChange(gfx::Size(100, 200))) 437 EXPECT_CALL(*render_client_, OnVideoNaturalSizeChange(gfx::Size(100, 200)))
462 .Times(1); 438 .Times(1);
463 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage()); 439 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
464 rpc->set_handle(5); 440 rpc->set_handle(5);
465 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONVIDEONATURALSIZECHANGE); 441 rpc->set_proc(pb::RpcMessage::RPC_RC_ONVIDEONATURALSIZECHANGE);
466 auto* size_message = 442 auto* size_message =
467 rpc->mutable_rendererclient_onvideonatualsizechange_rpc(); 443 rpc->mutable_rendererclient_onvideonatualsizechange_rpc();
468 size_message->set_width(100); 444 size_message->set_width(100);
469 size_message->set_height(200); 445 size_message->set_height(200);
470 OnReceivedRpc(std::move(rpc)); 446 OnReceivedRpc(std::move(rpc));
471 RunPendingTasks(); 447 RunPendingTasks();
472 ASSERT_EQ(render_client_->size().width(), 100); 448 ASSERT_EQ(render_client_->size().width(), 100);
473 ASSERT_EQ(render_client_->size().height(), 200); 449 ASSERT_EQ(render_client_->size().height(), 200);
474 } 450 }
475 451
476 TEST_F(RemoteRendererImplTest, OnVideoNaturalSizeChangeWithInvalidValue) { 452 TEST_F(CourierRendererTest, OnVideoNaturalSizeChangeWithInvalidValue) {
477 InitializeRenderer(); 453 InitializeRenderer();
478 // Issues RPC_RC_ONVIDEONATURALSIZECHANGE RPC message. 454 // Issues RPC_RC_ONVIDEONATURALSIZECHANGE RPC message.
479 EXPECT_CALL(*render_client_, OnVideoNaturalSizeChange(_)).Times(0); 455 EXPECT_CALL(*render_client_, OnVideoNaturalSizeChange(_)).Times(0);
480 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage()); 456 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
481 rpc->set_handle(5); 457 rpc->set_handle(5);
482 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONVIDEONATURALSIZECHANGE); 458 rpc->set_proc(pb::RpcMessage::RPC_RC_ONVIDEONATURALSIZECHANGE);
483 auto* size_message = 459 auto* size_message =
484 rpc->mutable_rendererclient_onvideonatualsizechange_rpc(); 460 rpc->mutable_rendererclient_onvideonatualsizechange_rpc();
485 size_message->set_width(-100); 461 size_message->set_width(-100);
486 size_message->set_height(0); 462 size_message->set_height(0);
487 OnReceivedRpc(std::move(rpc)); 463 OnReceivedRpc(std::move(rpc));
488 RunPendingTasks(); 464 RunPendingTasks();
489 } 465 }
490 466
491 TEST_F(RemoteRendererImplTest, OnVideoOpacityChange) { 467 TEST_F(CourierRendererTest, OnVideoOpacityChange) {
492 InitializeRenderer(); 468 InitializeRenderer();
493 ASSERT_FALSE(render_client_->opaque()); 469 ASSERT_FALSE(render_client_->opaque());
494 // Issues RPC_RC_ONVIDEOOPACITYCHANGE RPC message. 470 // Issues RPC_RC_ONVIDEOOPACITYCHANGE RPC message.
495 EXPECT_CALL(*render_client_, OnVideoOpacityChange(true)).Times(1); 471 EXPECT_CALL(*render_client_, OnVideoOpacityChange(true)).Times(1);
496 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage()); 472 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
497 rpc->set_handle(5); 473 rpc->set_handle(5);
498 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONVIDEOOPACITYCHANGE); 474 rpc->set_proc(pb::RpcMessage::RPC_RC_ONVIDEOOPACITYCHANGE);
499 rpc->set_boolean_value(true); 475 rpc->set_boolean_value(true);
500 OnReceivedRpc(std::move(rpc)); 476 OnReceivedRpc(std::move(rpc));
501 RunPendingTasks(); 477 RunPendingTasks();
502 ASSERT_TRUE(render_client_->opaque()); 478 ASSERT_TRUE(render_client_->opaque());
503 } 479 }
504 480
505 TEST_F(RemoteRendererImplTest, OnStatisticsUpdate) { 481 TEST_F(CourierRendererTest, OnStatisticsUpdate) {
506 InitializeRenderer(); 482 InitializeRenderer();
507 ASSERT_NE(render_client_->stats().audio_bytes_decoded, 1234U); 483 ASSERT_NE(render_client_->stats().audio_bytes_decoded, 1234U);
508 ASSERT_NE(render_client_->stats().video_bytes_decoded, 2345U); 484 ASSERT_NE(render_client_->stats().video_bytes_decoded, 2345U);
509 ASSERT_NE(render_client_->stats().video_frames_decoded, 3456U); 485 ASSERT_NE(render_client_->stats().video_frames_decoded, 3456U);
510 ASSERT_NE(render_client_->stats().video_frames_dropped, 4567U); 486 ASSERT_NE(render_client_->stats().video_frames_dropped, 4567U);
511 ASSERT_NE(render_client_->stats().audio_memory_usage, 5678); 487 ASSERT_NE(render_client_->stats().audio_memory_usage, 5678);
512 ASSERT_NE(render_client_->stats().video_memory_usage, 6789); 488 ASSERT_NE(render_client_->stats().video_memory_usage, 6789);
513 // Issues RPC_RC_ONSTATISTICSUPDATE RPC message. 489 // Issues RPC_RC_ONSTATISTICSUPDATE RPC message.
514 EXPECT_CALL(*render_client_, OnStatisticsUpdate(_)).Times(1); 490 EXPECT_CALL(*render_client_, OnStatisticsUpdate(_)).Times(1);
515 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage()); 491 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
516 rpc->set_handle(5); 492 rpc->set_handle(5);
517 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONSTATISTICSUPDATE); 493 rpc->set_proc(pb::RpcMessage::RPC_RC_ONSTATISTICSUPDATE);
518 auto* message = rpc->mutable_rendererclient_onstatisticsupdate_rpc(); 494 auto* message = rpc->mutable_rendererclient_onstatisticsupdate_rpc();
519 message->set_audio_bytes_decoded(1234U); 495 message->set_audio_bytes_decoded(1234U);
520 message->set_video_bytes_decoded(2345U); 496 message->set_video_bytes_decoded(2345U);
521 message->set_video_frames_decoded(3456U); 497 message->set_video_frames_decoded(3456U);
522 message->set_video_frames_dropped(4567U); 498 message->set_video_frames_dropped(4567U);
523 message->set_audio_memory_usage(5678); 499 message->set_audio_memory_usage(5678);
524 message->set_video_memory_usage(6789); 500 message->set_video_memory_usage(6789);
525 OnReceivedRpc(std::move(rpc)); 501 OnReceivedRpc(std::move(rpc));
526 RunPendingTasks(); 502 RunPendingTasks();
527 ASSERT_EQ(render_client_->stats().audio_bytes_decoded, 1234U); 503 ASSERT_EQ(render_client_->stats().audio_bytes_decoded, 1234U);
528 ASSERT_EQ(render_client_->stats().video_bytes_decoded, 2345U); 504 ASSERT_EQ(render_client_->stats().video_bytes_decoded, 2345U);
529 ASSERT_EQ(render_client_->stats().video_frames_decoded, 3456U); 505 ASSERT_EQ(render_client_->stats().video_frames_decoded, 3456U);
530 ASSERT_EQ(render_client_->stats().video_frames_dropped, 4567U); 506 ASSERT_EQ(render_client_->stats().video_frames_dropped, 4567U);
531 ASSERT_EQ(render_client_->stats().audio_memory_usage, 5678); 507 ASSERT_EQ(render_client_->stats().audio_memory_usage, 5678);
532 ASSERT_EQ(render_client_->stats().video_memory_usage, 6789); 508 ASSERT_EQ(render_client_->stats().video_memory_usage, 6789);
533 } 509 }
534 510
535 TEST_F(RemoteRendererImplTest, OnDurationChange) { 511 TEST_F(CourierRendererTest, OnDurationChange) {
536 InitializeRenderer(); 512 InitializeRenderer();
537 ASSERT_NE(render_client_->duration(), 513 ASSERT_NE(render_client_->duration(),
538 base::TimeDelta::FromMicroseconds(1234)); 514 base::TimeDelta::FromMicroseconds(1234));
539 // Issues RPC_RC_ONDURATIONCHANGE RPC message. 515 // Issues RPC_RC_ONDURATIONCHANGE RPC message.
540 EXPECT_CALL(*render_client_, 516 EXPECT_CALL(*render_client_,
541 OnDurationChange(base::TimeDelta::FromMicroseconds(1234))) 517 OnDurationChange(base::TimeDelta::FromMicroseconds(1234)))
542 .Times(1); 518 .Times(1);
543 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage()); 519 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
544 rpc->set_handle(5); 520 rpc->set_handle(5);
545 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONDURATIONCHANGE); 521 rpc->set_proc(pb::RpcMessage::RPC_RC_ONDURATIONCHANGE);
546 rpc->set_integer64_value(1234); 522 rpc->set_integer64_value(1234);
547 OnReceivedRpc(std::move(rpc)); 523 OnReceivedRpc(std::move(rpc));
548 RunPendingTasks(); 524 RunPendingTasks();
549 ASSERT_EQ(render_client_->duration(), 525 ASSERT_EQ(render_client_->duration(),
550 base::TimeDelta::FromMicroseconds(1234)); 526 base::TimeDelta::FromMicroseconds(1234));
551 } 527 }
552 528
553 TEST_F(RemoteRendererImplTest, OnDurationChangeWithInvalidValue) { 529 TEST_F(CourierRendererTest, OnDurationChangeWithInvalidValue) {
554 InitializeRenderer(); 530 InitializeRenderer();
555 // Issues RPC_RC_ONDURATIONCHANGE RPC message. 531 // Issues RPC_RC_ONDURATIONCHANGE RPC message.
556 EXPECT_CALL(*render_client_, OnDurationChange(_)).Times(0); 532 EXPECT_CALL(*render_client_, OnDurationChange(_)).Times(0);
557 std::unique_ptr<remoting::pb::RpcMessage> rpc(new remoting::pb::RpcMessage()); 533 std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage());
558 rpc->set_handle(5); 534 rpc->set_handle(5);
559 rpc->set_proc(remoting::pb::RpcMessage::RPC_RC_ONDURATIONCHANGE); 535 rpc->set_proc(pb::RpcMessage::RPC_RC_ONDURATIONCHANGE);
560 rpc->set_integer64_value(-345); 536 rpc->set_integer64_value(-345);
561 OnReceivedRpc(std::move(rpc)); 537 OnReceivedRpc(std::move(rpc));
562 RunPendingTasks(); 538 RunPendingTasks();
563 } 539 }
564 540
565 // TODO(xjz): Tests for detecting PACING_TOO_SLOWLY and FRAME_DROP_RATE_HIGH. 541 // TODO(xjz): Tests for detecting PACING_TOO_SLOWLY and FRAME_DROP_RATE_HIGH.
566 542
543 } // namespace remoting
567 } // namespace media 544 } // namespace media
OLDNEW
« no previous file with comments | « media/remoting/courier_renderer.cc ('k') | media/remoting/demuxer_stream_adapter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698