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 30 matching lines...) Expand all Loading... |
41 const char kSource[] = "source1"; | 41 const char kSource[] = "source1"; |
42 const char kSource2[] = "source2"; | 42 const char kSource2[] = "source2"; |
43 const char kRouteId[] = "routeId"; | 43 const char kRouteId[] = "routeId"; |
44 const char kRouteId2[] = "routeId2"; | 44 const char kRouteId2[] = "routeId2"; |
45 const char kSink[] = "sink"; | 45 const char kSink[] = "sink"; |
46 const char kSink2[] = "sink2"; | 46 const char kSink2[] = "sink2"; |
47 const char kSinkName[] = "sinkName"; | 47 const char kSinkName[] = "sinkName"; |
48 const char kPresentationId[] = "presentationId"; | 48 const char kPresentationId[] = "presentationId"; |
49 const char kOrigin[] = "http://origin/"; | 49 const char kOrigin[] = "http://origin/"; |
50 const int kTabId = 123; | 50 const int kTabId = 123; |
| 51 const uint8 kBinaryMessage[] = {0x01, 0x02, 0x03, 0x04}; |
51 | 52 |
52 bool ArePresentationSessionMessagesEqual( | 53 bool ArePresentationSessionMessagesEqual( |
53 const content::PresentationSessionMessage* expected, | 54 const content::PresentationSessionMessage* expected, |
54 const content::PresentationSessionMessage* actual) { | 55 const content::PresentationSessionMessage* actual) { |
55 if (expected->presentation_url != actual->presentation_url || | 56 if (expected->presentation_url != actual->presentation_url || |
56 expected->presentation_id != actual->presentation_id || | 57 expected->presentation_id != actual->presentation_id || |
57 expected->type != actual->type) { | 58 expected->type != actual->type) { |
58 return false; | 59 return false; |
59 } | 60 } |
60 return expected->is_binary() ? *(expected->data) == *(actual->data) | 61 return expected->is_binary() ? *(expected->data) == *(actual->data) |
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
383 })); | 384 })); |
384 | 385 |
385 SendMessageCallbackHandler handler; | 386 SendMessageCallbackHandler handler; |
386 EXPECT_CALL(handler, Invoke(true)); | 387 EXPECT_CALL(handler, Invoke(true)); |
387 router()->SendRouteMessage(kRouteId, kMessage, | 388 router()->SendRouteMessage(kRouteId, kMessage, |
388 base::Bind(&SendMessageCallbackHandler::Invoke, | 389 base::Bind(&SendMessageCallbackHandler::Invoke, |
389 base::Unretained(&handler))); | 390 base::Unretained(&handler))); |
390 ProcessEventLoop(); | 391 ProcessEventLoop(); |
391 } | 392 } |
392 | 393 |
| 394 TEST_F(MediaRouterMojoImplTest, SendRouteBinaryMessage) { |
| 395 scoped_ptr<std::vector<uint8>> expected_binary_data(new std::vector<uint8>( |
| 396 kBinaryMessage, kBinaryMessage + arraysize(kBinaryMessage))); |
| 397 |
| 398 EXPECT_CALL(mock_media_route_provider_, |
| 399 SendRouteBinaryMessageInternal(mojo::String(kRouteId), _, _)) |
| 400 .WillOnce(Invoke([]( |
| 401 const MediaRoute::Id& route_id, const std::vector<uint8>& data, |
| 402 const interfaces::MediaRouteProvider::SendRouteMessageCallback& cb) { |
| 403 EXPECT_EQ( |
| 404 0, memcmp(kBinaryMessage, &(data[0]), arraysize(kBinaryMessage))); |
| 405 cb.Run(true); |
| 406 })); |
| 407 |
| 408 SendMessageCallbackHandler handler; |
| 409 EXPECT_CALL(handler, Invoke(true)); |
| 410 router()->SendRouteBinaryMessage( |
| 411 kRouteId, expected_binary_data.Pass(), |
| 412 base::Bind(&SendMessageCallbackHandler::Invoke, |
| 413 base::Unretained(&handler))); |
| 414 ProcessEventLoop(); |
| 415 } |
| 416 |
393 TEST_F(MediaRouterMojoImplTest, ListenForRouteMessages) { | 417 TEST_F(MediaRouterMojoImplTest, ListenForRouteMessages) { |
394 mojo::Array<interfaces::RouteMessagePtr> mojo_messages(2); | 418 mojo::Array<interfaces::RouteMessagePtr> mojo_messages(2); |
395 mojo_messages[0] = interfaces::RouteMessage::New(); | 419 mojo_messages[0] = interfaces::RouteMessage::New(); |
396 mojo_messages[0]->route_id = "r1"; | 420 mojo_messages[0]->route_id = "r1"; |
397 mojo_messages[0]->type = interfaces::RouteMessage::Type::TYPE_TEXT; | 421 mojo_messages[0]->type = interfaces::RouteMessage::Type::TYPE_TEXT; |
398 mojo_messages[0]->message = "text"; | 422 mojo_messages[0]->message = "text"; |
399 mojo_messages[1] = interfaces::RouteMessage::New(); | 423 mojo_messages[1] = interfaces::RouteMessage::New(); |
400 mojo_messages[1]->route_id = "r2"; | 424 mojo_messages[1]->route_id = "r2"; |
401 mojo_messages[1]->type = interfaces::RouteMessage::Type::TYPE_BINARY; | 425 mojo_messages[1]->type = interfaces::RouteMessage::Type::TYPE_BINARY; |
402 mojo_messages[1]->data.push_back(1); | 426 mojo_messages[1]->data.push_back(1); |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
517 binding.reset(new mojo::Binding<interfaces::MediaRouteProvider>( | 541 binding.reset(new mojo::Binding<interfaces::MediaRouteProvider>( |
518 &mock_media_route_provider, mojo::GetProxy(&media_route_provider_proxy))); | 542 &mock_media_route_provider, mojo::GetProxy(&media_route_provider_proxy))); |
519 media_router_proxy->RegisterMediaRouteProvider( | 543 media_router_proxy->RegisterMediaRouteProvider( |
520 media_route_provider_proxy.Pass(), | 544 media_route_provider_proxy.Pass(), |
521 base::Bind(&RegisterMediaRouteProviderHandler::Invoke, | 545 base::Bind(&RegisterMediaRouteProviderHandler::Invoke, |
522 base::Unretained(&provide_handler))); | 546 base::Unretained(&provide_handler))); |
523 message_loop.RunUntilIdle(); | 547 message_loop.RunUntilIdle(); |
524 } | 548 } |
525 | 549 |
526 } // namespace media_router | 550 } // namespace media_router |
OLD | NEW |