Index: chrome/browser/ui/webui/media_router/media_router_webui_message_handler_unittest.cc |
diff --git a/chrome/browser/ui/webui/media_router/media_router_webui_message_handler_unittest.cc b/chrome/browser/ui/webui/media_router/media_router_webui_message_handler_unittest.cc |
index 5b346b2351065754bb091c1fab37a43eddcdc2e2..484b987f00d67536ca31e51ee8aba160e1ee2b35 100644 |
--- a/chrome/browser/ui/webui/media_router/media_router_webui_message_handler_unittest.cc |
+++ b/chrome/browser/ui/webui/media_router/media_router_webui_message_handler_unittest.cc |
@@ -168,13 +168,11 @@ class MediaRouterWebUIMessageHandlerTest : public MediaRouterWebUITest { |
// Gets the call data for the function call made to |web_ui_|. There needs |
// to be one call made, and its function name must be |function_name|. |
- const content::TestWebUI::CallData& GetCallData( |
- const std::string& function_name) { |
- EXPECT_EQ(1u, web_ui_->call_data().size()); |
+ const base::Value* GetCallData(const std::string& function_name) { |
+ CHECK(1u == web_ui_->call_data().size()); |
const content::TestWebUI::CallData& call_data = *web_ui_->call_data()[0]; |
- EXPECT_EQ(function_name, call_data.function_name()); |
- |
- return call_data; |
+ CHECK(function_name == call_data.function_name()); |
+ return call_data.arg1(); |
} |
// Gets the dictionary passed into a call to the |web_ui_| as the argument. |
@@ -182,26 +180,30 @@ class MediaRouterWebUIMessageHandlerTest : public MediaRouterWebUITest { |
// |function_name|. |
const base::DictionaryValue* ExtractDictFromCallArg( |
const std::string& function_name) { |
- const content::TestWebUI::CallData& call_data = GetCallData(function_name); |
- const base::Value* arg1 = call_data.arg1(); |
const base::DictionaryValue* dict_value = nullptr; |
- CHECK(arg1->GetAsDictionary(&dict_value)); |
- |
+ CHECK(GetCallData(function_name)->GetAsDictionary(&dict_value)); |
return dict_value; |
} |
+ // Gets the list passed into a call to the |web_ui_| as the argument. |
+ // There needs to be one call made, and its function name must be |
+ // |function_name|. |
+ const base::ListValue* ExtractListFromCallArg( |
+ const std::string& function_name) { |
+ const base::ListValue* list_value = nullptr; |
+ CHECK(GetCallData(function_name)->GetAsList(&list_value)); |
+ return list_value; |
+ } |
+ |
// Gets the first element of the list passed in as the argument to a call to |
// the |web_ui_| as a dictionary. There needs to be one call made, and its |
// function name must be |function_name|. |
const base::DictionaryValue* ExtractDictFromListFromCallArg( |
const std::string& function_name) { |
- const content::TestWebUI::CallData& call_data = GetCallData(function_name); |
- const base::Value* arg1 = call_data.arg1(); |
const base::ListValue* list_value = nullptr; |
- CHECK(arg1->GetAsList(&list_value)); |
+ CHECK(GetCallData(function_name)->GetAsList(&list_value)); |
const base::DictionaryValue* dict_value = nullptr; |
CHECK(list_value->GetDictionary(0, &dict_value)); |
- |
return dict_value; |
} |
@@ -382,6 +384,26 @@ TEST_F(MediaRouterWebUIMessageHandlerTest, UpdateRoutesIncognito) { |
route_value->GetString("customControllerPath", &custom_controller_path)); |
} |
+TEST_F(MediaRouterWebUIMessageHandlerTest, SetCastModesList) { |
+ CastModeSet cast_modes({MediaCastMode::DEFAULT, MediaCastMode::TAB_MIRROR, |
+ MediaCastMode::DESKTOP_MIRROR}); |
+ handler_->UpdateCastModes(cast_modes, "www.host.com", MediaCastMode::DEFAULT); |
+ const base::ListValue* set_cast_mode_list = |
+ ExtractListFromCallArg("media_router.ui.setCastModeList"); |
+ |
+ const base::DictionaryValue* cast_mode = nullptr; |
+ size_t index = 0; |
+ for (auto i = cast_modes.begin(); i != cast_modes.end(); i++) { |
+ CHECK(set_cast_mode_list->GetDictionary(index++, &cast_mode)); |
+ EXPECT_EQ(static_cast<int>(*i), GetIntegerFromDict(cast_mode, "type")); |
+ EXPECT_EQ(MediaCastModeToDescription(*i, "www.host.com"), |
+ GetStringFromDict(cast_mode, "description")); |
+ EXPECT_EQ("www.host.com", GetStringFromDict(cast_mode, "host")); |
+ EXPECT_EQ(*i == MediaCastMode::DEFAULT, |
+ GetBooleanFromDict(cast_mode, "isForced")); |
+ } |
+} |
+ |
TEST_F(MediaRouterWebUIMessageHandlerTest, UpdateMediaRouteStatus) { |
MediaStatus status; |
status.title = "test title"; |
@@ -422,11 +444,13 @@ TEST_F(MediaRouterWebUIMessageHandlerTest, OnCreateRouteResponseReceived) { |
EXPECT_CALL(*mock_media_router_ui_, GetRouteProviderExtensionId()) |
.WillOnce(ReturnRef(provider_extension_id())); |
handler_->OnCreateRouteResponseReceived(route.media_sink_id(), &route); |
- const content::TestWebUI::CallData& call_data = |
- GetCallData("media_router.ui.onCreateRouteResponseReceived"); |
- const base::Value* sink_id_value = nullptr; |
+ |
+ const content::TestWebUI::CallData& call_data = *web_ui_->call_data()[0]; |
+ EXPECT_EQ("media_router.ui.onCreateRouteResponseReceived", |
+ call_data.function_name()); |
+ std::string sink_id_value; |
ASSERT_TRUE(call_data.arg1()->GetAsString(&sink_id_value)); |
- EXPECT_EQ(route.media_sink_id(), sink_id_value->GetString()); |
+ EXPECT_EQ(route.media_sink_id(), sink_id_value); |
const base::DictionaryValue* route_value = nullptr; |
ASSERT_TRUE(call_data.arg2()->GetAsDictionary(&route_value)); |
@@ -455,11 +479,13 @@ TEST_F(MediaRouterWebUIMessageHandlerTest, |
EXPECT_CALL(*mock_media_router_ui_, GetRouteProviderExtensionId()).WillOnce( |
ReturnRef(provider_extension_id())); |
handler_->OnCreateRouteResponseReceived(route.media_sink_id(), &route); |
- const content::TestWebUI::CallData& call_data = |
- GetCallData("media_router.ui.onCreateRouteResponseReceived"); |
- const base::Value* sink_id_value = nullptr; |
+ |
+ const content::TestWebUI::CallData& call_data = *web_ui_->call_data()[0]; |
+ EXPECT_EQ("media_router.ui.onCreateRouteResponseReceived", |
+ call_data.function_name()); |
+ std::string sink_id_value; |
ASSERT_TRUE(call_data.arg1()->GetAsString(&sink_id_value)); |
- EXPECT_EQ(route.media_sink_id(), sink_id_value->GetString()); |
+ EXPECT_EQ(route.media_sink_id(), sink_id_value); |
const base::DictionaryValue* route_value = nullptr; |
ASSERT_TRUE(call_data.arg2()->GetAsDictionary(&route_value)); |