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

Unified Diff: chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc

Issue 1805813002: [Media Router] Wiring for searching route providers for new sinks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Clarifying pseudo sink comments Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc
diff --git a/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc b/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc
index 02d50f8774eaa5f7c71ab91a6f8236cb6c48b665..989c389d21b305d491e7288348c36c4226269151 100644
--- a/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc
+++ b/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc
@@ -122,6 +122,11 @@ class RouteResponseCallbackHandler {
RouteRequestResult::ResultCode result_code));
};
+class SinkResponseCallbackHandler {
+public:
+ MOCK_METHOD1(Invoke, void(const std::string& sink_id));
+};
+
class SendMessageCallbackHandler {
public:
MOCK_METHOD1(Invoke, void(bool));
@@ -1188,6 +1193,63 @@ TEST_F(MediaRouterMojoImplTest, QueuedWhileAsleep) {
ProcessEventLoop();
}
+TEST_F(MediaRouterMojoImplTest, SearchSinksAndCreateRoute) {
+ std::string search_input("input");
+ std::string domain("google.com");
+ MediaSource media_source(kSource);
+ MediaRoute expected_route(kRouteId, media_source, kSinkId2, "", false, "",
+ false);
+ auto& media_router_proxy = media_router_proxy_;
+
+ EXPECT_CALL(
+ mock_media_route_provider_,
+ SearchSinksAndCreateRoute_(mojo::String(kSinkId), mojo::String(kSource),
+ _, _, mojo::String(kOrigin), kInvalidTabId, _,
+ false, _))
+ .WillOnce(Invoke([&search_input, &domain, &media_router_proxy](
+ const mojo::String& sink_id, const mojo::String& source,
+ const interfaces::SinkSearchCriteriaPtr& search_criteria,
+ const mojo::String& presentation_id, const mojo::String& origin,
+ int32_t tab_id, int64_t timeout_millis, bool off_the_record,
+ const interfaces::MediaRouteProvider::
+ SearchSinksAndCreateRouteCallback& cb) {
+ interfaces::MediaRoutePtr route = interfaces::MediaRoute::New();
+ route->media_source = source;
+ route->media_sink_id = kSinkId2;
+ route->media_route_id = kRouteId;
+ route->description = kDescription;
+ route->is_local = true;
+ route->for_display = true;
+ route->off_the_record = off_the_record;
+ EXPECT_EQ(search_input, search_criteria->input);
+ EXPECT_EQ(domain, search_criteria->domain);
+ media_router_proxy->OnSearchSinkIdReceived(sink_id, kSinkId2);
+ cb.Run(std::move(route), mojo::String(),
+ interfaces::RouteRequestResultCode::OK);
+ }));
+
+ base::RunLoop run_loop;
+ base::RunLoop run_loop2;
+ SinkResponseCallbackHandler sink_handler;
+ EXPECT_CALL(sink_handler, Invoke(kSinkId2))
+ .WillOnce(InvokeWithoutArgs([&run_loop] { run_loop.Quit(); }));
+ RouteResponseCallbackHandler route_handler;
+ EXPECT_CALL(route_handler, DoInvoke(Pointee(Equals(expected_route)), Not(""),
+ "", RouteRequestResult::OK))
+ .WillOnce(InvokeWithoutArgs([&run_loop2] { run_loop2.Quit(); }));
+ std::vector<MediaRouteResponseCallback> route_response_callbacks;
+ MediaSinkSearchResponseCallback sink_callback = base::Bind(
+ &SinkResponseCallbackHandler::Invoke, base::Unretained(&sink_handler));
+ route_response_callbacks.push_back(base::Bind(
+ &RouteResponseCallbackHandler::Invoke, base::Unretained(&route_handler)));
+ router()->SearchSinksAndCreateRoute(
+ kSinkId, kSource, search_input, domain, GURL(kOrigin), nullptr,
+ route_response_callbacks, sink_callback,
+ base::TimeDelta::FromMilliseconds(kTimeoutMillis), false);
+ run_loop.Run();
+ run_loop2.Run();
+}
+
class MediaRouterMojoExtensionTest : public ::testing::Test {
public:
MediaRouterMojoExtensionTest()

Powered by Google App Engine
This is Rietveld 408576698