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

Side by Side Diff: chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc

Issue 2324133003: [Media Router] Use TimeDelta in mojo interfaces (Closed)
Patch Set: Fix mojo test compile 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include <memory> 8 #include <memory>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 false); 196 false);
197 197
198 // Use a lambda function as an invocation target here to work around 198 // Use a lambda function as an invocation target here to work around
199 // a limitation with GMock::Invoke that prevents it from using move-only types 199 // a limitation with GMock::Invoke that prevents it from using move-only types
200 // in runnable parameter lists. 200 // in runnable parameter lists.
201 EXPECT_CALL(mock_media_route_provider_, 201 EXPECT_CALL(mock_media_route_provider_,
202 CreateRoute(kSource, kSinkId, _, kOrigin, kInvalidTabId, _, _, _)) 202 CreateRoute(kSource, kSinkId, _, kOrigin, kInvalidTabId, _, _, _))
203 .WillOnce(Invoke( 203 .WillOnce(Invoke(
204 [](const std::string& source, const std::string& sink, 204 [](const std::string& source, const std::string& sink,
205 const std::string& presentation_id, const std::string& origin, 205 const std::string& presentation_id, const std::string& origin,
206 int tab_id, int64_t timeout_millis, bool incognito, 206 int tab_id, base::TimeDelta timeout, bool incognito,
207 const mojom::MediaRouteProvider::CreateRouteCallback& cb) { 207 const mojom::MediaRouteProvider::CreateRouteCallback& cb) {
208 cb.Run(CreateMojoRoute(), std::string(), 208 cb.Run(CreateMojoRoute(), std::string(),
209 mojom::RouteRequestResultCode::OK); 209 mojom::RouteRequestResultCode::OK);
210 })); 210 }));
211 211
212 base::RunLoop run_loop; 212 base::RunLoop run_loop;
213 RouteResponseCallbackHandler handler; 213 RouteResponseCallbackHandler handler;
214 EXPECT_CALL(handler, DoInvoke(Pointee(Equals(expected_route)), Not(""), "", 214 EXPECT_CALL(handler, DoInvoke(Pointee(Equals(expected_route)), Not(""), "",
215 RouteRequestResult::OK)) 215 RouteRequestResult::OK))
216 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); 216 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
(...skipping 13 matching lines...) Expand all
230 expected_route.set_incognito(true); 230 expected_route.set_incognito(true);
231 231
232 // Use a lambda function as an invocation target here to work around 232 // Use a lambda function as an invocation target here to work around
233 // a limitation with GMock::Invoke that prevents it from using move-only types 233 // a limitation with GMock::Invoke that prevents it from using move-only types
234 // in runnable parameter lists. 234 // in runnable parameter lists.
235 EXPECT_CALL(mock_media_route_provider_, 235 EXPECT_CALL(mock_media_route_provider_,
236 CreateRoute(kSource, kSinkId, _, kOrigin, kInvalidTabId, _, _, _)) 236 CreateRoute(kSource, kSinkId, _, kOrigin, kInvalidTabId, _, _, _))
237 .WillOnce(Invoke( 237 .WillOnce(Invoke(
238 [](const std::string& source, const std::string& sink, 238 [](const std::string& source, const std::string& sink,
239 const std::string& presentation_id, const std::string& origin, 239 const std::string& presentation_id, const std::string& origin,
240 int tab_id, int64_t timeout_millis, bool incognito, 240 int tab_id, base::TimeDelta timeout, bool incognito,
241 const mojom::MediaRouteProvider::CreateRouteCallback& cb) { 241 const mojom::MediaRouteProvider::CreateRouteCallback& cb) {
242 mojom::MediaRoutePtr route = CreateMojoRoute(); 242 mojom::MediaRoutePtr route = CreateMojoRoute();
243 route->custom_controller_path = 243 route->custom_controller_path =
244 std::string("custom/controller/path"); 244 std::string("custom/controller/path");
245 route->incognito = true; 245 route->incognito = true;
246 cb.Run(std::move(route), std::string(), 246 cb.Run(std::move(route), std::string(),
247 mojom::RouteRequestResultCode::OK); 247 mojom::RouteRequestResultCode::OK);
248 })); 248 }));
249 249
250 base::RunLoop run_loop; 250 base::RunLoop run_loop;
251 RouteResponseCallbackHandler handler; 251 RouteResponseCallbackHandler handler;
252 EXPECT_CALL(handler, DoInvoke(Pointee(Equals(expected_route)), Not(""), "", 252 EXPECT_CALL(handler, DoInvoke(Pointee(Equals(expected_route)), Not(""), "",
253 RouteRequestResult::OK)) 253 RouteRequestResult::OK))
254 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); 254 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
255 std::vector<MediaRouteResponseCallback> route_response_callbacks; 255 std::vector<MediaRouteResponseCallback> route_response_callbacks;
256 route_response_callbacks.push_back(base::Bind( 256 route_response_callbacks.push_back(base::Bind(
257 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 257 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
258 router()->CreateRoute( 258 router()->CreateRoute(
259 kSource, kSinkId, GURL(kOrigin), nullptr, route_response_callbacks, 259 kSource, kSinkId, GURL(kOrigin), nullptr, route_response_callbacks,
260 base::TimeDelta::FromMilliseconds(kTimeoutMillis), true); 260 base::TimeDelta::FromMilliseconds(kTimeoutMillis), true);
261 run_loop.Run(); 261 run_loop.Run();
262 } 262 }
263 263
264 TEST_F(MediaRouterMojoImplTest, CreateRouteFails) { 264 TEST_F(MediaRouterMojoImplTest, CreateRouteFails) {
265 EXPECT_CALL( 265 EXPECT_CALL(
266 mock_media_route_provider_, 266 mock_media_route_provider_,
267 CreateRoute(kSource, kSinkId, _, kOrigin, kInvalidTabId, kTimeoutMillis, 267 CreateRoute(kSource, kSinkId, _, kOrigin, kInvalidTabId,
268 _, _)) 268 base::TimeDelta::FromMilliseconds(kTimeoutMillis), _, _))
269 .WillOnce(Invoke( 269 .WillOnce(Invoke(
270 [](const std::string& source, const std::string& sink, 270 [](const std::string& source, const std::string& sink,
271 const std::string& presentation_id, const std::string& origin, 271 const std::string& presentation_id, const std::string& origin,
272 int tab_id, int64_t timeout_millis, bool incognito, 272 int tab_id, base::TimeDelta timeout, bool incognito,
273 const mojom::MediaRouteProvider::CreateRouteCallback& cb) { 273 const mojom::MediaRouteProvider::CreateRouteCallback& cb) {
274 cb.Run(mojom::MediaRoutePtr(), std::string(kError), 274 cb.Run(mojom::MediaRoutePtr(), std::string(kError),
275 mojom::RouteRequestResultCode::TIMED_OUT); 275 mojom::RouteRequestResultCode::TIMED_OUT);
276 })); 276 }));
277 277
278 RouteResponseCallbackHandler handler; 278 RouteResponseCallbackHandler handler;
279 base::RunLoop run_loop; 279 base::RunLoop run_loop;
280 EXPECT_CALL(handler, 280 EXPECT_CALL(handler,
281 DoInvoke(nullptr, "", kError, RouteRequestResult::TIMED_OUT)) 281 DoInvoke(nullptr, "", kError, RouteRequestResult::TIMED_OUT))
282 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); 282 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
283 std::vector<MediaRouteResponseCallback> route_response_callbacks; 283 std::vector<MediaRouteResponseCallback> route_response_callbacks;
284 route_response_callbacks.push_back(base::Bind( 284 route_response_callbacks.push_back(base::Bind(
285 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 285 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
286 router()->CreateRoute( 286 router()->CreateRoute(
287 kSource, kSinkId, GURL(kOrigin), nullptr, route_response_callbacks, 287 kSource, kSinkId, GURL(kOrigin), nullptr, route_response_callbacks,
288 base::TimeDelta::FromMilliseconds(kTimeoutMillis), false); 288 base::TimeDelta::FromMilliseconds(kTimeoutMillis), false);
289 run_loop.Run(); 289 run_loop.Run();
290 } 290 }
291 291
292 TEST_F(MediaRouterMojoImplTest, CreateRouteIncognitoMismatchFails) { 292 TEST_F(MediaRouterMojoImplTest, CreateRouteIncognitoMismatchFails) {
293 EXPECT_CALL(mock_media_route_provider_, 293 EXPECT_CALL(mock_media_route_provider_,
294 CreateRoute(kSource, kSinkId, _, kOrigin, kInvalidTabId, 294 CreateRoute(kSource, kSinkId, _, kOrigin, kInvalidTabId,
295 kTimeoutMillis, true, _)) 295 base::TimeDelta::FromMilliseconds(kTimeoutMillis),
296 true, _))
296 .WillOnce(Invoke( 297 .WillOnce(Invoke(
297 [](const std::string& source, const std::string& sink, 298 [](const std::string& source, const std::string& sink,
298 const std::string& presentation_id, const std::string& origin, 299 const std::string& presentation_id, const std::string& origin,
299 int tab_id, int64_t timeout_millis, bool incognito, 300 int tab_id, base::TimeDelta timeout, bool incognito,
300 const mojom::MediaRouteProvider::CreateRouteCallback& cb) { 301 const mojom::MediaRouteProvider::CreateRouteCallback& cb) {
301 cb.Run(CreateMojoRoute(), std::string(), 302 cb.Run(CreateMojoRoute(), std::string(),
302 mojom::RouteRequestResultCode::OK); 303 mojom::RouteRequestResultCode::OK);
303 })); 304 }));
304 305
305 RouteResponseCallbackHandler handler; 306 RouteResponseCallbackHandler handler;
306 base::RunLoop run_loop; 307 base::RunLoop run_loop;
307 std::string error("Mismatch in incognito status: request = 1, response = 0"); 308 std::string error("Mismatch in incognito status: request = 1, response = 0");
308 EXPECT_CALL(handler, DoInvoke(nullptr, "", error, 309 EXPECT_CALL(handler, DoInvoke(nullptr, "", error,
309 RouteRequestResult::INCOGNITO_MISMATCH)) 310 RouteRequestResult::INCOGNITO_MISMATCH))
310 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); 311 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
311 std::vector<MediaRouteResponseCallback> route_response_callbacks; 312 std::vector<MediaRouteResponseCallback> route_response_callbacks;
312 route_response_callbacks.push_back(base::Bind( 313 route_response_callbacks.push_back(base::Bind(
313 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 314 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
314 router()->CreateRoute( 315 router()->CreateRoute(
315 kSource, kSinkId, GURL(kOrigin), nullptr, route_response_callbacks, 316 kSource, kSinkId, GURL(kOrigin), nullptr, route_response_callbacks,
316 base::TimeDelta::FromMilliseconds(kTimeoutMillis), true); 317 base::TimeDelta::FromMilliseconds(kTimeoutMillis), true);
317 run_loop.Run(); 318 run_loop.Run();
318 } 319 }
319 320
320 TEST_F(MediaRouterMojoImplTest, IncognitoRoutesTerminatedOnProfileShutdown) { 321 TEST_F(MediaRouterMojoImplTest, IncognitoRoutesTerminatedOnProfileShutdown) {
321 mojom::MediaRoutePtr route = CreateMojoRoute(); 322 mojom::MediaRoutePtr route = CreateMojoRoute();
322 route->incognito = true; 323 route->incognito = true;
323 324
324 EXPECT_CALL(mock_media_route_provider_, 325 EXPECT_CALL(mock_media_route_provider_,
325 CreateRoute(kSource, kSinkId, _, kOrigin, kInvalidTabId, 326 CreateRoute(kSource, kSinkId, _, kOrigin, kInvalidTabId,
326 kTimeoutMillis, true, _)) 327 base::TimeDelta::FromMilliseconds(kTimeoutMillis),
328 true, _))
327 .WillOnce(Invoke( 329 .WillOnce(Invoke(
328 [](const std::string& source, const std::string& sink, 330 [](const std::string& source, const std::string& sink,
329 const std::string& presentation_id, const std::string& origin, 331 const std::string& presentation_id, const std::string& origin,
330 int tab_id, int64_t timeout_millis, bool incognito, 332 int tab_id, base::TimeDelta timeout, bool incognito,
331 const mojom::MediaRouteProvider::CreateRouteCallback& cb) { 333 const mojom::MediaRouteProvider::CreateRouteCallback& cb) {
332 mojom::MediaRoutePtr route = CreateMojoRoute(); 334 mojom::MediaRoutePtr route = CreateMojoRoute();
333 route->incognito = true; 335 route->incognito = true;
334 cb.Run(std::move(route), std::string(), 336 cb.Run(std::move(route), std::string(),
335 mojom::RouteRequestResultCode::OK); 337 mojom::RouteRequestResultCode::OK);
336 })); 338 }));
337 base::RunLoop run_loop; 339 base::RunLoop run_loop;
338 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr, 340 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr,
339 std::vector<MediaRouteResponseCallback>(), 341 std::vector<MediaRouteResponseCallback>(),
340 base::TimeDelta::FromMilliseconds(kTimeoutMillis), 342 base::TimeDelta::FromMilliseconds(kTimeoutMillis),
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 router()->OnRoutesUpdated(std::move(mojo_routes), std::string(), 375 router()->OnRoutesUpdated(std::move(mojo_routes), std::string(),
374 std::vector<std::string>()); 376 std::vector<std::string>());
375 EXPECT_TRUE(router()->HasJoinableRoute()); 377 EXPECT_TRUE(router()->HasJoinableRoute());
376 378
377 // Use a lambda function as an invocation target here to work around 379 // Use a lambda function as an invocation target here to work around
378 // a limitation with GMock::Invoke that prevents it from using move-only types 380 // a limitation with GMock::Invoke that prevents it from using move-only types
379 // in runnable parameter lists. 381 // in runnable parameter lists.
380 EXPECT_CALL( 382 EXPECT_CALL(
381 mock_media_route_provider_, 383 mock_media_route_provider_,
382 JoinRoute(kSource, kPresentationId, kOrigin, kInvalidTabId, 384 JoinRoute(kSource, kPresentationId, kOrigin, kInvalidTabId,
383 kTimeoutMillis, _, _)) 385 base::TimeDelta::FromMilliseconds(kTimeoutMillis), _, _))
384 .WillOnce(Invoke([&route]( 386 .WillOnce(Invoke([&route](
385 const std::string& source, const std::string& presentation_id, 387 const std::string& source, const std::string& presentation_id,
386 const std::string& origin, int tab_id, int64_t timeout_millis, 388 const std::string& origin, int tab_id, base::TimeDelta timeout,
387 bool incognito, 389 bool incognito,
388 const mojom::MediaRouteProvider::JoinRouteCallback& cb) { 390 const mojom::MediaRouteProvider::JoinRouteCallback& cb) {
389 cb.Run(std::move(route), std::string(), 391 cb.Run(std::move(route), std::string(),
390 mojom::RouteRequestResultCode::OK); 392 mojom::RouteRequestResultCode::OK);
391 })); 393 }));
392 394
393 RouteResponseCallbackHandler handler; 395 RouteResponseCallbackHandler handler;
394 base::RunLoop run_loop; 396 base::RunLoop run_loop;
395 EXPECT_CALL(handler, DoInvoke(Pointee(Equals(expected_route)), Not(""), "", 397 EXPECT_CALL(handler, DoInvoke(Pointee(Equals(expected_route)), Not(""), "",
396 RouteRequestResult::OK)) 398 RouteRequestResult::OK))
(...skipping 27 matching lines...) Expand all
424 // is a route to join. 426 // is a route to join.
425 std::vector<mojom::MediaRoutePtr> mojo_routes(1); 427 std::vector<mojom::MediaRoutePtr> mojo_routes(1);
426 mojo_routes[0] = CreateMojoRoute(); 428 mojo_routes[0] = CreateMojoRoute();
427 router()->OnRoutesUpdated(std::move(mojo_routes), std::string(), 429 router()->OnRoutesUpdated(std::move(mojo_routes), std::string(),
428 std::vector<std::string>()); 430 std::vector<std::string>());
429 EXPECT_TRUE(router()->HasJoinableRoute()); 431 EXPECT_TRUE(router()->HasJoinableRoute());
430 432
431 EXPECT_CALL( 433 EXPECT_CALL(
432 mock_media_route_provider_, 434 mock_media_route_provider_,
433 JoinRoute(kSource, kPresentationId, kOrigin, kInvalidTabId, 435 JoinRoute(kSource, kPresentationId, kOrigin, kInvalidTabId,
434 kTimeoutMillis, _, _)) 436 base::TimeDelta::FromMilliseconds(kTimeoutMillis), _, _))
435 .WillOnce(Invoke( 437 .WillOnce(Invoke(
436 [](const std::string& source, const std::string& presentation_id, 438 [](const std::string& source, const std::string& presentation_id,
437 const std::string& origin, int tab_id, int64_t timeout_millis, 439 const std::string& origin, int tab_id, base::TimeDelta timeout,
438 bool incognito, 440 bool incognito,
439 const mojom::MediaRouteProvider::JoinRouteCallback& cb) { 441 const mojom::MediaRouteProvider::JoinRouteCallback& cb) {
440 cb.Run(mojom::MediaRoutePtr(), std::string(kError), 442 cb.Run(mojom::MediaRoutePtr(), std::string(kError),
441 mojom::RouteRequestResultCode::TIMED_OUT); 443 mojom::RouteRequestResultCode::TIMED_OUT);
442 })); 444 }));
443 445
444 RouteResponseCallbackHandler handler; 446 RouteResponseCallbackHandler handler;
445 base::RunLoop run_loop; 447 base::RunLoop run_loop;
446 EXPECT_CALL(handler, 448 EXPECT_CALL(handler,
447 DoInvoke(nullptr, "", kError, RouteRequestResult::TIMED_OUT)) 449 DoInvoke(nullptr, "", kError, RouteRequestResult::TIMED_OUT))
(...skipping 17 matching lines...) Expand all
465 router()->OnRoutesUpdated(std::move(mojo_routes), std::string(), 467 router()->OnRoutesUpdated(std::move(mojo_routes), std::string(),
466 std::vector<std::string>()); 468 std::vector<std::string>());
467 EXPECT_TRUE(router()->HasJoinableRoute()); 469 EXPECT_TRUE(router()->HasJoinableRoute());
468 470
469 // Use a lambda function as an invocation target here to work around 471 // Use a lambda function as an invocation target here to work around
470 // a limitation with GMock::Invoke that prevents it from using move-only types 472 // a limitation with GMock::Invoke that prevents it from using move-only types
471 // in runnable parameter lists. 473 // in runnable parameter lists.
472 EXPECT_CALL( 474 EXPECT_CALL(
473 mock_media_route_provider_, 475 mock_media_route_provider_,
474 JoinRoute(kSource, kPresentationId, kOrigin, kInvalidTabId, 476 JoinRoute(kSource, kPresentationId, kOrigin, kInvalidTabId,
475 kTimeoutMillis, true, _)) 477 base::TimeDelta::FromMilliseconds(kTimeoutMillis), true, _))
476 .WillOnce(Invoke([&route]( 478 .WillOnce(Invoke([&route](
477 const std::string& source, const std::string& presentation_id, 479 const std::string& source, const std::string& presentation_id,
478 const std::string& origin, int tab_id, int64_t timeout_millis, 480 const std::string& origin, int tab_id, base::TimeDelta timeout,
479 bool incognito, 481 bool incognito,
480 const mojom::MediaRouteProvider::JoinRouteCallback& cb) { 482 const mojom::MediaRouteProvider::JoinRouteCallback& cb) {
481 cb.Run(std::move(route), std::string(), 483 cb.Run(std::move(route), std::string(),
482 mojom::RouteRequestResultCode::OK); 484 mojom::RouteRequestResultCode::OK);
483 })); 485 }));
484 486
485 RouteResponseCallbackHandler handler; 487 RouteResponseCallbackHandler handler;
486 base::RunLoop run_loop; 488 base::RunLoop run_loop;
487 std::string error("Mismatch in incognito status: request = 1, response = 0"); 489 std::string error("Mismatch in incognito status: request = 1, response = 0");
488 EXPECT_CALL(handler, DoInvoke(nullptr, "", error, 490 EXPECT_CALL(handler, DoInvoke(nullptr, "", error,
(...skipping 14 matching lines...) Expand all
503 false); 505 false);
504 expected_route.set_incognito(false); 506 expected_route.set_incognito(false);
505 mojom::MediaRoutePtr route = CreateMojoRoute(); 507 mojom::MediaRoutePtr route = CreateMojoRoute();
506 508
507 // Use a lambda function as an invocation target here to work around 509 // Use a lambda function as an invocation target here to work around
508 // a limitation with GMock::Invoke that prevents it from using move-only types 510 // a limitation with GMock::Invoke that prevents it from using move-only types
509 // in runnable parameter lists. 511 // in runnable parameter lists.
510 EXPECT_CALL( 512 EXPECT_CALL(
511 mock_media_route_provider_, 513 mock_media_route_provider_,
512 ConnectRouteByRouteId(kSource, kRouteId, _, kOrigin, kInvalidTabId, 514 ConnectRouteByRouteId(kSource, kRouteId, _, kOrigin, kInvalidTabId,
513 kTimeoutMillis, false, _)) 515 base::TimeDelta::FromMilliseconds(kTimeoutMillis),
516 false, _))
514 .WillOnce(Invoke([&route]( 517 .WillOnce(Invoke([&route](
515 const std::string& source, const std::string& route_id, 518 const std::string& source, const std::string& route_id,
516 const std::string& presentation_id, const std::string& origin, 519 const std::string& presentation_id, const std::string& origin,
517 int tab_id, int64_t timeout_millis, bool incognito, 520 int tab_id, base::TimeDelta timeout, bool incognito,
518 const mojom::MediaRouteProvider::JoinRouteCallback& cb) { 521 const mojom::MediaRouteProvider::JoinRouteCallback& cb) {
519 cb.Run(std::move(route), std::string(), 522 cb.Run(std::move(route), std::string(),
520 mojom::RouteRequestResultCode::OK); 523 mojom::RouteRequestResultCode::OK);
521 })); 524 }));
522 525
523 RouteResponseCallbackHandler handler; 526 RouteResponseCallbackHandler handler;
524 base::RunLoop run_loop; 527 base::RunLoop run_loop;
525 EXPECT_CALL(handler, DoInvoke(Pointee(Equals(expected_route)), Not(""), "", 528 EXPECT_CALL(handler, DoInvoke(Pointee(Equals(expected_route)), Not(""), "",
526 RouteRequestResult::OK)) 529 RouteRequestResult::OK))
527 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); 530 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
528 std::vector<MediaRouteResponseCallback> route_response_callbacks; 531 std::vector<MediaRouteResponseCallback> route_response_callbacks;
529 route_response_callbacks.push_back(base::Bind( 532 route_response_callbacks.push_back(base::Bind(
530 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 533 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
531 router()->ConnectRouteByRouteId( 534 router()->ConnectRouteByRouteId(
532 kSource, kRouteId, GURL(kOrigin), nullptr, route_response_callbacks, 535 kSource, kRouteId, GURL(kOrigin), nullptr, route_response_callbacks,
533 base::TimeDelta::FromMilliseconds(kTimeoutMillis), false); 536 base::TimeDelta::FromMilliseconds(kTimeoutMillis), false);
534 run_loop.Run(); 537 run_loop.Run();
535 } 538 }
536 539
537 TEST_F(MediaRouterMojoImplTest, ConnectRouteByRouteIdFails) { 540 TEST_F(MediaRouterMojoImplTest, ConnectRouteByRouteIdFails) {
538 EXPECT_CALL( 541 EXPECT_CALL(
539 mock_media_route_provider_, 542 mock_media_route_provider_,
540 ConnectRouteByRouteId(kSource, kRouteId, _, kOrigin, kInvalidTabId, 543 ConnectRouteByRouteId(kSource, kRouteId, _, kOrigin, kInvalidTabId,
541 kTimeoutMillis, true, _)) 544 base::TimeDelta::FromMilliseconds(kTimeoutMillis),
545 true, _))
542 .WillOnce(Invoke( 546 .WillOnce(Invoke(
543 [](const std::string& source, const std::string& route_id, 547 [](const std::string& source, const std::string& route_id,
544 const std::string& presentation_id, const std::string& origin, 548 const std::string& presentation_id, const std::string& origin,
545 int tab_id, int64_t timeout_millis, bool incognito, 549 int tab_id, base::TimeDelta timeout, bool incognito,
546 const mojom::MediaRouteProvider::JoinRouteCallback& cb) { 550 const mojom::MediaRouteProvider::JoinRouteCallback& cb) {
547 cb.Run(mojom::MediaRoutePtr(), std::string(kError), 551 cb.Run(mojom::MediaRoutePtr(), std::string(kError),
548 mojom::RouteRequestResultCode::TIMED_OUT); 552 mojom::RouteRequestResultCode::TIMED_OUT);
549 })); 553 }));
550 554
551 RouteResponseCallbackHandler handler; 555 RouteResponseCallbackHandler handler;
552 base::RunLoop run_loop; 556 base::RunLoop run_loop;
553 EXPECT_CALL(handler, 557 EXPECT_CALL(handler,
554 DoInvoke(nullptr, "", kError, RouteRequestResult::TIMED_OUT)) 558 DoInvoke(nullptr, "", kError, RouteRequestResult::TIMED_OUT))
555 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); 559 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
556 std::vector<MediaRouteResponseCallback> route_response_callbacks; 560 std::vector<MediaRouteResponseCallback> route_response_callbacks;
557 route_response_callbacks.push_back(base::Bind( 561 route_response_callbacks.push_back(base::Bind(
558 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 562 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
559 router()->ConnectRouteByRouteId( 563 router()->ConnectRouteByRouteId(
560 kSource, kRouteId, GURL(kOrigin), nullptr, route_response_callbacks, 564 kSource, kRouteId, GURL(kOrigin), nullptr, route_response_callbacks,
561 base::TimeDelta::FromMilliseconds(kTimeoutMillis), true); 565 base::TimeDelta::FromMilliseconds(kTimeoutMillis), true);
562 run_loop.Run(); 566 run_loop.Run();
563 } 567 }
564 568
565 TEST_F(MediaRouterMojoImplTest, ConnectRouteByIdIncognitoMismatchFails) { 569 TEST_F(MediaRouterMojoImplTest, ConnectRouteByIdIncognitoMismatchFails) {
566 mojom::MediaRoutePtr route = CreateMojoRoute(); 570 mojom::MediaRoutePtr route = CreateMojoRoute();
567 571
568 // Use a lambda function as an invocation target here to work around 572 // Use a lambda function as an invocation target here to work around
569 // a limitation with GMock::Invoke that prevents it from using move-only types 573 // a limitation with GMock::Invoke that prevents it from using move-only types
570 // in runnable parameter lists. 574 // in runnable parameter lists.
571 EXPECT_CALL( 575 EXPECT_CALL(
572 mock_media_route_provider_, 576 mock_media_route_provider_,
573 ConnectRouteByRouteId(kSource, kRouteId, _, kOrigin, kInvalidTabId, 577 ConnectRouteByRouteId(kSource, kRouteId, _, kOrigin, kInvalidTabId,
574 kTimeoutMillis, true, _)) 578 base::TimeDelta::FromMilliseconds(kTimeoutMillis),
579 true, _))
575 .WillOnce(Invoke([&route]( 580 .WillOnce(Invoke([&route](
576 const std::string& source, const std::string& route_id, 581 const std::string& source, const std::string& route_id,
577 const std::string& presentation_id, const std::string& origin, 582 const std::string& presentation_id, const std::string& origin,
578 int tab_id, int64_t timeout_millis, bool incognito, 583 int tab_id, base::TimeDelta timeout, bool incognito,
579 const mojom::MediaRouteProvider::JoinRouteCallback& cb) { 584 const mojom::MediaRouteProvider::JoinRouteCallback& cb) {
580 cb.Run(std::move(route), std::string(), 585 cb.Run(std::move(route), std::string(),
581 mojom::RouteRequestResultCode::OK); 586 mojom::RouteRequestResultCode::OK);
582 })); 587 }));
583 588
584 RouteResponseCallbackHandler handler; 589 RouteResponseCallbackHandler handler;
585 base::RunLoop run_loop; 590 base::RunLoop run_loop;
586 std::string error("Mismatch in incognito status: request = 1, response = 0"); 591 std::string error("Mismatch in incognito status: request = 1, response = 0");
587 EXPECT_CALL(handler, DoInvoke(nullptr, "", error, 592 EXPECT_CALL(handler, DoInvoke(nullptr, "", error,
588 RouteRequestResult::INCOGNITO_MISMATCH)) 593 RouteRequestResult::INCOGNITO_MISMATCH))
(...skipping 971 matching lines...) Expand 10 before | Expand all | Expand 10 after
1560 EXPECT_CALL(mock_media_route_provider_, 1565 EXPECT_CALL(mock_media_route_provider_,
1561 UpdateMediaSinks(MediaSourceForDesktop().id())) 1566 UpdateMediaSinks(MediaSourceForDesktop().id()))
1562 .WillOnce(InvokeWithoutArgs([&run_loop2]() { 1567 .WillOnce(InvokeWithoutArgs([&run_loop2]() {
1563 run_loop2.Quit(); 1568 run_loop2.Quit();
1564 })); 1569 }));
1565 1570
1566 run_loop2.Run(); 1571 run_loop2.Run();
1567 } 1572 }
1568 1573
1569 } // namespace media_router 1574 } // namespace media_router
OLDNEW
« no previous file with comments | « chrome/browser/media/router/mojo/media_router_mojo_impl.cc ('k') | chrome/browser/media/router/mojo/media_router_mojo_test.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698