Index: chrome/browser/media/router/media_router_type_converters_unittest.cc |
diff --git a/chrome/browser/media/router/media_router_type_converters_unittest.cc b/chrome/browser/media/router/media_router_type_converters_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..575d997f936e24274d1bab4b947b8a622943d697 |
--- /dev/null |
+++ b/chrome/browser/media/router/media_router_type_converters_unittest.cc |
@@ -0,0 +1,96 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/media/router/issue.h" |
+#include "chrome/browser/media/router/media_router_type_converters.h" |
+#include "chrome/browser/media/router/media_sink.h" |
+#include "chrome/browser/media/router/media_source_helper.h" |
+#include "testing/gmock/include/gmock/gmock.h" |
+ |
+namespace media_router { |
+ |
+class MediaRouterTypeConvertersTest : public ::testing::Test { |
+ protected: |
+ MediaRouterTypeConvertersTest() {} |
+ ~MediaRouterTypeConvertersTest() override {} |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(MediaRouterTypeConvertersTest); |
+}; |
+ |
+TEST_F(MediaRouterTypeConvertersTest, ConvertMediaSink) { |
+ MediaSink expected_mr_sink("sinkId1", "Sink 1"); |
+ interfaces::MediaSinkPtr expected_mojo_sink(interfaces::MediaSink::New()); |
+ expected_mojo_sink->sink_id = "sinkId1"; |
+ expected_mojo_sink->name = "Sink 1"; |
+ |
+ interfaces::MediaSinkPtr mojo_sink = |
+ mojo::TypeConverter<interfaces::MediaSinkPtr, MediaSink>::Convert( |
+ expected_mr_sink); |
+ |
+ EXPECT_EQ(expected_mojo_sink, mojo_sink); |
+ |
+ MediaSink mr_sink = mojo::TypeConverter< |
+ media_router::MediaSink, |
+ media_router::interfaces::MediaSinkPtr>::Convert(mojo_sink); |
+ |
+ // Convert MediaSink and back should result in identical object. |
+ EXPECT_TRUE(expected_mr_sink.Equals(mr_sink)); |
+} |
+ |
+TEST_F(MediaRouterTypeConvertersTest, ConvertMediaRoute) { |
+ MediaSource expected_source(ForTabMediaSource(123)); |
+ MediaRoute expected_mr_route("routeId1", expected_source, |
+ MediaSink("sinkId", "sinkName"), "Description", |
+ false); |
+ interfaces::MediaRoutePtr expected_mojo_route(interfaces::MediaRoute::New()); |
+ expected_mojo_route->media_route_id = "routeId1"; |
+ expected_mojo_route->media_source = expected_source.id(); |
+ expected_mojo_route->media_sink = interfaces::MediaSink::New(); |
+ expected_mojo_route->media_sink->sink_id = "sinkId"; |
+ expected_mojo_route->media_sink->name = "sinkName"; |
+ expected_mojo_route->description = "Description"; |
+ expected_mojo_route->is_local = false; |
+ |
+ interfaces::MediaRoutePtr mojo_route = |
+ mojo::TypeConverter<media_router::interfaces::MediaRoutePtr, |
+ media_router::MediaRoute>::Convert(expected_mr_route); |
+ EXPECT_EQ(expected_mojo_route, mojo_route); |
+ |
+ MediaRoute mr_route = mojo_route.To<MediaRoute>(); |
+ EXPECT_TRUE(expected_mr_route.Equals(mr_route)); |
+ EXPECT_EQ("sinkName", mr_route.media_sink().name()); |
+} |
+ |
+TEST_F(MediaRouterTypeConvertersTest, ConvertIssue) { |
+ interfaces::IssuePtr mojoIssue; |
+ mojoIssue = interfaces::Issue::New(); |
+ mojoIssue->title = "title"; |
+ mojoIssue->message = "msg"; |
+ mojoIssue->route_id = "routeId"; |
+ mojoIssue->default_action = interfaces::Issue::ActionType::ACTION_TYPE_OK; |
+ mojoIssue->secondary_actions = |
+ mojo::Array<interfaces::Issue::ActionType>::New(2); |
+ mojoIssue->secondary_actions[0] = |
+ interfaces::Issue::ActionType::ACTION_TYPE_CANCEL; |
+ mojoIssue->secondary_actions[1] = |
+ interfaces::Issue::ActionType::ACTION_TYPE_DISMISS; |
+ mojoIssue->severity = interfaces::Issue::Severity::SEVERITY_WARNING; |
+ mojoIssue->is_blocking = true; |
+ mojoIssue->help_url = "help_url"; |
+ |
+ std::vector<IssueAction> secondary_actions; |
+ secondary_actions.push_back(IssueAction(IssueAction::CANCEL)); |
+ secondary_actions.push_back(IssueAction(IssueAction::DISMISS)); |
+ Issue issue("title", "msg", IssueAction(IssueAction::OK), secondary_actions, |
+ "routeId", Issue::WARNING, true, "help_url"); |
+ |
+ Issue converted_issue = mojo::TypeConverter< |
+ media_router::Issue, |
+ media_router::interfaces::IssuePtr>::Convert(mojoIssue); |
+ |
+ EXPECT_FALSE(converted_issue.Equals(issue)); |
+} |
+ |
+} // namespace media_router |