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

Side by Side Diff: chrome/browser/media/router/mojo/media_router_struct_traits_unittest.cc

Issue 2675033002: [Media Router] Add MediaSink subtypes (Closed)
Patch Set: Created 3 years, 10 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/media/router/mojo/media_router_struct_traits.h"
6
7 #include "base/message_loop/message_loop.h"
8 #include "chrome/browser/media/router/cast_media_sink.h"
9 #include "chrome/browser/media/router/dial_media_sink.h"
10 #include "chrome/browser/media/router/media_sink.h"
11 #include "chrome/browser/media/router/mojo/media_router.mojom.h"
12 #include "chrome/browser/media/router/mojo/media_router_traits_test_service.mojo m.h"
13 #include "mojo/public/cpp/bindings/binding_set.h"
14 #include "testing/gtest/include/gtest/gtest.h"
15
16 namespace media_router {
17
18 class MediaRouterStructTraitsTest
19 : public testing::Test,
20 public media_router::mojom::MediaRouterTraitsTestService {
21 public:
22 MediaRouterStructTraitsTest() {}
23
24 protected:
25 mojom::MediaRouterTraitsTestServicePtr GetTraitsTestProxy() {
26 return traits_test_bindings_.CreateInterfacePtrAndBind(this);
27 }
28
29 private:
30 // MediaRouterTraitsTestService Impl
31 void EchoMediaSink(std::unique_ptr<MediaSink> sink,
32 const EchoMediaSinkCallback& callback) override {
33 callback.Run(std::move(sink));
34 }
35
36 base::MessageLoop loop_;
37 mojo::BindingSet<MediaRouterTraitsTestService> traits_test_bindings_;
38
39 DISALLOW_COPY_AND_ASSIGN(MediaRouterStructTraitsTest);
40 };
41
42 TEST_F(MediaRouterStructTraitsTest, DialMediaSink) {
43 MediaSink::Id sink_id("sinkId123");
44 std::string sink_name("The sink");
45 MediaSink::IconType icon_type(MediaSink::IconType::CAST);
46 std::string ip_address("192.168.1.2");
47 GURL app_url("https://example.com");
48
49 DialMediaSink* dial_sink = new DialMediaSink(sink_id, sink_name, icon_type);
50 dial_sink->set_ip_address(ip_address);
51 dial_sink->set_app_url(app_url);
52
53 mojom::MediaRouterTraitsTestServicePtr proxy = GetTraitsTestProxy();
54 std::unique_ptr<MediaSink> output;
55 proxy->EchoMediaSink(base::WrapUnique(dial_sink), &output);
56
57 EXPECT_EQ(MediaSink::SinkType::DIAL, output->type());
58 const DialMediaSink* out_sink = DialMediaSink::Cast(output.get());
59 EXPECT_EQ(sink_id, out_sink->id());
60 EXPECT_EQ(sink_name, out_sink->name());
61 EXPECT_EQ(icon_type, out_sink->icon_type());
62 EXPECT_EQ(ip_address, out_sink->ip_address());
63 EXPECT_EQ(app_url, out_sink->app_url());
64 }
65
66 TEST_F(MediaRouterStructTraitsTest, CastMediaSink) {
67 MediaSink::Id sink_id("sinkId123");
68 std::string sink_name("The sink");
69 MediaSink::IconType icon_type(MediaSink::IconType::CAST);
70 int capabilities = 20;
71 std::string ip_address("192.168.1.2");
72 int cast_channel_id = 3;
73
74 CastMediaSink* cast_sink = new CastMediaSink(sink_id, sink_name, icon_type);
75 cast_sink->set_capabilities(capabilities);
76 cast_sink->set_ip_address(ip_address);
77 cast_sink->set_cast_channel_id(cast_channel_id);
78
79 mojom::MediaRouterTraitsTestServicePtr proxy = GetTraitsTestProxy();
80 std::unique_ptr<MediaSink> output;
81 proxy->EchoMediaSink(base::WrapUnique(cast_sink), &output);
82
83 EXPECT_EQ(MediaSink::SinkType::CAST, output->type());
84 const CastMediaSink* out_sink = CastMediaSink::Cast(output.get());
85 EXPECT_EQ(sink_id, out_sink->id());
86 EXPECT_EQ(sink_name, out_sink->name());
87 EXPECT_EQ(icon_type, out_sink->icon_type());
88 EXPECT_EQ(capabilities, out_sink->capabilities());
89 EXPECT_EQ(ip_address, out_sink->ip_address());
90 EXPECT_EQ(cast_channel_id, out_sink->cast_channel_id());
91 }
92
93 TEST_F(MediaRouterStructTraitsTest, GeneralMediaSink) {
94 MediaSink::Id sink_id("sinkId123");
95 std::string sink_name("The sink");
96 MediaSink::IconType icon_type(MediaSink::IconType::CAST);
97 std::string description("description");
98 std::string domain("domain");
99 std::string model_name("model name");
100
101 MediaSink* media_sink = new MediaSink(sink_id, sink_name, icon_type);
102 media_sink->set_description(description);
103 media_sink->set_domain(domain);
104 media_sink->set_model_name(model_name);
105
106 mojom::MediaRouterTraitsTestServicePtr proxy = GetTraitsTestProxy();
107 std::unique_ptr<MediaSink> output;
108 proxy->EchoMediaSink(base::WrapUnique(media_sink), &output);
109
110 EXPECT_EQ(MediaSink::SinkType::GENERAL, output->type());
111 EXPECT_EQ(sink_name, output->name());
112 EXPECT_EQ(sink_id, output->id());
113 EXPECT_EQ(description, output->description());
114 EXPECT_EQ(domain, output->domain());
115 EXPECT_EQ(icon_type, output->icon_type());
116 EXPECT_EQ(model_name, output->model_name());
117 }
118
119 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698