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

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

Issue 2112673002: Removing references to Off the Record from MediaRouter (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 } 107 }
108 108
109 interfaces::MediaRoutePtr CreateMojoRoute() { 109 interfaces::MediaRoutePtr CreateMojoRoute() {
110 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New(); 110 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New();
111 route->media_source = kSource; 111 route->media_source = kSource;
112 route->media_sink_id = kSinkId; 112 route->media_sink_id = kSinkId;
113 route->media_route_id = kRouteId; 113 route->media_route_id = kRouteId;
114 route->description = kDescription; 114 route->description = kDescription;
115 route->is_local = true; 115 route->is_local = true;
116 route->for_display = true; 116 route->for_display = true;
117 route->off_the_record = false; 117 route->incognito = false;
118 return route; 118 return route;
119 } 119 }
120 120
121 } // namespace 121 } // namespace
122 122
123 class RouteResponseCallbackHandler { 123 class RouteResponseCallbackHandler {
124 public: 124 public:
125 void Invoke(const RouteRequestResult& result) { 125 void Invoke(const RouteRequestResult& result) {
126 DoInvoke(result.route(), result.presentation_id(), result.error(), 126 DoInvoke(result.route(), result.presentation_id(), result.error(),
127 result.result_code()); 127 result.result_code());
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 219
220 // Use a lambda function as an invocation target here to work around 220 // Use a lambda function as an invocation target here to work around
221 // a limitation with GMock::Invoke that prevents it from using move-only types 221 // a limitation with GMock::Invoke that prevents it from using move-only types
222 // in runnable parameter lists. 222 // in runnable parameter lists.
223 EXPECT_CALL(mock_media_route_provider_, 223 EXPECT_CALL(mock_media_route_provider_,
224 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _, 224 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _,
225 mojo::String(kOrigin), kInvalidTabId, _, _, _)) 225 mojo::String(kOrigin), kInvalidTabId, _, _, _))
226 .WillOnce(Invoke( 226 .WillOnce(Invoke(
227 [](const mojo::String& source, const mojo::String& sink, 227 [](const mojo::String& source, const mojo::String& sink,
228 const mojo::String& presentation_id, const mojo::String& origin, 228 const mojo::String& presentation_id, const mojo::String& origin,
229 int tab_id, int64_t timeout_millis, bool off_the_record, 229 int tab_id, int64_t timeout_millis, bool incognito,
230 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) { 230 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) {
231 cb.Run(CreateMojoRoute(), mojo::String(), 231 cb.Run(CreateMojoRoute(), mojo::String(),
232 interfaces::RouteRequestResultCode::OK); 232 interfaces::RouteRequestResultCode::OK);
233 })); 233 }));
234 234
235 base::RunLoop run_loop; 235 base::RunLoop run_loop;
236 RouteResponseCallbackHandler handler; 236 RouteResponseCallbackHandler handler;
237 EXPECT_CALL(handler, DoInvoke(Pointee(Equals(expected_route)), Not(""), "", 237 EXPECT_CALL(handler, DoInvoke(Pointee(Equals(expected_route)), Not(""), "",
238 RouteRequestResult::OK)) 238 RouteRequestResult::OK))
239 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); 239 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
240 std::vector<MediaRouteResponseCallback> route_response_callbacks; 240 std::vector<MediaRouteResponseCallback> route_response_callbacks;
241 route_response_callbacks.push_back(base::Bind( 241 route_response_callbacks.push_back(base::Bind(
242 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 242 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
243 router()->CreateRoute( 243 router()->CreateRoute(
244 kSource, kSinkId, GURL(kOrigin), nullptr, route_response_callbacks, 244 kSource, kSinkId, GURL(kOrigin), nullptr, route_response_callbacks,
245 base::TimeDelta::FromMilliseconds(kTimeoutMillis), false); 245 base::TimeDelta::FromMilliseconds(kTimeoutMillis), false);
246 run_loop.Run(); 246 run_loop.Run();
247 } 247 }
248 248
249 TEST_F(MediaRouterMojoImplTest, CreateOffTheRecordRoute) { 249 TEST_F(MediaRouterMojoImplTest, CreateOffTheRecordRoute) {
250 MediaSource media_source(kSource); 250 MediaSource media_source(kSource);
251 MediaRoute expected_route(kRouteId, media_source, kSinkId, "", false, "", 251 MediaRoute expected_route(kRouteId, media_source, kSinkId, "", false, "",
252 false); 252 false);
253 expected_route.set_off_the_record(true); 253 expected_route.set_incognito(true);
254 254
255 // Use a lambda function as an invocation target here to work around 255 // Use a lambda function as an invocation target here to work around
256 // a limitation with GMock::Invoke that prevents it from using move-only types 256 // a limitation with GMock::Invoke that prevents it from using move-only types
257 // in runnable parameter lists. 257 // in runnable parameter lists.
258 EXPECT_CALL(mock_media_route_provider_, 258 EXPECT_CALL(mock_media_route_provider_,
259 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _, 259 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _,
260 mojo::String(kOrigin), kInvalidTabId, _, _, _)) 260 mojo::String(kOrigin), kInvalidTabId, _, _, _))
261 .WillOnce(Invoke( 261 .WillOnce(Invoke(
262 [](const mojo::String& source, const mojo::String& sink, 262 [](const mojo::String& source, const mojo::String& sink,
263 const mojo::String& presentation_id, const mojo::String& origin, 263 const mojo::String& presentation_id, const mojo::String& origin,
264 int tab_id, int64_t timeout_millis, bool off_the_record, 264 int tab_id, int64_t timeout_millis, bool incognito,
265 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) { 265 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) {
266 interfaces::MediaRoutePtr route = CreateMojoRoute(); 266 interfaces::MediaRoutePtr route = CreateMojoRoute();
267 route->custom_controller_path = "custom/controller/path"; 267 route->custom_controller_path = "custom/controller/path";
268 route->off_the_record = true; 268 route->incognito = true;
269 cb.Run(std::move(route), mojo::String(), 269 cb.Run(std::move(route), mojo::String(),
270 interfaces::RouteRequestResultCode::OK); 270 interfaces::RouteRequestResultCode::OK);
271 })); 271 }));
272 272
273 base::RunLoop run_loop; 273 base::RunLoop run_loop;
274 RouteResponseCallbackHandler handler; 274 RouteResponseCallbackHandler handler;
275 EXPECT_CALL(handler, DoInvoke(Pointee(Equals(expected_route)), Not(""), "", 275 EXPECT_CALL(handler, DoInvoke(Pointee(Equals(expected_route)), Not(""), "",
276 RouteRequestResult::OK)) 276 RouteRequestResult::OK))
277 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); 277 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
278 std::vector<MediaRouteResponseCallback> route_response_callbacks; 278 std::vector<MediaRouteResponseCallback> route_response_callbacks;
279 route_response_callbacks.push_back(base::Bind( 279 route_response_callbacks.push_back(base::Bind(
280 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 280 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
281 router()->CreateRoute( 281 router()->CreateRoute(
282 kSource, kSinkId, GURL(kOrigin), nullptr, route_response_callbacks, 282 kSource, kSinkId, GURL(kOrigin), nullptr, route_response_callbacks,
283 base::TimeDelta::FromMilliseconds(kTimeoutMillis), true); 283 base::TimeDelta::FromMilliseconds(kTimeoutMillis), true);
284 run_loop.Run(); 284 run_loop.Run();
285 } 285 }
286 286
287 TEST_F(MediaRouterMojoImplTest, CreateRouteFails) { 287 TEST_F(MediaRouterMojoImplTest, CreateRouteFails) {
288 EXPECT_CALL( 288 EXPECT_CALL(
289 mock_media_route_provider_, 289 mock_media_route_provider_,
290 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _, 290 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _,
291 mojo::String(kOrigin), kInvalidTabId, kTimeoutMillis, _, _)) 291 mojo::String(kOrigin), kInvalidTabId, kTimeoutMillis, _, _))
292 .WillOnce(Invoke( 292 .WillOnce(Invoke(
293 [](const mojo::String& source, const mojo::String& sink, 293 [](const mojo::String& source, const mojo::String& sink,
294 const mojo::String& presentation_id, const mojo::String& origin, 294 const mojo::String& presentation_id, const mojo::String& origin,
295 int tab_id, int64_t timeout_millis, bool off_the_record, 295 int tab_id, int64_t timeout_millis, bool incognito,
296 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) { 296 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) {
297 cb.Run(interfaces::MediaRoutePtr(), mojo::String(kError), 297 cb.Run(interfaces::MediaRoutePtr(), mojo::String(kError),
298 interfaces::RouteRequestResultCode::TIMED_OUT); 298 interfaces::RouteRequestResultCode::TIMED_OUT);
299 })); 299 }));
300 300
301 RouteResponseCallbackHandler handler; 301 RouteResponseCallbackHandler handler;
302 base::RunLoop run_loop; 302 base::RunLoop run_loop;
303 EXPECT_CALL(handler, 303 EXPECT_CALL(handler,
304 DoInvoke(nullptr, "", kError, RouteRequestResult::TIMED_OUT)) 304 DoInvoke(nullptr, "", kError, RouteRequestResult::TIMED_OUT))
305 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); 305 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
306 std::vector<MediaRouteResponseCallback> route_response_callbacks; 306 std::vector<MediaRouteResponseCallback> route_response_callbacks;
307 route_response_callbacks.push_back(base::Bind( 307 route_response_callbacks.push_back(base::Bind(
308 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 308 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
309 router()->CreateRoute( 309 router()->CreateRoute(
310 kSource, kSinkId, GURL(kOrigin), nullptr, route_response_callbacks, 310 kSource, kSinkId, GURL(kOrigin), nullptr, route_response_callbacks,
311 base::TimeDelta::FromMilliseconds(kTimeoutMillis), false); 311 base::TimeDelta::FromMilliseconds(kTimeoutMillis), false);
312 run_loop.Run(); 312 run_loop.Run();
313 } 313 }
314 314
315 TEST_F(MediaRouterMojoImplTest, CreateRouteOffTheRecordMismatchFails) { 315 TEST_F(MediaRouterMojoImplTest, CreateRouteOffTheRecordMismatchFails) {
316 EXPECT_CALL(mock_media_route_provider_, 316 EXPECT_CALL(mock_media_route_provider_,
317 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _, 317 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _,
318 mojo::String(kOrigin), kInvalidTabId, kTimeoutMillis, 318 mojo::String(kOrigin), kInvalidTabId, kTimeoutMillis,
319 true, _)) 319 true, _))
320 .WillOnce(Invoke( 320 .WillOnce(Invoke(
321 [](const mojo::String& source, const mojo::String& sink, 321 [](const mojo::String& source, const mojo::String& sink,
322 const mojo::String& presentation_id, const mojo::String& origin, 322 const mojo::String& presentation_id, const mojo::String& origin,
323 int tab_id, int64_t timeout_millis, bool off_the_record, 323 int tab_id, int64_t timeout_millis, bool incognito,
324 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) { 324 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) {
325 cb.Run(CreateMojoRoute(), mojo::String(), 325 cb.Run(CreateMojoRoute(), mojo::String(),
326 interfaces::RouteRequestResultCode::OK); 326 interfaces::RouteRequestResultCode::OK);
327 })); 327 }));
328 328
329 RouteResponseCallbackHandler handler; 329 RouteResponseCallbackHandler handler;
330 base::RunLoop run_loop; 330 base::RunLoop run_loop;
331 std::string error( 331 std::string error("Mismatch in incognito status: request = 1, response = 0");
332 "Mismatch in off the record status: request = 1, response = 0");
333 EXPECT_CALL(handler, DoInvoke(nullptr, "", error, 332 EXPECT_CALL(handler, DoInvoke(nullptr, "", error,
334 RouteRequestResult::OFF_THE_RECORD_MISMATCH)) 333 RouteRequestResult::INCOGNITO_MISMATCH))
335 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); 334 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
336 std::vector<MediaRouteResponseCallback> route_response_callbacks; 335 std::vector<MediaRouteResponseCallback> route_response_callbacks;
337 route_response_callbacks.push_back(base::Bind( 336 route_response_callbacks.push_back(base::Bind(
338 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 337 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
339 router()->CreateRoute( 338 router()->CreateRoute(
340 kSource, kSinkId, GURL(kOrigin), nullptr, route_response_callbacks, 339 kSource, kSinkId, GURL(kOrigin), nullptr, route_response_callbacks,
341 base::TimeDelta::FromMilliseconds(kTimeoutMillis), true); 340 base::TimeDelta::FromMilliseconds(kTimeoutMillis), true);
342 run_loop.Run(); 341 run_loop.Run();
343 } 342 }
344 343
345 TEST_F(MediaRouterMojoImplTest, OffTheRecordRoutesTerminatedOnProfileShutdown) { 344 TEST_F(MediaRouterMojoImplTest, OffTheRecordRoutesTerminatedOnProfileShutdown) {
346 interfaces::MediaRoutePtr route = CreateMojoRoute(); 345 interfaces::MediaRoutePtr route = CreateMojoRoute();
347 route->off_the_record = true; 346 route->incognito = true;
348 347
349 EXPECT_CALL(mock_media_route_provider_, 348 EXPECT_CALL(mock_media_route_provider_,
350 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _, 349 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _,
351 mojo::String(kOrigin), kInvalidTabId, kTimeoutMillis, 350 mojo::String(kOrigin), kInvalidTabId, kTimeoutMillis,
352 true, _)) 351 true, _))
353 .WillOnce(Invoke( 352 .WillOnce(Invoke(
354 [](const mojo::String& source, const mojo::String& sink, 353 [](const mojo::String& source, const mojo::String& sink,
355 const mojo::String& presentation_id, const mojo::String& origin, 354 const mojo::String& presentation_id, const mojo::String& origin,
356 int tab_id, int64_t timeout_millis, bool off_the_record, 355 int tab_id, int64_t timeout_millis, bool incognito,
357 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) { 356 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) {
358 interfaces::MediaRoutePtr route = CreateMojoRoute(); 357 interfaces::MediaRoutePtr route = CreateMojoRoute();
359 route->off_the_record = true; 358 route->incognito = true;
360 cb.Run(std::move(route), mojo::String(), 359 cb.Run(std::move(route), mojo::String(),
361 interfaces::RouteRequestResultCode::OK); 360 interfaces::RouteRequestResultCode::OK);
362 })); 361 }));
363 base::RunLoop run_loop; 362 base::RunLoop run_loop;
364 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr, 363 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr,
365 std::vector<MediaRouteResponseCallback>(), 364 std::vector<MediaRouteResponseCallback>(),
366 base::TimeDelta::FromMilliseconds(kTimeoutMillis), 365 base::TimeDelta::FromMilliseconds(kTimeoutMillis),
367 true); 366 true);
368 mojo::Array<interfaces::MediaRoutePtr> mojo_routes(1); 367 mojo::Array<interfaces::MediaRoutePtr> mojo_routes(1);
369 mojo_routes[0] = route->Clone(); 368 mojo_routes[0] = route->Clone();
(...skipping 28 matching lines...) Expand all
398 // Use a lambda function as an invocation target here to work around 397 // Use a lambda function as an invocation target here to work around
399 // a limitation with GMock::Invoke that prevents it from using move-only types 398 // a limitation with GMock::Invoke that prevents it from using move-only types
400 // in runnable parameter lists. 399 // in runnable parameter lists.
401 EXPECT_CALL( 400 EXPECT_CALL(
402 mock_media_route_provider_, 401 mock_media_route_provider_,
403 JoinRoute(mojo::String(kSource), mojo::String(kPresentationId), 402 JoinRoute(mojo::String(kSource), mojo::String(kPresentationId),
404 mojo::String(kOrigin), kInvalidTabId, kTimeoutMillis, _, _)) 403 mojo::String(kOrigin), kInvalidTabId, kTimeoutMillis, _, _))
405 .WillOnce(Invoke([&route]( 404 .WillOnce(Invoke([&route](
406 const mojo::String& source, const mojo::String& presentation_id, 405 const mojo::String& source, const mojo::String& presentation_id,
407 const mojo::String& origin, int tab_id, int64_t timeout_millis, 406 const mojo::String& origin, int tab_id, int64_t timeout_millis,
408 bool off_the_record, 407 bool incognito,
409 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) { 408 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) {
410 cb.Run(std::move(route), mojo::String(), 409 cb.Run(std::move(route), mojo::String(),
411 interfaces::RouteRequestResultCode::OK); 410 interfaces::RouteRequestResultCode::OK);
412 })); 411 }));
413 412
414 RouteResponseCallbackHandler handler; 413 RouteResponseCallbackHandler handler;
415 base::RunLoop run_loop; 414 base::RunLoop run_loop;
416 EXPECT_CALL(handler, DoInvoke(Pointee(Equals(expected_route)), Not(""), "", 415 EXPECT_CALL(handler, DoInvoke(Pointee(Equals(expected_route)), Not(""), "",
417 RouteRequestResult::OK)) 416 RouteRequestResult::OK))
418 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); 417 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
(...skipping 30 matching lines...) Expand all
449 mojo::Array<mojo::String>()); 448 mojo::Array<mojo::String>());
450 EXPECT_TRUE(router()->HasJoinableRoute()); 449 EXPECT_TRUE(router()->HasJoinableRoute());
451 450
452 EXPECT_CALL( 451 EXPECT_CALL(
453 mock_media_route_provider_, 452 mock_media_route_provider_,
454 JoinRoute(mojo::String(kSource), mojo::String(kPresentationId), 453 JoinRoute(mojo::String(kSource), mojo::String(kPresentationId),
455 mojo::String(kOrigin), kInvalidTabId, kTimeoutMillis, _, _)) 454 mojo::String(kOrigin), kInvalidTabId, kTimeoutMillis, _, _))
456 .WillOnce(Invoke( 455 .WillOnce(Invoke(
457 [](const mojo::String& source, const mojo::String& presentation_id, 456 [](const mojo::String& source, const mojo::String& presentation_id,
458 const mojo::String& origin, int tab_id, int64_t timeout_millis, 457 const mojo::String& origin, int tab_id, int64_t timeout_millis,
459 bool off_the_record, 458 bool incognito,
460 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) { 459 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) {
461 cb.Run(interfaces::MediaRoutePtr(), mojo::String(kError), 460 cb.Run(interfaces::MediaRoutePtr(), mojo::String(kError),
462 interfaces::RouteRequestResultCode::TIMED_OUT); 461 interfaces::RouteRequestResultCode::TIMED_OUT);
463 })); 462 }));
464 463
465 RouteResponseCallbackHandler handler; 464 RouteResponseCallbackHandler handler;
466 base::RunLoop run_loop; 465 base::RunLoop run_loop;
467 EXPECT_CALL(handler, 466 EXPECT_CALL(handler,
468 DoInvoke(nullptr, "", kError, RouteRequestResult::TIMED_OUT)) 467 DoInvoke(nullptr, "", kError, RouteRequestResult::TIMED_OUT))
469 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); 468 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
(...skipping 20 matching lines...) Expand all
490 // Use a lambda function as an invocation target here to work around 489 // Use a lambda function as an invocation target here to work around
491 // a limitation with GMock::Invoke that prevents it from using move-only types 490 // a limitation with GMock::Invoke that prevents it from using move-only types
492 // in runnable parameter lists. 491 // in runnable parameter lists.
493 EXPECT_CALL( 492 EXPECT_CALL(
494 mock_media_route_provider_, 493 mock_media_route_provider_,
495 JoinRoute(mojo::String(kSource), mojo::String(kPresentationId), 494 JoinRoute(mojo::String(kSource), mojo::String(kPresentationId),
496 mojo::String(kOrigin), kInvalidTabId, kTimeoutMillis, true, _)) 495 mojo::String(kOrigin), kInvalidTabId, kTimeoutMillis, true, _))
497 .WillOnce(Invoke([&route]( 496 .WillOnce(Invoke([&route](
498 const mojo::String& source, const mojo::String& presentation_id, 497 const mojo::String& source, const mojo::String& presentation_id,
499 const mojo::String& origin, int tab_id, int64_t timeout_millis, 498 const mojo::String& origin, int tab_id, int64_t timeout_millis,
500 bool off_the_record, 499 bool incognito,
501 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) { 500 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) {
502 cb.Run(std::move(route), mojo::String(), 501 cb.Run(std::move(route), mojo::String(),
503 interfaces::RouteRequestResultCode::OK); 502 interfaces::RouteRequestResultCode::OK);
504 })); 503 }));
505 504
506 RouteResponseCallbackHandler handler; 505 RouteResponseCallbackHandler handler;
507 base::RunLoop run_loop; 506 base::RunLoop run_loop;
508 std::string error( 507 std::string error("Mismatch in incognito status: request = 1, response = 0");
509 "Mismatch in off the record status: request = 1, response = 0");
510 EXPECT_CALL(handler, DoInvoke(nullptr, "", error, 508 EXPECT_CALL(handler, DoInvoke(nullptr, "", error,
511 RouteRequestResult::OFF_THE_RECORD_MISMATCH)) 509 RouteRequestResult::INCOGNITO_MISMATCH))
512 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); 510 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
513 std::vector<MediaRouteResponseCallback> route_response_callbacks; 511 std::vector<MediaRouteResponseCallback> route_response_callbacks;
514 route_response_callbacks.push_back(base::Bind( 512 route_response_callbacks.push_back(base::Bind(
515 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 513 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
516 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr, 514 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr,
517 route_response_callbacks, 515 route_response_callbacks,
518 base::TimeDelta::FromMilliseconds(kTimeoutMillis), true); 516 base::TimeDelta::FromMilliseconds(kTimeoutMillis), true);
519 run_loop.Run(); 517 run_loop.Run();
520 } 518 }
521 519
522 TEST_F(MediaRouterMojoImplTest, ConnectRouteByRouteId) { 520 TEST_F(MediaRouterMojoImplTest, ConnectRouteByRouteId) {
523 MediaSource media_source(kSource); 521 MediaSource media_source(kSource);
524 MediaRoute expected_route(kRouteId, media_source, kSinkId, "", false, "", 522 MediaRoute expected_route(kRouteId, media_source, kSinkId, "", false, "",
525 false); 523 false);
526 expected_route.set_off_the_record(false); 524 expected_route.set_incognito(false);
527 interfaces::MediaRoutePtr route = CreateMojoRoute(); 525 interfaces::MediaRoutePtr route = CreateMojoRoute();
528 526
529 // Use a lambda function as an invocation target here to work around 527 // Use a lambda function as an invocation target here to work around
530 // a limitation with GMock::Invoke that prevents it from using move-only types 528 // a limitation with GMock::Invoke that prevents it from using move-only types
531 // in runnable parameter lists. 529 // in runnable parameter lists.
532 EXPECT_CALL( 530 EXPECT_CALL(
533 mock_media_route_provider_, 531 mock_media_route_provider_,
534 ConnectRouteByRouteId(mojo::String(kSource), mojo::String(kRouteId), _, 532 ConnectRouteByRouteId(mojo::String(kSource), mojo::String(kRouteId), _,
535 mojo::String(kOrigin), kInvalidTabId, 533 mojo::String(kOrigin), kInvalidTabId,
536 kTimeoutMillis, false, _)) 534 kTimeoutMillis, false, _))
537 .WillOnce(Invoke([&route]( 535 .WillOnce(Invoke([&route](
538 const mojo::String& source, const mojo::String& route_id, 536 const mojo::String& source, const mojo::String& route_id,
539 const mojo::String& presentation_id, const mojo::String& origin, 537 const mojo::String& presentation_id, const mojo::String& origin,
540 int tab_id, int64_t timeout_millis, bool off_the_record, 538 int tab_id, int64_t timeout_millis, bool incognito,
541 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) { 539 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) {
542 cb.Run(std::move(route), mojo::String(), 540 cb.Run(std::move(route), mojo::String(),
543 interfaces::RouteRequestResultCode::OK); 541 interfaces::RouteRequestResultCode::OK);
544 })); 542 }));
545 543
546 RouteResponseCallbackHandler handler; 544 RouteResponseCallbackHandler handler;
547 base::RunLoop run_loop; 545 base::RunLoop run_loop;
548 EXPECT_CALL(handler, DoInvoke(Pointee(Equals(expected_route)), Not(""), "", 546 EXPECT_CALL(handler, DoInvoke(Pointee(Equals(expected_route)), Not(""), "",
549 RouteRequestResult::OK)) 547 RouteRequestResult::OK))
550 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); 548 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
551 std::vector<MediaRouteResponseCallback> route_response_callbacks; 549 std::vector<MediaRouteResponseCallback> route_response_callbacks;
552 route_response_callbacks.push_back(base::Bind( 550 route_response_callbacks.push_back(base::Bind(
553 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 551 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
554 router()->ConnectRouteByRouteId( 552 router()->ConnectRouteByRouteId(
555 kSource, kRouteId, GURL(kOrigin), nullptr, route_response_callbacks, 553 kSource, kRouteId, GURL(kOrigin), nullptr, route_response_callbacks,
556 base::TimeDelta::FromMilliseconds(kTimeoutMillis), false); 554 base::TimeDelta::FromMilliseconds(kTimeoutMillis), false);
557 run_loop.Run(); 555 run_loop.Run();
558 } 556 }
559 557
560 TEST_F(MediaRouterMojoImplTest, ConnectRouteByRouteIdFails) { 558 TEST_F(MediaRouterMojoImplTest, ConnectRouteByRouteIdFails) {
561 EXPECT_CALL( 559 EXPECT_CALL(
562 mock_media_route_provider_, 560 mock_media_route_provider_,
563 ConnectRouteByRouteId(mojo::String(kSource), mojo::String(kRouteId), _, 561 ConnectRouteByRouteId(mojo::String(kSource), mojo::String(kRouteId), _,
564 mojo::String(kOrigin), kInvalidTabId, 562 mojo::String(kOrigin), kInvalidTabId,
565 kTimeoutMillis, true, _)) 563 kTimeoutMillis, true, _))
566 .WillOnce(Invoke( 564 .WillOnce(Invoke(
567 [](const mojo::String& source, const mojo::String& route_id, 565 [](const mojo::String& source, const mojo::String& route_id,
568 const mojo::String& presentation_id, const mojo::String& origin, 566 const mojo::String& presentation_id, const mojo::String& origin,
569 int tab_id, int64_t timeout_millis, bool off_the_record, 567 int tab_id, int64_t timeout_millis, bool incognito,
570 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) { 568 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) {
571 cb.Run(interfaces::MediaRoutePtr(), mojo::String(kError), 569 cb.Run(interfaces::MediaRoutePtr(), mojo::String(kError),
572 interfaces::RouteRequestResultCode::TIMED_OUT); 570 interfaces::RouteRequestResultCode::TIMED_OUT);
573 })); 571 }));
574 572
575 RouteResponseCallbackHandler handler; 573 RouteResponseCallbackHandler handler;
576 base::RunLoop run_loop; 574 base::RunLoop run_loop;
577 EXPECT_CALL(handler, 575 EXPECT_CALL(handler,
578 DoInvoke(nullptr, "", kError, RouteRequestResult::TIMED_OUT)) 576 DoInvoke(nullptr, "", kError, RouteRequestResult::TIMED_OUT))
579 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); 577 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
(...skipping 13 matching lines...) Expand all
593 // a limitation with GMock::Invoke that prevents it from using move-only types 591 // a limitation with GMock::Invoke that prevents it from using move-only types
594 // in runnable parameter lists. 592 // in runnable parameter lists.
595 EXPECT_CALL( 593 EXPECT_CALL(
596 mock_media_route_provider_, 594 mock_media_route_provider_,
597 ConnectRouteByRouteId(mojo::String(kSource), mojo::String(kRouteId), _, 595 ConnectRouteByRouteId(mojo::String(kSource), mojo::String(kRouteId), _,
598 mojo::String(kOrigin), kInvalidTabId, 596 mojo::String(kOrigin), kInvalidTabId,
599 kTimeoutMillis, true, _)) 597 kTimeoutMillis, true, _))
600 .WillOnce(Invoke([&route]( 598 .WillOnce(Invoke([&route](
601 const mojo::String& source, const mojo::String& route_id, 599 const mojo::String& source, const mojo::String& route_id,
602 const mojo::String& presentation_id, const mojo::String& origin, 600 const mojo::String& presentation_id, const mojo::String& origin,
603 int tab_id, int64_t timeout_millis, bool off_the_record, 601 int tab_id, int64_t timeout_millis, bool incognito,
604 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) { 602 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) {
605 cb.Run(std::move(route), mojo::String(), 603 cb.Run(std::move(route), mojo::String(),
606 interfaces::RouteRequestResultCode::OK); 604 interfaces::RouteRequestResultCode::OK);
607 })); 605 }));
608 606
609 RouteResponseCallbackHandler handler; 607 RouteResponseCallbackHandler handler;
610 base::RunLoop run_loop; 608 base::RunLoop run_loop;
611 std::string error( 609 std::string error("Mismatch in incognito status: request = 1, response = 0");
612 "Mismatch in off the record status: request = 1, response = 0");
613 EXPECT_CALL(handler, DoInvoke(nullptr, "", error, 610 EXPECT_CALL(handler, DoInvoke(nullptr, "", error,
614 RouteRequestResult::OFF_THE_RECORD_MISMATCH)) 611 RouteRequestResult::INCOGNITO_MISMATCH))
615 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); 612 .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
616 std::vector<MediaRouteResponseCallback> route_response_callbacks; 613 std::vector<MediaRouteResponseCallback> route_response_callbacks;
617 route_response_callbacks.push_back(base::Bind( 614 route_response_callbacks.push_back(base::Bind(
618 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); 615 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
619 router()->ConnectRouteByRouteId( 616 router()->ConnectRouteByRouteId(
620 kSource, kRouteId, GURL(kOrigin), nullptr, route_response_callbacks, 617 kSource, kRouteId, GURL(kOrigin), nullptr, route_response_callbacks,
621 base::TimeDelta::FromMilliseconds(kTimeoutMillis), true); 618 base::TimeDelta::FromMilliseconds(kTimeoutMillis), true);
622 run_loop.Run(); 619 run_loop.Run();
623 } 620 }
624 621
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
875 EXPECT_EQ(observer_captured, &different_routes_observer); 872 EXPECT_EQ(observer_captured, &different_routes_observer);
876 router()->RegisterMediaRoutesObserver(&routes_observer); 873 router()->RegisterMediaRoutesObserver(&routes_observer);
877 router()->RegisterMediaRoutesObserver(&extra_routes_observer); 874 router()->RegisterMediaRoutesObserver(&extra_routes_observer);
878 router()->RegisterMediaRoutesObserver(&different_routes_observer); 875 router()->RegisterMediaRoutesObserver(&different_routes_observer);
879 876
880 std::vector<MediaRoute> expected_routes; 877 std::vector<MediaRoute> expected_routes;
881 expected_routes.push_back(MediaRoute(kRouteId, media_source, kSinkId, 878 expected_routes.push_back(MediaRoute(kRouteId, media_source, kSinkId,
882 kDescription, false, "", false)); 879 kDescription, false, "", false));
883 MediaRoute incognito_expected_route(kRouteId2, media_source, kSinkId, 880 MediaRoute incognito_expected_route(kRouteId2, media_source, kSinkId,
884 kDescription, false, "", false); 881 kDescription, false, "", false);
885 incognito_expected_route.set_off_the_record(true); 882 incognito_expected_route.set_incognito(true);
886 expected_routes.push_back(incognito_expected_route); 883 expected_routes.push_back(incognito_expected_route);
887 std::vector<MediaRoute::Id> expected_joinable_route_ids; 884 std::vector<MediaRoute::Id> expected_joinable_route_ids;
888 expected_joinable_route_ids.push_back(kJoinableRouteId); 885 expected_joinable_route_ids.push_back(kJoinableRouteId);
889 expected_joinable_route_ids.push_back(kJoinableRouteId2); 886 expected_joinable_route_ids.push_back(kJoinableRouteId2);
890 887
891 mojo::Array<mojo::String> mojo_joinable_routes(2); 888 mojo::Array<mojo::String> mojo_joinable_routes(2);
892 mojo_joinable_routes[0] = kJoinableRouteId; 889 mojo_joinable_routes[0] = kJoinableRouteId;
893 mojo_joinable_routes[1] = kJoinableRouteId2; 890 mojo_joinable_routes[1] = kJoinableRouteId2;
894 891
895 mojo::Array<interfaces::MediaRoutePtr> mojo_routes(2); 892 mojo::Array<interfaces::MediaRoutePtr> mojo_routes(2);
896 mojo_routes[0] = CreateMojoRoute(); 893 mojo_routes[0] = CreateMojoRoute();
897 mojo_routes[1] = CreateMojoRoute(); 894 mojo_routes[1] = CreateMojoRoute();
898 mojo_routes[1]->media_route_id = kRouteId2; 895 mojo_routes[1]->media_route_id = kRouteId2;
899 mojo_routes[1]->off_the_record = true; 896 mojo_routes[1]->incognito = true;
900 897
901 EXPECT_CALL(routes_observer, OnRoutesUpdated(SequenceEquals(expected_routes), 898 EXPECT_CALL(routes_observer, OnRoutesUpdated(SequenceEquals(expected_routes),
902 expected_joinable_route_ids)); 899 expected_joinable_route_ids));
903 EXPECT_CALL(extra_routes_observer, 900 EXPECT_CALL(extra_routes_observer,
904 OnRoutesUpdated(SequenceEquals(expected_routes), 901 OnRoutesUpdated(SequenceEquals(expected_routes),
905 expected_joinable_route_ids)); 902 expected_joinable_route_ids));
906 EXPECT_CALL(different_routes_observer, 903 EXPECT_CALL(different_routes_observer,
907 OnRoutesUpdated(SequenceEquals(expected_routes), 904 OnRoutesUpdated(SequenceEquals(expected_routes),
908 expected_joinable_route_ids)) 905 expected_joinable_route_ids))
909 .Times(0); 906 .Times(0);
(...skipping 722 matching lines...) Expand 10 before | Expand all | Expand 10 after
1632 EXPECT_CALL(mock_media_route_provider_, 1629 EXPECT_CALL(mock_media_route_provider_,
1633 UpdateMediaSinks(mojo::String(MediaSourceForDesktop().id()))) 1630 UpdateMediaSinks(mojo::String(MediaSourceForDesktop().id())))
1634 .WillOnce(InvokeWithoutArgs([&run_loop2]() { 1631 .WillOnce(InvokeWithoutArgs([&run_loop2]() {
1635 run_loop2.Quit(); 1632 run_loop2.Quit();
1636 })); 1633 }));
1637 1634
1638 run_loop2.Run(); 1635 run_loop2.Run();
1639 } 1636 }
1640 1637
1641 } // namespace media_router 1638 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698