Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 43 namespace { | 43 namespace { |
| 44 | 44 |
| 45 const char kDescription[] = "description"; | 45 const char kDescription[] = "description"; |
| 46 const char kError[] = "error"; | 46 const char kError[] = "error"; |
| 47 const char kExtensionId[] = "extension1234"; | 47 const char kExtensionId[] = "extension1234"; |
| 48 const char kMessage[] = "message"; | 48 const char kMessage[] = "message"; |
| 49 const char kSource[] = "source1"; | 49 const char kSource[] = "source1"; |
| 50 const char kSource2[] = "source2"; | 50 const char kSource2[] = "source2"; |
| 51 const char kRouteId[] = "routeId"; | 51 const char kRouteId[] = "routeId"; |
| 52 const char kRouteId2[] = "routeId2"; | 52 const char kRouteId2[] = "routeId2"; |
| 53 const char kJoinableRouteId[] = "joinableRouteId2"; | |
|
imcheng
2015/12/01 23:45:06
"joinableRouteId"
matt.boetger
2015/12/03 01:19:20
Done.
| |
| 54 const char kJoinableRouteId2[] = "joinableRouteId2"; | |
| 53 const char kSinkId[] = "sink"; | 55 const char kSinkId[] = "sink"; |
| 54 const char kSinkId2[] = "sink2"; | 56 const char kSinkId2[] = "sink2"; |
| 55 const char kSinkName[] = "sinkName"; | 57 const char kSinkName[] = "sinkName"; |
| 56 const char kPresentationId[] = "presentationId"; | 58 const char kPresentationId[] = "presentationId"; |
| 57 const char kOrigin[] = "http://origin/"; | 59 const char kOrigin[] = "http://origin/"; |
| 58 const int kInvalidTabId = -1; | 60 const int kInvalidTabId = -1; |
| 59 const uint8 kBinaryMessage[] = {0x01, 0x02, 0x03, 0x04}; | 61 const uint8 kBinaryMessage[] = {0x01, 0x02, 0x03, 0x04}; |
| 60 | 62 |
| 61 bool ArePresentationSessionMessagesEqual( | 63 bool ArePresentationSessionMessagesEqual( |
| 62 const content::PresentationSessionMessage* expected, | 64 const content::PresentationSessionMessage* expected, |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 160 DISALLOW_COPY_AND_ASSIGN(TestProcessManager); | 162 DISALLOW_COPY_AND_ASSIGN(TestProcessManager); |
| 161 }; | 163 }; |
| 162 | 164 |
| 163 // Mockable class for awaiting RegisterMediaRouteProvider callbacks. | 165 // Mockable class for awaiting RegisterMediaRouteProvider callbacks. |
| 164 class RegisterMediaRouteProviderHandler { | 166 class RegisterMediaRouteProviderHandler { |
| 165 public: | 167 public: |
| 166 MOCK_METHOD1(Invoke, void(const std::string& instance_id)); | 168 MOCK_METHOD1(Invoke, void(const std::string& instance_id)); |
| 167 }; | 169 }; |
| 168 | 170 |
| 169 TEST_F(MediaRouterMojoImplTest, CreateRoute) { | 171 TEST_F(MediaRouterMojoImplTest, CreateRoute) { |
| 170 MediaRoute expected_route(kRouteId, MediaSource(std::string(kSource)), | 172 MediaSource media_source(kSource); |
| 173 MediaRoute expected_route(kRouteId, media_source, | |
| 171 kSinkId, "", false, "", false); | 174 kSinkId, "", false, "", false); |
| 172 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New(); | 175 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New(); |
| 173 route->media_source = kSource; | 176 route->media_source = kSource; |
| 174 route->media_sink_id = kSinkId; | 177 route->media_sink_id = kSinkId; |
| 175 route->media_route_id = kRouteId; | 178 route->media_route_id = kRouteId; |
| 176 route->description = kDescription; | 179 route->description = kDescription; |
| 177 | 180 |
| 178 // Use a lambda function as an invocation target here to work around | 181 // Use a lambda function as an invocation target here to work around |
| 179 // a limitation with GMock::Invoke that prevents it from using move-only types | 182 // a limitation with GMock::Invoke that prevents it from using move-only types |
| 180 // in runnable parameter lists. | 183 // in runnable parameter lists. |
| 181 EXPECT_CALL(mock_media_route_provider_, | 184 EXPECT_CALL(mock_media_route_provider_, |
| 182 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _, | 185 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _, |
| 183 mojo::String(kOrigin), kInvalidTabId, _)) | 186 mojo::String(kOrigin), kInvalidTabId, _)) |
| 184 .WillOnce(Invoke([&route]( | 187 .WillOnce(Invoke([&route]( |
| 185 const mojo::String& source, const mojo::String& sink, | 188 const mojo::String& source, const mojo::String& sink, |
| 186 const mojo::String& presentation_id, const mojo::String& origin, | 189 const mojo::String& presentation_id, const mojo::String& origin, |
| 187 int tab_id, | 190 int tab_id, |
| 188 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) { | 191 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) { |
| 189 cb.Run(route.Pass(), mojo::String()); | 192 cb.Run(route.Pass(), mojo::String()); |
| 190 })); | 193 })); |
| 191 EXPECT_CALL(mock_media_route_provider_, StartObservingMediaRoutes()); | 194 EXPECT_CALL(mock_media_route_provider_, |
| 195 StartObservingMediaRoutes(mojo::String(""))); | |
| 192 | 196 |
| 193 RouteResponseCallbackHandler handler; | 197 RouteResponseCallbackHandler handler; |
| 194 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), "")); | 198 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), "")); |
| 195 std::vector<MediaRouteResponseCallback> route_response_callbacks; | 199 std::vector<MediaRouteResponseCallback> route_response_callbacks; |
| 196 route_response_callbacks.push_back(base::Bind( | 200 route_response_callbacks.push_back(base::Bind( |
| 197 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); | 201 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); |
| 198 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr, | 202 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr, |
| 199 route_response_callbacks); | 203 route_response_callbacks); |
| 200 ProcessEventLoop(); | 204 ProcessEventLoop(); |
| 201 } | 205 } |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 216 EXPECT_CALL(handler, Invoke(nullptr, "", kError)); | 220 EXPECT_CALL(handler, Invoke(nullptr, "", kError)); |
| 217 std::vector<MediaRouteResponseCallback> route_response_callbacks; | 221 std::vector<MediaRouteResponseCallback> route_response_callbacks; |
| 218 route_response_callbacks.push_back(base::Bind( | 222 route_response_callbacks.push_back(base::Bind( |
| 219 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); | 223 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); |
| 220 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr, | 224 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr, |
| 221 route_response_callbacks); | 225 route_response_callbacks); |
| 222 ProcessEventLoop(); | 226 ProcessEventLoop(); |
| 223 } | 227 } |
| 224 | 228 |
| 225 TEST_F(MediaRouterMojoImplTest, JoinRoute) { | 229 TEST_F(MediaRouterMojoImplTest, JoinRoute) { |
| 226 MediaRoute expected_route(kRouteId, MediaSource(std::string(kSource)), | 230 MediaSource media_source(kSource); |
| 231 MediaRoute expected_route(kRouteId, media_source, | |
| 227 kSinkId, "", false, "", false); | 232 kSinkId, "", false, "", false); |
| 228 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New(); | 233 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New(); |
| 229 route->media_source = kSource; | 234 route->media_source = kSource; |
| 230 route->media_sink_id = kSinkId; | 235 route->media_sink_id = kSinkId; |
| 231 route->media_route_id = kRouteId; | 236 route->media_route_id = kRouteId; |
| 232 route->description = kDescription; | 237 route->description = kDescription; |
| 233 | 238 |
| 234 // Use a lambda function as an invocation target here to work around | 239 // Use a lambda function as an invocation target here to work around |
| 235 // a limitation with GMock::Invoke that prevents it from using move-only types | 240 // a limitation with GMock::Invoke that prevents it from using move-only types |
| 236 // in runnable parameter lists. | 241 // in runnable parameter lists. |
| 237 EXPECT_CALL(mock_media_route_provider_, | 242 EXPECT_CALL(mock_media_route_provider_, |
| 238 JoinRoute(mojo::String(kSource), mojo::String(kPresentationId), | 243 JoinRoute(mojo::String(kSource), mojo::String(kPresentationId), |
| 239 mojo::String(kOrigin), kInvalidTabId, _)) | 244 mojo::String(kOrigin), kInvalidTabId, _)) |
| 240 .WillOnce(Invoke([&route]( | 245 .WillOnce(Invoke([&route]( |
| 241 const mojo::String& source, const mojo::String& presentation_id, | 246 const mojo::String& source, const mojo::String& presentation_id, |
| 242 const mojo::String& origin, int tab_id, | 247 const mojo::String& origin, int tab_id, |
| 243 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) { | 248 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) { |
| 244 cb.Run(route.Pass(), mojo::String()); | 249 cb.Run(route.Pass(), mojo::String()); |
| 245 })); | 250 })); |
| 246 EXPECT_CALL(mock_media_route_provider_, StartObservingMediaRoutes()); | 251 EXPECT_CALL(mock_media_route_provider_, |
| 252 StartObservingMediaRoutes(mojo::String(""))); | |
| 247 | 253 |
| 248 RouteResponseCallbackHandler handler; | 254 RouteResponseCallbackHandler handler; |
| 249 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), "")); | 255 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), "")); |
| 250 std::vector<MediaRouteResponseCallback> route_response_callbacks; | 256 std::vector<MediaRouteResponseCallback> route_response_callbacks; |
| 251 route_response_callbacks.push_back(base::Bind( | 257 route_response_callbacks.push_back(base::Bind( |
| 252 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); | 258 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); |
| 253 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr, | 259 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr, |
| 254 route_response_callbacks); | 260 route_response_callbacks); |
| 255 ProcessEventLoop(); | 261 ProcessEventLoop(); |
| 256 } | 262 } |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 269 RouteResponseCallbackHandler handler; | 275 RouteResponseCallbackHandler handler; |
| 270 EXPECT_CALL(handler, Invoke(nullptr, "", kError)); | 276 EXPECT_CALL(handler, Invoke(nullptr, "", kError)); |
| 271 std::vector<MediaRouteResponseCallback> route_response_callbacks; | 277 std::vector<MediaRouteResponseCallback> route_response_callbacks; |
| 272 route_response_callbacks.push_back(base::Bind( | 278 route_response_callbacks.push_back(base::Bind( |
| 273 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); | 279 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); |
| 274 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr, | 280 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr, |
| 275 route_response_callbacks); | 281 route_response_callbacks); |
| 276 ProcessEventLoop(); | 282 ProcessEventLoop(); |
| 277 } | 283 } |
| 278 | 284 |
| 285 TEST_F(MediaRouterMojoImplTest, JoinRouteByRouteId) { | |
| 286 MediaSource media_source(kSource); | |
| 287 MediaRoute expected_route(kRouteId, media_source, | |
| 288 kSinkId, "", false, "", false); | |
| 289 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New(); | |
| 290 route->media_source = kSource; | |
| 291 route->media_sink_id = kSinkId; | |
| 292 route->media_route_id = kRouteId; | |
| 293 route->description = kDescription; | |
| 294 | |
| 295 std::string expected_presentation_id("non-local-join_"); | |
| 296 expected_presentation_id += kRouteId; | |
| 297 // Use a lambda function as an invocation target here to work around | |
| 298 // a limitation with GMock::Invoke that prevents it from using move-only types | |
| 299 // in runnable parameter lists. | |
| 300 EXPECT_CALL(mock_media_route_provider_, | |
| 301 JoinRoute(mojo::String(kSource), | |
| 302 mojo::String(expected_presentation_id), | |
| 303 mojo::String(kOrigin), kInvalidTabId, _)) | |
| 304 .WillOnce(Invoke([&route]( | |
| 305 const mojo::String& source, const mojo::String& presentation_id, | |
| 306 const mojo::String& origin, int tab_id, | |
| 307 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) { | |
| 308 cb.Run(route.Pass(), mojo::String()); | |
| 309 })); | |
| 310 EXPECT_CALL(mock_media_route_provider_, | |
| 311 StartObservingMediaRoutes(mojo::String(""))); | |
| 312 | |
| 313 RouteResponseCallbackHandler handler; | |
| 314 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), "")); | |
| 315 std::vector<MediaRouteResponseCallback> route_response_callbacks; | |
| 316 route_response_callbacks.push_back(base::Bind( | |
| 317 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); | |
| 318 router()->JoinRouteByRouteId(kSource, kRouteId, GURL(kOrigin), nullptr, | |
| 319 route_response_callbacks); | |
| 320 ProcessEventLoop(); | |
| 321 } | |
| 322 | |
| 323 TEST_F(MediaRouterMojoImplTest, JoinRouteByRouteIdFails) { | |
| 324 std::string expected_presentation_id("non-local-join_"); | |
| 325 expected_presentation_id += kRouteId; | |
| 326 EXPECT_CALL(mock_media_route_provider_, | |
| 327 JoinRoute(mojo::String(kSource), | |
| 328 mojo::String(expected_presentation_id), | |
| 329 mojo::String(kOrigin), kInvalidTabId, _)) | |
| 330 .WillOnce(Invoke( | |
| 331 [](const mojo::String& source, const mojo::String& presentation_id, | |
| 332 const mojo::String& origin, int tab_id, | |
| 333 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) { | |
| 334 cb.Run(interfaces::MediaRoutePtr(), mojo::String(kError)); | |
| 335 })); | |
| 336 | |
| 337 RouteResponseCallbackHandler handler; | |
| 338 EXPECT_CALL(handler, Invoke(nullptr, "", kError)); | |
| 339 std::vector<MediaRouteResponseCallback> route_response_callbacks; | |
| 340 route_response_callbacks.push_back(base::Bind( | |
| 341 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); | |
| 342 router()->JoinRouteByRouteId(kSource, kRouteId, GURL(kOrigin), nullptr, | |
| 343 route_response_callbacks); | |
| 344 ProcessEventLoop(); | |
| 345 } | |
| 346 | |
| 279 TEST_F(MediaRouterMojoImplTest, CloseRoute) { | 347 TEST_F(MediaRouterMojoImplTest, CloseRoute) { |
| 280 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId))); | 348 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId))); |
| 281 router()->CloseRoute(kRouteId); | 349 router()->CloseRoute(kRouteId); |
| 282 ProcessEventLoop(); | 350 ProcessEventLoop(); |
| 283 } | 351 } |
| 284 | 352 |
| 285 TEST_F(MediaRouterMojoImplTest, HandleIssue) { | 353 TEST_F(MediaRouterMojoImplTest, HandleIssue) { |
| 286 MockIssuesObserver issue_observer1(router()); | 354 MockIssuesObserver issue_observer1(router()); |
| 287 MockIssuesObserver issue_observer2(router()); | 355 MockIssuesObserver issue_observer2(router()); |
| 288 issue_observer1.RegisterObserver(); | 356 issue_observer1.RegisterObserver(); |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 480 EXPECT_CALL(mock_media_route_provider_, | 548 EXPECT_CALL(mock_media_route_provider_, |
| 481 StopObservingMediaSinks(mojo::String(kSource2))) | 549 StopObservingMediaSinks(mojo::String(kSource2))) |
| 482 .Times(1); | 550 .Times(1); |
| 483 sinks_observer.reset(); // Unregisters kSource from router(). | 551 sinks_observer.reset(); // Unregisters kSource from router(). |
| 484 sinks_observer2.reset(); // Unregisters kSource2 from router(). | 552 sinks_observer2.reset(); // Unregisters kSource2 from router(). |
| 485 ProcessEventLoop(); | 553 ProcessEventLoop(); |
| 486 } | 554 } |
| 487 | 555 |
| 488 TEST_F(MediaRouterMojoImplTest, RegisterAndUnregisterMediaRoutesObserver) { | 556 TEST_F(MediaRouterMojoImplTest, RegisterAndUnregisterMediaRoutesObserver) { |
| 489 MockMediaRouter mock_router; | 557 MockMediaRouter mock_router; |
| 490 EXPECT_CALL(mock_media_route_provider_, StartObservingMediaRoutes()).Times(2); | 558 MediaSource media_source(kSource); |
| 559 MediaSource different_media_source(kSource2); | |
| 560 EXPECT_CALL(mock_media_route_provider_, | |
| 561 StartObservingMediaRoutes(mojo::String(media_source.id()))).Times(2); | |
| 562 EXPECT_CALL(mock_media_route_provider_, | |
| 563 StartObservingMediaRoutes( | |
| 564 mojo::String(different_media_source.id()))).Times(1); | |
| 491 | 565 |
| 492 MediaRoutesObserver* observer_captured; | 566 MediaRoutesObserver* observer_captured; |
| 493 EXPECT_CALL(mock_router, RegisterMediaRoutesObserver(_)) | 567 EXPECT_CALL(mock_router, RegisterMediaRoutesObserver(_)) |
| 494 .Times(2) | 568 .Times(3) |
| 495 .WillRepeatedly(SaveArg<0>(&observer_captured)); | 569 .WillRepeatedly(SaveArg<0>(&observer_captured)); |
| 496 MockMediaRoutesObserver routes_observer(&mock_router); | 570 MockMediaRoutesObserver routes_observer(&mock_router, media_source.id()); |
| 497 EXPECT_EQ(observer_captured, &routes_observer); | 571 EXPECT_EQ(observer_captured, &routes_observer); |
| 498 MockMediaRoutesObserver extra_routes_observer(&mock_router); | 572 MockMediaRoutesObserver extra_routes_observer(&mock_router, |
| 573 media_source.id()); | |
| 499 EXPECT_EQ(observer_captured, &extra_routes_observer); | 574 EXPECT_EQ(observer_captured, &extra_routes_observer); |
| 575 MockMediaRoutesObserver different_routes_observer(&mock_router, | |
| 576 different_media_source.id()); | |
| 577 EXPECT_EQ(observer_captured, &different_routes_observer); | |
| 500 router()->RegisterMediaRoutesObserver(&routes_observer); | 578 router()->RegisterMediaRoutesObserver(&routes_observer); |
| 501 router()->RegisterMediaRoutesObserver(&extra_routes_observer); | 579 router()->RegisterMediaRoutesObserver(&extra_routes_observer); |
| 580 router()->RegisterMediaRoutesObserver(&different_routes_observer); | |
| 502 | 581 |
| 503 std::vector<MediaRoute> expected_routes; | 582 std::vector<MediaRoute> expected_routes; |
| 504 expected_routes.push_back(MediaRoute(kRouteId, MediaSource(kSource), kSinkId, | 583 expected_routes.push_back(MediaRoute(kRouteId, media_source, kSinkId, |
| 505 kDescription, false, "", false)); | 584 kDescription, false, "", false)); |
| 506 expected_routes.push_back(MediaRoute(kRouteId2, MediaSource(kSource), kSinkId, | 585 expected_routes.push_back(MediaRoute(kRouteId2, media_source, kSinkId, |
| 507 kDescription, false, "", false)); | 586 kDescription, false, "", false)); |
| 587 std::vector<MediaRoute::Id> expected_joinable_route_ids; | |
| 588 expected_joinable_route_ids.push_back(kJoinableRouteId); | |
| 589 expected_joinable_route_ids.push_back(kJoinableRouteId2); | |
| 590 | |
| 591 mojo::Array<mojo::String> mojo_joinable_routes(2); | |
| 592 mojo_joinable_routes[0] = kJoinableRouteId; | |
| 593 mojo_joinable_routes[1] = kJoinableRouteId2; | |
| 508 | 594 |
| 509 mojo::Array<interfaces::MediaRoutePtr> mojo_routes(2); | 595 mojo::Array<interfaces::MediaRoutePtr> mojo_routes(2); |
| 510 mojo_routes[0] = interfaces::MediaRoute::New(); | 596 mojo_routes[0] = interfaces::MediaRoute::New(); |
| 511 mojo_routes[0]->media_route_id = kRouteId; | 597 mojo_routes[0]->media_route_id = kRouteId; |
| 512 mojo_routes[0]->media_source = kSource; | 598 mojo_routes[0]->media_source = kSource; |
| 513 mojo_routes[0]->media_sink_id = kSinkId; | 599 mojo_routes[0]->media_sink_id = kSinkId; |
| 514 mojo_routes[0]->description = kDescription; | 600 mojo_routes[0]->description = kDescription; |
| 515 mojo_routes[0]->is_local = false; | 601 mojo_routes[0]->is_local = false; |
| 516 mojo_routes[1] = interfaces::MediaRoute::New(); | 602 mojo_routes[1] = interfaces::MediaRoute::New(); |
| 517 mojo_routes[1]->media_route_id = kRouteId2; | 603 mojo_routes[1]->media_route_id = kRouteId2; |
| 518 mojo_routes[1]->media_source = kSource; | 604 mojo_routes[1]->media_source = kSource; |
| 519 mojo_routes[1]->media_sink_id = kSinkId; | 605 mojo_routes[1]->media_sink_id = kSinkId; |
| 520 mojo_routes[1]->description = kDescription; | 606 mojo_routes[1]->description = kDescription; |
| 521 mojo_routes[1]->is_local = false; | 607 mojo_routes[1]->is_local = false; |
| 522 | 608 |
| 523 EXPECT_CALL(routes_observer, | 609 EXPECT_CALL(routes_observer, |
| 524 OnRoutesUpdated(SequenceEquals(expected_routes))); | 610 OnRoutesUpdated(SequenceEquals(expected_routes), |
| 611 expected_joinable_route_ids)); | |
| 525 EXPECT_CALL(extra_routes_observer, | 612 EXPECT_CALL(extra_routes_observer, |
| 526 OnRoutesUpdated(SequenceEquals(expected_routes))); | 613 OnRoutesUpdated(SequenceEquals(expected_routes), |
| 527 media_router_proxy_->OnRoutesUpdated(mojo_routes.Pass()); | 614 expected_joinable_route_ids)); |
| 615 EXPECT_CALL(different_routes_observer, | |
| 616 OnRoutesUpdated(SequenceEquals(expected_routes), | |
| 617 expected_joinable_route_ids)).Times(0); | |
| 618 media_router_proxy_->OnRoutesUpdated(media_source.id(), | |
| 619 mojo_routes.Pass(), | |
| 620 mojo_joinable_routes.Pass()); | |
| 528 ProcessEventLoop(); | 621 ProcessEventLoop(); |
| 529 | 622 |
| 530 EXPECT_CALL(mock_router, UnregisterMediaRoutesObserver(&routes_observer)); | 623 EXPECT_CALL(mock_router, UnregisterMediaRoutesObserver(&routes_observer)); |
| 531 EXPECT_CALL(mock_router, | 624 EXPECT_CALL(mock_router, |
| 532 UnregisterMediaRoutesObserver(&extra_routes_observer)); | 625 UnregisterMediaRoutesObserver(&extra_routes_observer)); |
| 626 EXPECT_CALL(mock_router, | |
| 627 UnregisterMediaRoutesObserver(&different_routes_observer)); | |
| 533 router()->UnregisterMediaRoutesObserver(&routes_observer); | 628 router()->UnregisterMediaRoutesObserver(&routes_observer); |
| 534 router()->UnregisterMediaRoutesObserver(&extra_routes_observer); | 629 router()->UnregisterMediaRoutesObserver(&extra_routes_observer); |
| 535 EXPECT_CALL(mock_media_route_provider_, StopObservingMediaRoutes()); | 630 router()->UnregisterMediaRoutesObserver(&different_routes_observer); |
| 631 EXPECT_CALL(mock_media_route_provider_, | |
| 632 StopObservingMediaRoutes(mojo::String(media_source.id()))); | |
| 633 EXPECT_CALL(mock_media_route_provider_, | |
| 634 StopObservingMediaRoutes( | |
| 635 mojo::String(different_media_source.id()))); | |
| 536 ProcessEventLoop(); | 636 ProcessEventLoop(); |
| 537 } | 637 } |
| 538 | 638 |
| 539 TEST_F(MediaRouterMojoImplTest, SendRouteMessage) { | 639 TEST_F(MediaRouterMojoImplTest, SendRouteMessage) { |
| 540 EXPECT_CALL( | 640 EXPECT_CALL( |
| 541 mock_media_route_provider_, | 641 mock_media_route_provider_, |
| 542 SendRouteMessage(mojo::String(kRouteId), mojo::String(kMessage), _)) | 642 SendRouteMessage(mojo::String(kRouteId), mojo::String(kMessage), _)) |
| 543 .WillOnce(Invoke([]( | 643 .WillOnce(Invoke([]( |
| 544 const MediaRoute::Id& route_id, const std::string& message, | 644 const MediaRoute::Id& route_id, const std::string& message, |
| 545 const interfaces::MediaRouteProvider::SendRouteMessageCallback& cb) { | 645 const interfaces::MediaRouteProvider::SendRouteMessageCallback& cb) { |
| (...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 946 EXPECT_CALL(provide_handler_, Invoke(testing::Not(""))); | 1046 EXPECT_CALL(provide_handler_, Invoke(testing::Not(""))); |
| 947 EXPECT_CALL(*process_manager_, IsEventPageSuspended(kExtensionId)) | 1047 EXPECT_CALL(*process_manager_, IsEventPageSuspended(kExtensionId)) |
| 948 .WillOnce(Return(false)); | 1048 .WillOnce(Return(false)); |
| 949 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId2))) | 1049 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId2))) |
| 950 .Times(kMaxPendingRequests); | 1050 .Times(kMaxPendingRequests); |
| 951 RegisterMediaRouteProvider(); | 1051 RegisterMediaRouteProvider(); |
| 952 ProcessEventLoop(); | 1052 ProcessEventLoop(); |
| 953 } | 1053 } |
| 954 | 1054 |
| 955 } // namespace media_router | 1055 } // namespace media_router |
| OLD | NEW |