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

Side by Side Diff: chrome/browser/ui/webui/media_router/query_result_manager_unittest.cc

Issue 1693963003: Pass origin to StartObservingMediaSinks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Marks Review Fixes with URL changes Created 4 years, 9 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
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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/containers/hash_tables.h" 6 #include "base/containers/hash_tables.h"
7 #include "base/json/json_writer.h" 7 #include "base/json/json_writer.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
10 #include "chrome/browser/media/router/media_sinks_observer.h" 10 #include "chrome/browser/media/router/media_sinks_observer.h"
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 87
88 TEST_F(QueryResultManagerTest, StartStopSinksQuery) { 88 TEST_F(QueryResultManagerTest, StartStopSinksQuery) {
89 CastModeSet cast_modes; 89 CastModeSet cast_modes;
90 90
91 query_result_manager_.GetSupportedCastModes(&cast_modes); 91 query_result_manager_.GetSupportedCastModes(&cast_modes);
92 EXPECT_TRUE(cast_modes.empty()); 92 EXPECT_TRUE(cast_modes.empty());
93 MediaSource actual_source = 93 MediaSource actual_source =
94 query_result_manager_.GetSourceForCastMode(MediaCastMode::DEFAULT); 94 query_result_manager_.GetSourceForCastMode(MediaCastMode::DEFAULT);
95 EXPECT_TRUE(actual_source.Empty()); 95 EXPECT_TRUE(actual_source.Empty());
96 96
97 MediaSource source(MediaSourceForPresentationUrl("http://fooUrl")); 97 MediaSource source(
98 MediaSourceForPresentationUrl("http://fooUrl.com",
99 "http://fooUrl.origin.com"));
98 EXPECT_CALL(mock_router_, RegisterMediaSinksObserver(_)) 100 EXPECT_CALL(mock_router_, RegisterMediaSinksObserver(_))
99 .WillOnce(Return(true)); 101 .WillOnce(Return(true));
100 query_result_manager_.StartSinksQuery(MediaCastMode::DEFAULT, source); 102 query_result_manager_.StartSinksQuery(MediaCastMode::DEFAULT, source);
101 103
102 query_result_manager_.GetSupportedCastModes(&cast_modes); 104 query_result_manager_.GetSupportedCastModes(&cast_modes);
103 EXPECT_EQ(1u, cast_modes.size()); 105 EXPECT_EQ(1u, cast_modes.size());
104 EXPECT_TRUE(ContainsKey(cast_modes, MediaCastMode::DEFAULT)); 106 EXPECT_TRUE(ContainsKey(cast_modes, MediaCastMode::DEFAULT));
105 actual_source = query_result_manager_.GetSourceForCastMode( 107 actual_source = query_result_manager_.GetSourceForCastMode(
106 MediaCastMode::DEFAULT); 108 MediaCastMode::DEFAULT);
107 EXPECT_TRUE(source.Equals(actual_source)); 109 EXPECT_TRUE(source.Equals(actual_source));
108 110
109 // Register a different source for the same cast mode. 111 // Register a different source for the same cast mode.
110 MediaSource another_source(MediaSourceForPresentationUrl("http://barUrl")); 112 MediaSource another_source(
113 MediaSourceForPresentationUrl("http://barUrl.com",
114 "http://barUrl.origin.com"));
111 EXPECT_CALL(mock_router_, UnregisterMediaSinksObserver(_)).Times(1); 115 EXPECT_CALL(mock_router_, UnregisterMediaSinksObserver(_)).Times(1);
112 EXPECT_CALL(mock_router_, RegisterMediaSinksObserver(_)) 116 EXPECT_CALL(mock_router_, RegisterMediaSinksObserver(_))
113 .WillOnce(Return(true)); 117 .WillOnce(Return(true));
114 query_result_manager_.StartSinksQuery( 118 query_result_manager_.StartSinksQuery(
115 MediaCastMode::DEFAULT, another_source); 119 MediaCastMode::DEFAULT, another_source);
116 120
117 query_result_manager_.GetSupportedCastModes(&cast_modes); 121 query_result_manager_.GetSupportedCastModes(&cast_modes);
118 EXPECT_EQ(1u, cast_modes.size()); 122 EXPECT_EQ(1u, cast_modes.size());
119 EXPECT_TRUE(ContainsKey(cast_modes, MediaCastMode::DEFAULT)); 123 EXPECT_TRUE(ContainsKey(cast_modes, MediaCastMode::DEFAULT));
120 actual_source = query_result_manager_.GetSourceForCastMode( 124 actual_source = query_result_manager_.GetSourceForCastMode(
(...skipping 12 matching lines...) Expand all
133 137
134 TEST_F(QueryResultManagerTest, MultipleQueries) { 138 TEST_F(QueryResultManagerTest, MultipleQueries) {
135 MediaSink sink1("sinkId1", "Sink 1", MediaSink::IconType::CAST); 139 MediaSink sink1("sinkId1", "Sink 1", MediaSink::IconType::CAST);
136 MediaSink sink2("sinkId2", "Sink 2", MediaSink::IconType::CAST); 140 MediaSink sink2("sinkId2", "Sink 2", MediaSink::IconType::CAST);
137 MediaSink sink3("sinkId3", "Sink 3", MediaSink::IconType::CAST); 141 MediaSink sink3("sinkId3", "Sink 3", MediaSink::IconType::CAST);
138 MediaSink sink4("sinkId4", "Sink 4", MediaSink::IconType::CAST); 142 MediaSink sink4("sinkId4", "Sink 4", MediaSink::IconType::CAST);
139 MediaSink sink5("sinkId5", "Sink 5", MediaSink::IconType::CAST); 143 MediaSink sink5("sinkId5", "Sink 5", MediaSink::IconType::CAST);
140 144
141 query_result_manager_.AddObserver(&mock_observer_); 145 query_result_manager_.AddObserver(&mock_observer_);
142 DiscoverSinks(MediaCastMode::DEFAULT, 146 DiscoverSinks(MediaCastMode::DEFAULT,
143 MediaSourceForPresentationUrl("http://barUrl")); 147 MediaSourceForPresentationUrl("http://barUrl.com",
144 DiscoverSinks(MediaCastMode::TAB_MIRROR, MediaSourceForTab(123)); 148 "http://barUrl.origin.com"));
149 DiscoverSinks(MediaCastMode::TAB_MIRROR,
150 MediaSourceForTab(123));
145 151
146 // Scenario (results in this order): 152 // Scenario (results in this order):
147 // Action: DEFAULT -> [1, 2, 3] 153 // Action: DEFAULT -> [1, 2, 3]
148 // Expected result: 154 // Expected result:
149 // Sinks: [1 -> {DEFAULT}, 2 -> {DEFAULT}, 3 -> {DEFAULT}] 155 // Sinks: [1 -> {DEFAULT}, 2 -> {DEFAULT}, 3 -> {DEFAULT}]
150 std::vector<MediaSinkWithCastModes> expected_sinks; 156 std::vector<MediaSinkWithCastModes> expected_sinks;
151 expected_sinks.push_back(MediaSinkWithCastModes(sink1)); 157 expected_sinks.push_back(MediaSinkWithCastModes(sink1));
152 expected_sinks.back().cast_modes.insert(MediaCastMode::DEFAULT); 158 expected_sinks.back().cast_modes.insert(MediaCastMode::DEFAULT);
153 expected_sinks.push_back(MediaSinkWithCastModes(sink2)); 159 expected_sinks.push_back(MediaSinkWithCastModes(sink2));
154 expected_sinks.back().cast_modes.insert(MediaCastMode::DEFAULT); 160 expected_sinks.back().cast_modes.insert(MediaCastMode::DEFAULT);
155 expected_sinks.push_back(MediaSinkWithCastModes(sink3)); 161 expected_sinks.push_back(MediaSinkWithCastModes(sink3));
156 expected_sinks.back().cast_modes.insert(MediaCastMode::DEFAULT); 162 expected_sinks.back().cast_modes.insert(MediaCastMode::DEFAULT);
157 163
158 const auto& sinks_observers = query_result_manager_.sinks_observers_; 164 const auto& sinks_observers = query_result_manager_.sinks_observers_;
159 auto sinks_observer_it = sinks_observers.find(MediaCastMode::DEFAULT); 165 auto sinks_observer_it = sinks_observers.find(MediaCastMode::DEFAULT);
160 ASSERT_TRUE(sinks_observer_it != sinks_observers.end()); 166 ASSERT_TRUE(sinks_observer_it != sinks_observers.end());
161 ASSERT_TRUE(sinks_observer_it->second.get()); 167 ASSERT_TRUE(sinks_observer_it->second.get());
162 168
163 std::vector<MediaSink> sinks_query_result; 169 std::vector<MediaSink> sinks_query_result;
164 sinks_query_result.push_back(sink1); 170 sinks_query_result.push_back(sink1);
165 sinks_query_result.push_back(sink2); 171 sinks_query_result.push_back(sink2);
166 sinks_query_result.push_back(sink3); 172 sinks_query_result.push_back(sink3);
167 EXPECT_CALL(mock_observer_, 173 EXPECT_CALL(mock_observer_,
168 OnResultsUpdated(VectorEquals(expected_sinks))).Times(1); 174 OnResultsUpdated(VectorEquals(expected_sinks))).Times(1);
169 sinks_observer_it->second->OnSinksReceived(sinks_query_result); 175 EXPECT_CALL(mock_observer_,
170 176 OnResultsUpdated(VectorEquals(expected_sinks))).Times(1);
177 sinks_observer_it->second->OnSinksReceived(
178 MediaSourceForPresentationUrl("http://barUrl.com",
179 "http://barUrl.origin.com"),
180 sinks_query_result);
181 sinks_observer_it->second->OnSinksReceived(MediaSourceForTab(123),
182 sinks_query_result);
171 // Action: TAB_MIRROR -> [2, 3, 4] 183 // Action: TAB_MIRROR -> [2, 3, 4]
172 // Expected result: 184 // Expected result:
173 // Sinks: [1 -> {DEFAULT}, 2 -> {DEFAULT, TAB_MIRROR}, 185 // Sinks: [1 -> {DEFAULT}, 2 -> {DEFAULT, TAB_MIRROR},
174 // 3 -> {DEFAULT, TAB_MIRROR}, 4 -> {TAB_MIRROR}] 186 // 3 -> {DEFAULT, TAB_MIRROR}, 4 -> {TAB_MIRROR}]
175 expected_sinks.clear(); 187 expected_sinks.clear();
176 expected_sinks.push_back(MediaSinkWithCastModes(sink1)); 188 expected_sinks.push_back(MediaSinkWithCastModes(sink1));
177 expected_sinks.back().cast_modes.insert(MediaCastMode::DEFAULT); 189 expected_sinks.back().cast_modes.insert(MediaCastMode::DEFAULT);
178 expected_sinks.push_back(MediaSinkWithCastModes(sink2)); 190 expected_sinks.push_back(MediaSinkWithCastModes(sink2));
179 expected_sinks.back().cast_modes.insert(MediaCastMode::DEFAULT); 191 expected_sinks.back().cast_modes.insert(MediaCastMode::DEFAULT);
180 expected_sinks.back().cast_modes.insert(MediaCastMode::TAB_MIRROR); 192 expected_sinks.back().cast_modes.insert(MediaCastMode::TAB_MIRROR);
181 expected_sinks.push_back(MediaSinkWithCastModes(sink3)); 193 expected_sinks.push_back(MediaSinkWithCastModes(sink3));
182 expected_sinks.back().cast_modes.insert(MediaCastMode::DEFAULT); 194 expected_sinks.back().cast_modes.insert(MediaCastMode::DEFAULT);
183 expected_sinks.back().cast_modes.insert(MediaCastMode::TAB_MIRROR); 195 expected_sinks.back().cast_modes.insert(MediaCastMode::TAB_MIRROR);
184 expected_sinks.push_back(MediaSinkWithCastModes(sink4)); 196 expected_sinks.push_back(MediaSinkWithCastModes(sink4));
185 expected_sinks.back().cast_modes.insert(MediaCastMode::TAB_MIRROR); 197 expected_sinks.back().cast_modes.insert(MediaCastMode::TAB_MIRROR);
186 198
187 sinks_query_result.clear(); 199 sinks_query_result.clear();
188 sinks_query_result.push_back(sink2); 200 sinks_query_result.push_back(sink2);
189 sinks_query_result.push_back(sink3); 201 sinks_query_result.push_back(sink3);
190 sinks_query_result.push_back(sink4); 202 sinks_query_result.push_back(sink4);
191 203
192 sinks_observer_it = sinks_observers.find(MediaCastMode::TAB_MIRROR); 204 sinks_observer_it = sinks_observers.find(MediaCastMode::TAB_MIRROR);
193 ASSERT_TRUE(sinks_observer_it != sinks_observers.end()); 205 ASSERT_TRUE(sinks_observer_it != sinks_observers.end());
194 ASSERT_TRUE(sinks_observer_it->second.get()); 206 ASSERT_TRUE(sinks_observer_it->second.get());
195 EXPECT_CALL(mock_observer_, 207 EXPECT_CALL(mock_observer_,
196 OnResultsUpdated(VectorEquals(expected_sinks))).Times(1); 208 OnResultsUpdated(VectorEquals(expected_sinks))).Times(1);
197 sinks_observer_it->second->OnSinksReceived(sinks_query_result); 209 sinks_observer_it->second->OnSinksReceived(
198 210 MediaSourceForPresentationUrl("http://barUrl.com",
211 "http://barUrl.origin.com"),
212 sinks_query_result);
199 // Action: Update default presentation URL 213 // Action: Update default presentation URL
200 // Expected result: 214 // Expected result:
201 // Sinks: [2 -> {TAB_MIRROR}, 3 -> {TAB_MIRROR}, 4 -> {TAB_MIRROR}] 215 // Sinks: [2 -> {TAB_MIRROR}, 3 -> {TAB_MIRROR}, 4 -> {TAB_MIRROR}]
202 expected_sinks.clear(); 216 expected_sinks.clear();
203 expected_sinks.push_back(MediaSinkWithCastModes(sink2)); 217 expected_sinks.push_back(MediaSinkWithCastModes(sink2));
204 expected_sinks.back().cast_modes.insert(MediaCastMode::TAB_MIRROR); 218 expected_sinks.back().cast_modes.insert(MediaCastMode::TAB_MIRROR);
205 expected_sinks.push_back(MediaSinkWithCastModes(sink3)); 219 expected_sinks.push_back(MediaSinkWithCastModes(sink3));
206 expected_sinks.back().cast_modes.insert(MediaCastMode::TAB_MIRROR); 220 expected_sinks.back().cast_modes.insert(MediaCastMode::TAB_MIRROR);
207 expected_sinks.push_back(MediaSinkWithCastModes(sink4)); 221 expected_sinks.push_back(MediaSinkWithCastModes(sink4));
208 expected_sinks.back().cast_modes.insert(MediaCastMode::TAB_MIRROR); 222 expected_sinks.back().cast_modes.insert(MediaCastMode::TAB_MIRROR);
209 223
210 EXPECT_CALL(mock_router_, UnregisterMediaSinksObserver(_)).Times(1); 224 EXPECT_CALL(mock_router_, UnregisterMediaSinksObserver(_)).Times(1);
211 EXPECT_CALL(mock_router_, RegisterMediaSinksObserver(_)) 225 EXPECT_CALL(mock_router_, RegisterMediaSinksObserver(_))
212 .WillOnce(Return(true)); 226 .WillOnce(Return(true));
213 EXPECT_CALL(mock_observer_, 227 EXPECT_CALL(mock_observer_,
214 OnResultsUpdated(VectorEquals(expected_sinks))).Times(1); 228 OnResultsUpdated(VectorEquals(expected_sinks))).Times(1);
215 query_result_manager_.StartSinksQuery( 229 query_result_manager_.StartSinksQuery(
216 MediaCastMode::DEFAULT, 230 MediaCastMode::DEFAULT,
217 MediaSourceForPresentationUrl("http://bazurl.com")); 231 MediaSourceForPresentationUrl("http://bazurl.com",
232 "http://barurl.origin.com"));
218 233
219 // Action: Remove TAB_MIRROR observer 234 // Action: Remove TAB_MIRROR observer
220 // Expected result: 235 // Expected result:
221 // Sinks: [] 236 // Sinks: []
222 expected_sinks.clear(); 237 expected_sinks.clear();
223 EXPECT_CALL(mock_observer_, 238 EXPECT_CALL(mock_observer_,
224 OnResultsUpdated(VectorEquals(expected_sinks))).Times(1); 239 OnResultsUpdated(VectorEquals(expected_sinks))).Times(1);
225 EXPECT_CALL(mock_router_, UnregisterMediaSinksObserver(_)).Times(1); 240 EXPECT_CALL(mock_router_, UnregisterMediaSinksObserver(_)).Times(1);
226 query_result_manager_.StopSinksQuery(MediaCastMode::TAB_MIRROR); 241 query_result_manager_.StopSinksQuery(MediaCastMode::TAB_MIRROR);
227 242
228 // Remaining observers: DEFAULT observer, which will be removed on destruction 243 // Remaining observers: DEFAULT observer, which will be removed on destruction
229 EXPECT_CALL(mock_router_, UnregisterMediaSinksObserver(_)).Times(1); 244 EXPECT_CALL(mock_router_, UnregisterMediaSinksObserver(_)).Times(1);
230 } 245 }
231 246
232 } // namespace media_router 247 } // namespace media_router
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/media_router/query_result_manager.cc ('k') | chrome/test/media_router/media_router_e2e_browsertest.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698