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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 46 namespace { | 46 namespace { |
| 47 | 47 |
| 48 const char kDescription[] = "description"; | 48 const char kDescription[] = "description"; |
| 49 const char kError[] = "error"; | 49 const char kError[] = "error"; |
| 50 const char kExtensionId[] = "extension1234"; | 50 const char kExtensionId[] = "extension1234"; |
| 51 const char kMessage[] = "message"; | 51 const char kMessage[] = "message"; |
| 52 const char kSource[] = "source1"; | 52 const char kSource[] = "source1"; |
| 53 const char kSource2[] = "source2"; | 53 const char kSource2[] = "source2"; |
| 54 const char kRouteId[] = "routeId"; | 54 const char kRouteId[] = "routeId"; |
| 55 const char kRouteId2[] = "routeId2"; | 55 const char kRouteId2[] = "routeId2"; |
| 56 const char kJoinableRouteId[] = "joinableRouteId"; | |
| 57 const char kJoinableRouteId2[] = "joinableRouteId2"; | |
| 56 const char kSinkId[] = "sink"; | 58 const char kSinkId[] = "sink"; |
| 57 const char kSinkId2[] = "sink2"; | 59 const char kSinkId2[] = "sink2"; |
| 58 const char kSinkName[] = "sinkName"; | 60 const char kSinkName[] = "sinkName"; |
| 59 const char kPresentationId[] = "presentationId"; | 61 const char kPresentationId[] = "presentationId"; |
| 60 const char kOrigin[] = "http://origin/"; | 62 const char kOrigin[] = "http://origin/"; |
| 61 const int kInvalidTabId = -1; | 63 const int kInvalidTabId = -1; |
| 62 const uint8 kBinaryMessage[] = {0x01, 0x02, 0x03, 0x04}; | 64 const uint8 kBinaryMessage[] = {0x01, 0x02, 0x03, 0x04}; |
| 63 | 65 |
| 64 bool ArePresentationSessionMessagesEqual( | 66 bool ArePresentationSessionMessagesEqual( |
| 65 const content::PresentationSessionMessage* expected, | 67 const content::PresentationSessionMessage* expected, |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 163 DISALLOW_COPY_AND_ASSIGN(TestProcessManager); | 165 DISALLOW_COPY_AND_ASSIGN(TestProcessManager); |
| 164 }; | 166 }; |
| 165 | 167 |
| 166 // Mockable class for awaiting RegisterMediaRouteProvider callbacks. | 168 // Mockable class for awaiting RegisterMediaRouteProvider callbacks. |
| 167 class RegisterMediaRouteProviderHandler { | 169 class RegisterMediaRouteProviderHandler { |
| 168 public: | 170 public: |
| 169 MOCK_METHOD1(Invoke, void(const std::string& instance_id)); | 171 MOCK_METHOD1(Invoke, void(const std::string& instance_id)); |
| 170 }; | 172 }; |
| 171 | 173 |
| 172 TEST_F(MediaRouterMojoImplTest, CreateRoute) { | 174 TEST_F(MediaRouterMojoImplTest, CreateRoute) { |
| 173 MediaRoute expected_route(kRouteId, MediaSource(std::string(kSource)), | 175 MediaSource media_source(kSource); |
| 176 MediaRoute expected_route(kRouteId, media_source, | |
| 174 kSinkId, "", false, "", false); | 177 kSinkId, "", false, "", false); |
| 175 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New(); | 178 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New(); |
| 176 route->media_source = kSource; | 179 route->media_source = kSource; |
| 177 route->media_sink_id = kSinkId; | 180 route->media_sink_id = kSinkId; |
| 178 route->media_route_id = kRouteId; | 181 route->media_route_id = kRouteId; |
| 179 route->description = kDescription; | 182 route->description = kDescription; |
| 180 route->is_local = true; | 183 route->is_local = true; |
| 181 route->for_display = true; | 184 route->for_display = true; |
| 182 | 185 |
| 183 // Use a lambda function as an invocation target here to work around | 186 // Use a lambda function as an invocation target here to work around |
| 184 // a limitation with GMock::Invoke that prevents it from using move-only types | 187 // a limitation with GMock::Invoke that prevents it from using move-only types |
| 185 // in runnable parameter lists. | 188 // in runnable parameter lists. |
| 186 EXPECT_CALL(mock_media_route_provider_, | 189 EXPECT_CALL(mock_media_route_provider_, |
| 187 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _, | 190 CreateRoute(mojo::String(kSource), mojo::String(kSinkId), _, |
| 188 mojo::String(kOrigin), kInvalidTabId, _)) | 191 mojo::String(kOrigin), kInvalidTabId, _)) |
| 189 .WillOnce(Invoke([&route]( | 192 .WillOnce(Invoke([&route]( |
| 190 const mojo::String& source, const mojo::String& sink, | 193 const mojo::String& source, const mojo::String& sink, |
| 191 const mojo::String& presentation_id, const mojo::String& origin, | 194 const mojo::String& presentation_id, const mojo::String& origin, |
| 192 int tab_id, | 195 int tab_id, |
| 193 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) { | 196 const interfaces::MediaRouteProvider::CreateRouteCallback& cb) { |
| 194 cb.Run(route.Pass(), mojo::String()); | 197 cb.Run(route.Pass(), mojo::String()); |
| 195 })); | 198 })); |
| 196 | |
| 197 // MediaRouterMojoImpl will start observing local displayable routes as a | 199 // MediaRouterMojoImpl will start observing local displayable routes as a |
| 198 // result of having one created. | 200 // result of having one created. |
| 199 EXPECT_CALL(mock_media_route_provider_, StartObservingMediaRoutes()); | 201 EXPECT_CALL(mock_media_route_provider_, |
| 202 StartObservingMediaRoutes(mojo::String(""))); | |
| 200 | 203 |
| 201 RouteResponseCallbackHandler handler; | 204 RouteResponseCallbackHandler handler; |
| 202 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), "")); | 205 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), "")); |
| 203 std::vector<MediaRouteResponseCallback> route_response_callbacks; | 206 std::vector<MediaRouteResponseCallback> route_response_callbacks; |
| 204 route_response_callbacks.push_back(base::Bind( | 207 route_response_callbacks.push_back(base::Bind( |
| 205 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); | 208 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); |
| 206 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr, | 209 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr, |
| 207 route_response_callbacks); | 210 route_response_callbacks); |
| 208 ProcessEventLoop(); | 211 ProcessEventLoop(); |
| 209 } | 212 } |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 224 EXPECT_CALL(handler, Invoke(nullptr, "", kError)); | 227 EXPECT_CALL(handler, Invoke(nullptr, "", kError)); |
| 225 std::vector<MediaRouteResponseCallback> route_response_callbacks; | 228 std::vector<MediaRouteResponseCallback> route_response_callbacks; |
| 226 route_response_callbacks.push_back(base::Bind( | 229 route_response_callbacks.push_back(base::Bind( |
| 227 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); | 230 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); |
| 228 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr, | 231 router()->CreateRoute(kSource, kSinkId, GURL(kOrigin), nullptr, |
| 229 route_response_callbacks); | 232 route_response_callbacks); |
| 230 ProcessEventLoop(); | 233 ProcessEventLoop(); |
| 231 } | 234 } |
| 232 | 235 |
| 233 TEST_F(MediaRouterMojoImplTest, JoinRoute) { | 236 TEST_F(MediaRouterMojoImplTest, JoinRoute) { |
| 234 MediaRoute expected_route(kRouteId, MediaSource(std::string(kSource)), | 237 MediaSource media_source(kSource); |
| 238 MediaRoute expected_route(kRouteId, media_source, | |
| 235 kSinkId, "", false, "", false); | 239 kSinkId, "", false, "", false); |
| 236 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New(); | 240 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New(); |
| 237 route->media_source = kSource; | 241 route->media_source = kSource; |
| 238 route->media_sink_id = kSinkId; | 242 route->media_sink_id = kSinkId; |
| 239 route->media_route_id = kRouteId; | 243 route->media_route_id = kRouteId; |
| 240 route->description = kDescription; | 244 route->description = kDescription; |
| 241 route->is_local = true; | 245 route->is_local = true; |
| 242 route->for_display = true; | 246 route->for_display = true; |
| 243 | 247 |
| 244 // Use a lambda function as an invocation target here to work around | 248 // Use a lambda function as an invocation target here to work around |
| 245 // a limitation with GMock::Invoke that prevents it from using move-only types | 249 // a limitation with GMock::Invoke that prevents it from using move-only types |
| 246 // in runnable parameter lists. | 250 // in runnable parameter lists. |
| 247 EXPECT_CALL(mock_media_route_provider_, | 251 EXPECT_CALL(mock_media_route_provider_, |
| 248 JoinRoute(mojo::String(kSource), mojo::String(kPresentationId), | 252 JoinRoute(mojo::String(kSource), mojo::String(kPresentationId), |
| 249 mojo::String(kOrigin), kInvalidTabId, _)) | 253 mojo::String(kOrigin), kInvalidTabId, _)) |
| 250 .WillOnce(Invoke([&route]( | 254 .WillOnce(Invoke([&route]( |
| 251 const mojo::String& source, const mojo::String& presentation_id, | 255 const mojo::String& source, const mojo::String& presentation_id, |
| 252 const mojo::String& origin, int tab_id, | 256 const mojo::String& origin, int tab_id, |
| 253 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) { | 257 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) { |
| 254 cb.Run(route.Pass(), mojo::String()); | 258 cb.Run(route.Pass(), mojo::String()); |
| 255 })); | 259 })); |
| 256 | 260 |
| 257 // MediaRouterMojoImpl will start observing local displayable routes as a | 261 // MediaRouterMojoImpl will start observing local displayable routes as a |
| 258 // result of having one created. | 262 // result of having one created. |
| 259 EXPECT_CALL(mock_media_route_provider_, StartObservingMediaRoutes()); | 263 EXPECT_CALL(mock_media_route_provider_, |
| 264 StartObservingMediaRoutes(mojo::String(""))); | |
| 260 | 265 |
| 261 RouteResponseCallbackHandler handler; | 266 RouteResponseCallbackHandler handler; |
| 262 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), "")); | 267 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), "")); |
| 263 std::vector<MediaRouteResponseCallback> route_response_callbacks; | 268 std::vector<MediaRouteResponseCallback> route_response_callbacks; |
| 264 route_response_callbacks.push_back(base::Bind( | 269 route_response_callbacks.push_back(base::Bind( |
| 265 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); | 270 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); |
| 266 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr, | 271 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr, |
| 267 route_response_callbacks); | 272 route_response_callbacks); |
| 268 ProcessEventLoop(); | 273 ProcessEventLoop(); |
| 269 } | 274 } |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 282 RouteResponseCallbackHandler handler; | 287 RouteResponseCallbackHandler handler; |
| 283 EXPECT_CALL(handler, Invoke(nullptr, "", kError)); | 288 EXPECT_CALL(handler, Invoke(nullptr, "", kError)); |
| 284 std::vector<MediaRouteResponseCallback> route_response_callbacks; | 289 std::vector<MediaRouteResponseCallback> route_response_callbacks; |
| 285 route_response_callbacks.push_back(base::Bind( | 290 route_response_callbacks.push_back(base::Bind( |
| 286 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); | 291 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); |
| 287 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr, | 292 router()->JoinRoute(kSource, kPresentationId, GURL(kOrigin), nullptr, |
| 288 route_response_callbacks); | 293 route_response_callbacks); |
| 289 ProcessEventLoop(); | 294 ProcessEventLoop(); |
| 290 } | 295 } |
| 291 | 296 |
| 297 TEST_F(MediaRouterMojoImplTest, JoinRouteByRouteId) { | |
| 298 MediaSource media_source(kSource); | |
| 299 MediaRoute expected_route(kRouteId, media_source, | |
| 300 kSinkId, "", false, "", false); | |
| 301 interfaces::MediaRoutePtr route = interfaces::MediaRoute::New(); | |
| 302 route->media_source = kSource; | |
| 303 route->media_sink_id = kSinkId; | |
| 304 route->media_route_id = kRouteId; | |
| 305 route->description = kDescription; | |
| 306 route->is_local = true; | |
| 307 route->for_display = true; | |
| 308 | |
| 309 std::string expected_presentation_id("non-local-join_"); | |
| 310 expected_presentation_id += kRouteId; | |
| 311 // Use a lambda function as an invocation target here to work around | |
| 312 // a limitation with GMock::Invoke that prevents it from using move-only types | |
| 313 // in runnable parameter lists. | |
| 314 EXPECT_CALL(mock_media_route_provider_, | |
| 315 JoinRoute(mojo::String(kSource), | |
| 316 mojo::String(expected_presentation_id), | |
| 317 mojo::String(kOrigin), kInvalidTabId, _)) | |
| 318 .WillOnce(Invoke([&route]( | |
| 319 const mojo::String& source, const mojo::String& presentation_id, | |
| 320 const mojo::String& origin, int tab_id, | |
| 321 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) { | |
| 322 cb.Run(route.Pass(), mojo::String()); | |
| 323 })); | |
| 324 EXPECT_CALL(mock_media_route_provider_, | |
| 325 StartObservingMediaRoutes(mojo::String(""))); | |
|
mark a. foltz
2015/12/09 00:48:17
Shouldn't a real media source be passed to StartOb
matt.boetger
2015/12/15 19:21:20
No, because this StartObservingMediaRoutes comes f
| |
| 326 | |
| 327 RouteResponseCallbackHandler handler; | |
| 328 EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), "")); | |
| 329 std::vector<MediaRouteResponseCallback> route_response_callbacks; | |
| 330 route_response_callbacks.push_back(base::Bind( | |
| 331 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); | |
| 332 router()->JoinRouteByRouteId(kSource, kRouteId, GURL(kOrigin), nullptr, | |
| 333 route_response_callbacks); | |
| 334 ProcessEventLoop(); | |
| 335 } | |
| 336 | |
| 337 TEST_F(MediaRouterMojoImplTest, JoinRouteByRouteIdFails) { | |
| 338 std::string expected_presentation_id("non-local-join_"); | |
| 339 expected_presentation_id += kRouteId; | |
| 340 EXPECT_CALL(mock_media_route_provider_, | |
| 341 JoinRoute(mojo::String(kSource), | |
| 342 mojo::String(expected_presentation_id), | |
| 343 mojo::String(kOrigin), kInvalidTabId, _)) | |
| 344 .WillOnce(Invoke( | |
| 345 [](const mojo::String& source, const mojo::String& presentation_id, | |
| 346 const mojo::String& origin, int tab_id, | |
| 347 const interfaces::MediaRouteProvider::JoinRouteCallback& cb) { | |
| 348 cb.Run(interfaces::MediaRoutePtr(), mojo::String(kError)); | |
| 349 })); | |
| 350 | |
| 351 RouteResponseCallbackHandler handler; | |
| 352 EXPECT_CALL(handler, Invoke(nullptr, "", kError)); | |
| 353 std::vector<MediaRouteResponseCallback> route_response_callbacks; | |
| 354 route_response_callbacks.push_back(base::Bind( | |
| 355 &RouteResponseCallbackHandler::Invoke, base::Unretained(&handler))); | |
| 356 router()->JoinRouteByRouteId(kSource, kRouteId, GURL(kOrigin), nullptr, | |
| 357 route_response_callbacks); | |
| 358 ProcessEventLoop(); | |
| 359 } | |
| 360 | |
| 292 TEST_F(MediaRouterMojoImplTest, CloseRoute) { | 361 TEST_F(MediaRouterMojoImplTest, CloseRoute) { |
| 293 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId))); | 362 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId))); |
| 294 router()->CloseRoute(kRouteId); | 363 router()->CloseRoute(kRouteId); |
| 295 ProcessEventLoop(); | 364 ProcessEventLoop(); |
| 296 } | 365 } |
| 297 | 366 |
| 298 TEST_F(MediaRouterMojoImplTest, HandleIssue) { | 367 TEST_F(MediaRouterMojoImplTest, HandleIssue) { |
| 299 MockIssuesObserver issue_observer1(router()); | 368 MockIssuesObserver issue_observer1(router()); |
| 300 MockIssuesObserver issue_observer2(router()); | 369 MockIssuesObserver issue_observer2(router()); |
| 301 issue_observer1.RegisterObserver(); | 370 issue_observer1.RegisterObserver(); |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 492 EXPECT_CALL(mock_media_route_provider_, | 561 EXPECT_CALL(mock_media_route_provider_, |
| 493 StopObservingMediaSinks(mojo::String(kSource2))) | 562 StopObservingMediaSinks(mojo::String(kSource2))) |
| 494 .Times(1); | 563 .Times(1); |
| 495 sinks_observer.reset(); // Unregisters kSource from router(). | 564 sinks_observer.reset(); // Unregisters kSource from router(). |
| 496 sinks_observer2.reset(); // Unregisters kSource2 from router(). | 565 sinks_observer2.reset(); // Unregisters kSource2 from router(). |
| 497 ProcessEventLoop(); | 566 ProcessEventLoop(); |
| 498 } | 567 } |
| 499 | 568 |
| 500 TEST_F(MediaRouterMojoImplTest, RegisterAndUnregisterMediaRoutesObserver) { | 569 TEST_F(MediaRouterMojoImplTest, RegisterAndUnregisterMediaRoutesObserver) { |
| 501 MockMediaRouter mock_router; | 570 MockMediaRouter mock_router; |
| 502 EXPECT_CALL(mock_media_route_provider_, StartObservingMediaRoutes()).Times(2); | 571 MediaSource media_source(kSource); |
| 572 MediaSource different_media_source(kSource2); | |
| 573 EXPECT_CALL(mock_media_route_provider_, | |
| 574 StartObservingMediaRoutes(mojo::String(media_source.id()))).Times(2); | |
| 575 EXPECT_CALL(mock_media_route_provider_, | |
| 576 StartObservingMediaRoutes( | |
| 577 mojo::String(different_media_source.id()))).Times(1); | |
| 503 | 578 |
| 504 MediaRoutesObserver* observer_captured; | 579 MediaRoutesObserver* observer_captured; |
| 505 EXPECT_CALL(mock_router, RegisterMediaRoutesObserver(_)) | 580 EXPECT_CALL(mock_router, RegisterMediaRoutesObserver(_)) |
| 506 .Times(2) | 581 .Times(3) |
| 507 .WillRepeatedly(SaveArg<0>(&observer_captured)); | 582 .WillRepeatedly(SaveArg<0>(&observer_captured)); |
| 508 MockMediaRoutesObserver routes_observer(&mock_router); | 583 MockMediaRoutesObserver routes_observer(&mock_router, media_source.id()); |
| 509 EXPECT_EQ(observer_captured, &routes_observer); | 584 EXPECT_EQ(observer_captured, &routes_observer); |
| 510 MockMediaRoutesObserver extra_routes_observer(&mock_router); | 585 MockMediaRoutesObserver extra_routes_observer(&mock_router, |
| 586 media_source.id()); | |
| 511 EXPECT_EQ(observer_captured, &extra_routes_observer); | 587 EXPECT_EQ(observer_captured, &extra_routes_observer); |
| 588 MockMediaRoutesObserver different_routes_observer(&mock_router, | |
| 589 different_media_source.id()); | |
| 590 EXPECT_EQ(observer_captured, &different_routes_observer); | |
| 512 router()->RegisterMediaRoutesObserver(&routes_observer); | 591 router()->RegisterMediaRoutesObserver(&routes_observer); |
| 513 router()->RegisterMediaRoutesObserver(&extra_routes_observer); | 592 router()->RegisterMediaRoutesObserver(&extra_routes_observer); |
| 593 router()->RegisterMediaRoutesObserver(&different_routes_observer); | |
| 514 | 594 |
| 515 std::vector<MediaRoute> expected_routes; | 595 std::vector<MediaRoute> expected_routes; |
| 516 expected_routes.push_back(MediaRoute(kRouteId, MediaSource(kSource), kSinkId, | 596 expected_routes.push_back(MediaRoute(kRouteId, media_source, kSinkId, |
| 517 kDescription, false, "", false)); | 597 kDescription, false, "", false)); |
| 518 expected_routes.push_back(MediaRoute(kRouteId2, MediaSource(kSource), kSinkId, | 598 expected_routes.push_back(MediaRoute(kRouteId2, media_source, kSinkId, |
| 519 kDescription, false, "", false)); | 599 kDescription, false, "", false)); |
| 600 std::vector<MediaRoute::Id> expected_joinable_route_ids; | |
| 601 expected_joinable_route_ids.push_back(kJoinableRouteId); | |
| 602 expected_joinable_route_ids.push_back(kJoinableRouteId2); | |
| 603 | |
| 604 mojo::Array<mojo::String> mojo_joinable_routes(2); | |
| 605 mojo_joinable_routes[0] = kJoinableRouteId; | |
| 606 mojo_joinable_routes[1] = kJoinableRouteId2; | |
| 520 | 607 |
| 521 mojo::Array<interfaces::MediaRoutePtr> mojo_routes(2); | 608 mojo::Array<interfaces::MediaRoutePtr> mojo_routes(2); |
| 522 mojo_routes[0] = interfaces::MediaRoute::New(); | 609 mojo_routes[0] = interfaces::MediaRoute::New(); |
| 523 mojo_routes[0]->media_route_id = kRouteId; | 610 mojo_routes[0]->media_route_id = kRouteId; |
| 524 mojo_routes[0]->media_source = kSource; | 611 mojo_routes[0]->media_source = kSource; |
| 525 mojo_routes[0]->media_sink_id = kSinkId; | 612 mojo_routes[0]->media_sink_id = kSinkId; |
| 526 mojo_routes[0]->description = kDescription; | 613 mojo_routes[0]->description = kDescription; |
| 527 mojo_routes[0]->is_local = false; | 614 mojo_routes[0]->is_local = false; |
| 528 mojo_routes[1] = interfaces::MediaRoute::New(); | 615 mojo_routes[1] = interfaces::MediaRoute::New(); |
| 529 mojo_routes[1]->media_route_id = kRouteId2; | 616 mojo_routes[1]->media_route_id = kRouteId2; |
| 530 mojo_routes[1]->media_source = kSource; | 617 mojo_routes[1]->media_source = kSource; |
| 531 mojo_routes[1]->media_sink_id = kSinkId; | 618 mojo_routes[1]->media_sink_id = kSinkId; |
| 532 mojo_routes[1]->description = kDescription; | 619 mojo_routes[1]->description = kDescription; |
| 533 mojo_routes[1]->is_local = false; | 620 mojo_routes[1]->is_local = false; |
| 534 | 621 |
| 535 EXPECT_CALL(routes_observer, | 622 EXPECT_CALL(routes_observer, |
| 536 OnRoutesUpdated(SequenceEquals(expected_routes))); | 623 OnRoutesUpdated(SequenceEquals(expected_routes), |
| 624 expected_joinable_route_ids)); | |
| 537 EXPECT_CALL(extra_routes_observer, | 625 EXPECT_CALL(extra_routes_observer, |
| 538 OnRoutesUpdated(SequenceEquals(expected_routes))); | 626 OnRoutesUpdated(SequenceEquals(expected_routes), |
| 539 media_router_proxy_->OnRoutesUpdated(mojo_routes.Pass()); | 627 expected_joinable_route_ids)); |
| 628 EXPECT_CALL(different_routes_observer, | |
| 629 OnRoutesUpdated(SequenceEquals(expected_routes), | |
| 630 expected_joinable_route_ids)).Times(0); | |
| 631 media_router_proxy_->OnRoutesUpdated(media_source.id(), | |
| 632 mojo_routes.Pass(), | |
| 633 mojo_joinable_routes.Pass()); | |
| 540 ProcessEventLoop(); | 634 ProcessEventLoop(); |
| 541 | 635 |
| 542 EXPECT_CALL(mock_router, UnregisterMediaRoutesObserver(&routes_observer)); | 636 EXPECT_CALL(mock_router, UnregisterMediaRoutesObserver(&routes_observer)); |
| 543 EXPECT_CALL(mock_router, | 637 EXPECT_CALL(mock_router, |
| 544 UnregisterMediaRoutesObserver(&extra_routes_observer)); | 638 UnregisterMediaRoutesObserver(&extra_routes_observer)); |
| 639 EXPECT_CALL(mock_router, | |
| 640 UnregisterMediaRoutesObserver(&different_routes_observer)); | |
| 545 router()->UnregisterMediaRoutesObserver(&routes_observer); | 641 router()->UnregisterMediaRoutesObserver(&routes_observer); |
| 546 router()->UnregisterMediaRoutesObserver(&extra_routes_observer); | 642 router()->UnregisterMediaRoutesObserver(&extra_routes_observer); |
| 547 EXPECT_CALL(mock_media_route_provider_, StopObservingMediaRoutes()); | 643 router()->UnregisterMediaRoutesObserver(&different_routes_observer); |
| 644 EXPECT_CALL(mock_media_route_provider_, | |
| 645 StopObservingMediaRoutes(mojo::String(media_source.id()))); | |
| 646 EXPECT_CALL(mock_media_route_provider_, | |
| 647 StopObservingMediaRoutes( | |
| 648 mojo::String(different_media_source.id()))); | |
| 548 ProcessEventLoop(); | 649 ProcessEventLoop(); |
| 549 } | 650 } |
| 550 | 651 |
| 551 TEST_F(MediaRouterMojoImplTest, SendRouteMessage) { | 652 TEST_F(MediaRouterMojoImplTest, SendRouteMessage) { |
| 552 EXPECT_CALL( | 653 EXPECT_CALL( |
| 553 mock_media_route_provider_, | 654 mock_media_route_provider_, |
| 554 SendRouteMessage(mojo::String(kRouteId), mojo::String(kMessage), _)) | 655 SendRouteMessage(mojo::String(kRouteId), mojo::String(kMessage), _)) |
| 555 .WillOnce(Invoke([]( | 656 .WillOnce(Invoke([]( |
| 556 const MediaRoute::Id& route_id, const std::string& message, | 657 const MediaRoute::Id& route_id, const std::string& message, |
| 557 const interfaces::MediaRouteProvider::SendRouteMessageCallback& cb) { | 658 const interfaces::MediaRouteProvider::SendRouteMessageCallback& cb) { |
| (...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1059 EXPECT_CALL(provide_handler_, Invoke(testing::Not(""))); | 1160 EXPECT_CALL(provide_handler_, Invoke(testing::Not(""))); |
| 1060 EXPECT_CALL(*process_manager_, IsEventPageSuspended(kExtensionId)) | 1161 EXPECT_CALL(*process_manager_, IsEventPageSuspended(kExtensionId)) |
| 1061 .WillOnce(Return(false)); | 1162 .WillOnce(Return(false)); |
| 1062 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId2))) | 1163 EXPECT_CALL(mock_media_route_provider_, CloseRoute(mojo::String(kRouteId2))) |
| 1063 .Times(kMaxPendingRequests); | 1164 .Times(kMaxPendingRequests); |
| 1064 RegisterMediaRouteProvider(); | 1165 RegisterMediaRouteProvider(); |
| 1065 ProcessEventLoop(); | 1166 ProcessEventLoop(); |
| 1066 } | 1167 } |
| 1067 | 1168 |
| 1068 } // namespace media_router | 1169 } // namespace media_router |
| OLD | NEW |