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

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

Issue 2627463003: Convert MediaRouter mojom apis to intake url::Origin objects instead of strings (Closed)
Patch Set: Add missing dependency for extensions_renderer_resources target 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
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 "chrome/browser/ui/webui/media_router/media_router_ui.h" 5 #include "chrome/browser/ui/webui/media_router/media_router_ui.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 .Times(AnyNumber()); 107 .Times(AnyNumber());
108 media_router_ui_->InitForTest(&mock_router_, web_contents(), 108 media_router_ui_->InitForTest(&mock_router_, web_contents(),
109 message_handler_.get(), 109 message_handler_.get(),
110 std::move(create_session_request_)); 110 std::move(create_session_request_));
111 message_handler_->SetWebUIForTest(&web_ui_); 111 message_handler_->SetWebUIForTest(&web_ui_);
112 } 112 }
113 113
114 MediaSink CreateSinkCompatibleWithAllSources() { 114 MediaSink CreateSinkCompatibleWithAllSources() {
115 MediaSink sink("sinkId", "sinkName", MediaSink::GENERIC); 115 MediaSink sink("sinkId", "sinkName", MediaSink::GENERIC);
116 for (auto* observer : media_sinks_observers_) 116 for (auto* observer : media_sinks_observers_)
117 observer->OnSinksUpdated({sink}, std::vector<GURL>()); 117 observer->OnSinksUpdated({sink}, std::vector<url::Origin>());
118 return sink; 118 return sink;
119 } 119 }
120 120
121 protected: 121 protected:
122 MockMediaRouter mock_router_; 122 MockMediaRouter mock_router_;
123 content::TestWebUI web_ui_; 123 content::TestWebUI web_ui_;
124 std::unique_ptr<WebContents> web_ui_contents_; 124 std::unique_ptr<WebContents> web_ui_contents_;
125 std::unique_ptr<CreatePresentationConnectionRequest> create_session_request_; 125 std::unique_ptr<CreatePresentationConnectionRequest> create_session_request_;
126 std::unique_ptr<MediaRouterUI> media_router_ui_; 126 std::unique_ptr<MediaRouterUI> media_router_ui_;
127 std::unique_ptr<MediaRouterWebUIMessageHandler> message_handler_; 127 std::unique_ptr<MediaRouterWebUIMessageHandler> message_handler_;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 std::unique_ptr<RouteRequestResult> result = 163 std::unique_ptr<RouteRequestResult> result =
164 RouteRequestResult::FromError("Timed out", RouteRequestResult::TIMED_OUT); 164 RouteRequestResult::FromError("Timed out", RouteRequestResult::TIMED_OUT);
165 for (const auto& callback : callbacks) 165 for (const auto& callback : callbacks)
166 callback.Run(*result); 166 callback.Run(*result);
167 } 167 }
168 168
169 TEST_F(MediaRouterUITest, RouteCreationTimeoutForPresentation) { 169 TEST_F(MediaRouterUITest, RouteCreationTimeoutForPresentation) {
170 CreateMediaRouterUI(profile()); 170 CreateMediaRouterUI(profile());
171 PresentationRequest presentation_request( 171 PresentationRequest presentation_request(
172 RenderFrameHostId(0, 0), {GURL("https://presentationurl.com")}, 172 RenderFrameHostId(0, 0), {GURL("https://presentationurl.com")},
173 GURL("https://frameurl.fakeurl")); 173 url::Origin(GURL("https://frameurl.fakeurl")));
174 media_router_ui_->OnDefaultPresentationChanged(presentation_request); 174 media_router_ui_->OnDefaultPresentationChanged(presentation_request);
175 std::vector<MediaRouteResponseCallback> callbacks; 175 std::vector<MediaRouteResponseCallback> callbacks;
176 EXPECT_CALL( 176 EXPECT_CALL(
177 mock_router_, 177 mock_router_,
178 CreateRoute(_, _, _, _, _, base::TimeDelta::FromSeconds(20), false)) 178 CreateRoute(_, _, _, _, _, base::TimeDelta::FromSeconds(20), false))
179 .WillOnce(SaveArg<4>(&callbacks)); 179 .WillOnce(SaveArg<4>(&callbacks));
180 media_router_ui_->CreateRoute(CreateSinkCompatibleWithAllSources().id(), 180 media_router_ui_->CreateRoute(CreateSinkCompatibleWithAllSources().id(),
181 MediaCastMode::DEFAULT); 181 MediaCastMode::DEFAULT);
182 182
183 std::string expected_title = 183 std::string expected_title =
(...skipping 17 matching lines...) Expand all
201 "domain", MediaCastMode::DEFAULT); 201 "domain", MediaCastMode::DEFAULT);
202 std::string expected_title = l10n_util::GetStringUTF8( 202 std::string expected_title = l10n_util::GetStringUTF8(
203 IDS_MEDIA_ROUTER_ISSUE_CREATE_ROUTE_TIMEOUT_FOR_TAB); 203 IDS_MEDIA_ROUTER_ISSUE_CREATE_ROUTE_TIMEOUT_FOR_TAB);
204 EXPECT_CALL(mock_router_, AddIssue(IssueTitleEquals(expected_title))); 204 EXPECT_CALL(mock_router_, AddIssue(IssueTitleEquals(expected_title)));
205 sink_callback.Run("foundSinkId"); 205 sink_callback.Run("foundSinkId");
206 } 206 }
207 207
208 TEST_F(MediaRouterUITest, RouteRequestFromIncognito) { 208 TEST_F(MediaRouterUITest, RouteRequestFromIncognito) {
209 CreateMediaRouterUI(profile()->GetOffTheRecordProfile()); 209 CreateMediaRouterUI(profile()->GetOffTheRecordProfile());
210 210
211 PresentationRequest presentation_request(RenderFrameHostId(0, 0), 211 PresentationRequest presentation_request(
212 {GURL("https://foo.url.com/")}, 212 RenderFrameHostId(0, 0), {GURL("https://foo.url.com/")},
213 GURL("https://frameUrl")); 213 url::Origin(GURL("https://frameUrl")));
214 media_router_ui_->OnDefaultPresentationChanged(presentation_request); 214 media_router_ui_->OnDefaultPresentationChanged(presentation_request);
215 215
216 EXPECT_CALL( 216 EXPECT_CALL(
217 mock_router_, 217 mock_router_,
218 CreateRoute(_, _, _, _, _, base::TimeDelta::FromSeconds(20), true)); 218 CreateRoute(_, _, _, _, _, base::TimeDelta::FromSeconds(20), true));
219 media_router_ui_->CreateRoute(CreateSinkCompatibleWithAllSources().id(), 219 media_router_ui_->CreateRoute(CreateSinkCompatibleWithAllSources().id(),
220 MediaCastMode::DEFAULT); 220 MediaCastMode::DEFAULT);
221 } 221 }
222 222
223 TEST_F(MediaRouterUITest, SortedSinks) { 223 TEST_F(MediaRouterUITest, SortedSinks) {
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 } 470 }
471 471
472 TEST_F(MediaRouterUITest, NotFoundErrorOnCloseWithNoSinks) { 472 TEST_F(MediaRouterUITest, NotFoundErrorOnCloseWithNoSinks) {
473 content::PresentationError expected_error( 473 content::PresentationError expected_error(
474 content::PresentationErrorType::PRESENTATION_ERROR_NO_AVAILABLE_SCREENS, 474 content::PresentationErrorType::PRESENTATION_ERROR_NO_AVAILABLE_SCREENS,
475 "No screens found."); 475 "No screens found.");
476 PresentationRequestCallbacks request_callbacks(expected_error); 476 PresentationRequestCallbacks request_callbacks(expected_error);
477 create_session_request_.reset(new CreatePresentationConnectionRequest( 477 create_session_request_.reset(new CreatePresentationConnectionRequest(
478 RenderFrameHostId(0, 0), {GURL("http://google.com/presentation"), 478 RenderFrameHostId(0, 0), {GURL("http://google.com/presentation"),
479 GURL("http://google.com/presentation2")}, 479 GURL("http://google.com/presentation2")},
480 GURL("http://google.com"), 480 url::Origin(GURL("http://google.com")),
481 base::Bind(&PresentationRequestCallbacks::Success, 481 base::Bind(&PresentationRequestCallbacks::Success,
482 base::Unretained(&request_callbacks)), 482 base::Unretained(&request_callbacks)),
483 base::Bind(&PresentationRequestCallbacks::Error, 483 base::Bind(&PresentationRequestCallbacks::Error,
484 base::Unretained(&request_callbacks)))); 484 base::Unretained(&request_callbacks))));
485 CreateMediaRouterUI(profile()); 485 CreateMediaRouterUI(profile());
486 // Destroying the UI should return the expected error from above to the error 486 // Destroying the UI should return the expected error from above to the error
487 // callback. 487 // callback.
488 media_router_ui_.reset(); 488 media_router_ui_.reset();
489 } 489 }
490 490
491 TEST_F(MediaRouterUITest, NotFoundErrorOnCloseWithNoCompatibleSinks) { 491 TEST_F(MediaRouterUITest, NotFoundErrorOnCloseWithNoCompatibleSinks) {
492 content::PresentationError expected_error( 492 content::PresentationError expected_error(
493 content::PresentationErrorType::PRESENTATION_ERROR_NO_AVAILABLE_SCREENS, 493 content::PresentationErrorType::PRESENTATION_ERROR_NO_AVAILABLE_SCREENS,
494 "No screens found."); 494 "No screens found.");
495 PresentationRequestCallbacks request_callbacks(expected_error); 495 PresentationRequestCallbacks request_callbacks(expected_error);
496 GURL presentation_url("http://google.com/presentation"); 496 GURL presentation_url("http://google.com/presentation");
497 create_session_request_.reset(new CreatePresentationConnectionRequest( 497 create_session_request_.reset(new CreatePresentationConnectionRequest(
498 RenderFrameHostId(0, 0), {presentation_url}, GURL("http://google.com"), 498 RenderFrameHostId(0, 0), {presentation_url},
499 url::Origin(GURL("http://google.com")),
499 base::Bind(&PresentationRequestCallbacks::Success, 500 base::Bind(&PresentationRequestCallbacks::Success,
500 base::Unretained(&request_callbacks)), 501 base::Unretained(&request_callbacks)),
501 base::Bind(&PresentationRequestCallbacks::Error, 502 base::Bind(&PresentationRequestCallbacks::Error,
502 base::Unretained(&request_callbacks)))); 503 base::Unretained(&request_callbacks))));
503 CreateMediaRouterUI(profile()); 504 CreateMediaRouterUI(profile());
504 505
505 // Send a sink to the UI that is compatible with sources other than the 506 // Send a sink to the UI that is compatible with sources other than the
506 // presentation url to cause a NotFoundError. 507 // presentation url to cause a NotFoundError.
507 std::vector<MediaSink> sinks; 508 std::vector<MediaSink> sinks;
508 sinks.emplace_back("sink id", "sink name", MediaSink::GENERIC); 509 sinks.emplace_back("sink id", "sink name", MediaSink::GENERIC);
509 std::vector<GURL> origins; 510 std::vector<url::Origin> origins;
510 for (auto* observer : media_sinks_observers_) { 511 for (auto* observer : media_sinks_observers_) {
511 if (observer->source().id() != presentation_url.spec()) { 512 if (observer->source().id() != presentation_url.spec()) {
512 observer->OnSinksUpdated(sinks, origins); 513 observer->OnSinksUpdated(sinks, origins);
513 } 514 }
514 } 515 }
515 // Destroying the UI should return the expected error from above to the error 516 // Destroying the UI should return the expected error from above to the error
516 // callback. 517 // callback.
517 media_router_ui_.reset(); 518 media_router_ui_.reset();
518 } 519 }
519 520
520 TEST_F(MediaRouterUITest, AbortErrorOnClose) { 521 TEST_F(MediaRouterUITest, AbortErrorOnClose) {
521 content::PresentationError expected_error( 522 content::PresentationError expected_error(
522 content::PresentationErrorType:: 523 content::PresentationErrorType::
523 PRESENTATION_ERROR_SESSION_REQUEST_CANCELLED, 524 PRESENTATION_ERROR_SESSION_REQUEST_CANCELLED,
524 "Dialog closed."); 525 "Dialog closed.");
525 PresentationRequestCallbacks request_callbacks(expected_error); 526 PresentationRequestCallbacks request_callbacks(expected_error);
526 GURL presentation_url("http://google.com/presentation"); 527 GURL presentation_url("http://google.com/presentation");
527 create_session_request_.reset(new CreatePresentationConnectionRequest( 528 create_session_request_.reset(new CreatePresentationConnectionRequest(
528 RenderFrameHostId(0, 0), {presentation_url}, GURL("http://google.com"), 529 RenderFrameHostId(0, 0), {presentation_url},
530 url::Origin(GURL("http://google.com")),
529 base::Bind(&PresentationRequestCallbacks::Success, 531 base::Bind(&PresentationRequestCallbacks::Success,
530 base::Unretained(&request_callbacks)), 532 base::Unretained(&request_callbacks)),
531 base::Bind(&PresentationRequestCallbacks::Error, 533 base::Bind(&PresentationRequestCallbacks::Error,
532 base::Unretained(&request_callbacks)))); 534 base::Unretained(&request_callbacks))));
533 CreateMediaRouterUI(profile()); 535 CreateMediaRouterUI(profile());
534 536
535 // Send a sink to the UI that is compatible with the presentation url to avoid 537 // Send a sink to the UI that is compatible with the presentation url to avoid
536 // a NotFoundError. 538 // a NotFoundError.
537 std::vector<MediaSink> sinks; 539 std::vector<MediaSink> sinks;
538 sinks.emplace_back("sink id", "sink name", MediaSink::GENERIC); 540 sinks.emplace_back("sink id", "sink name", MediaSink::GENERIC);
539 std::vector<GURL> origins; 541 std::vector<url::Origin> origins;
540 MediaSource::Id presentation_source_id = 542 MediaSource::Id presentation_source_id =
541 MediaSourceForPresentationUrl(presentation_url).id(); 543 MediaSourceForPresentationUrl(presentation_url).id();
542 for (auto* observer : media_sinks_observers_) { 544 for (auto* observer : media_sinks_observers_) {
543 if (observer->source().id() == presentation_source_id) { 545 if (observer->source().id() == presentation_source_id) {
544 observer->OnSinksUpdated(sinks, origins); 546 observer->OnSinksUpdated(sinks, origins);
545 } 547 }
546 } 548 }
547 // Destroying the UI should return the expected error from above to the error 549 // Destroying the UI should return the expected error from above to the error
548 // callback. 550 // callback.
549 media_router_ui_.reset(); 551 media_router_ui_.reset();
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 EXPECT_FALSE(media_router_ui_->UserSelectedTabMirroringForCurrentOrigin()); 603 EXPECT_FALSE(media_router_ui_->UserSelectedTabMirroringForCurrentOrigin());
602 604
603 media_router_ui_->RecordCastModeSelection(MediaCastMode::TAB_MIRROR); 605 media_router_ui_->RecordCastModeSelection(MediaCastMode::TAB_MIRROR);
604 EXPECT_TRUE(media_router_ui_->UserSelectedTabMirroringForCurrentOrigin()); 606 EXPECT_TRUE(media_router_ui_->UserSelectedTabMirroringForCurrentOrigin());
605 media_router_ui_->RecordCastModeSelection(MediaCastMode::DESKTOP_MIRROR); 607 media_router_ui_->RecordCastModeSelection(MediaCastMode::DESKTOP_MIRROR);
606 // Selecting desktop mirroring should not change the recorded preferences. 608 // Selecting desktop mirroring should not change the recorded preferences.
607 EXPECT_TRUE(media_router_ui_->UserSelectedTabMirroringForCurrentOrigin()); 609 EXPECT_TRUE(media_router_ui_->UserSelectedTabMirroringForCurrentOrigin());
608 } 610 }
609 611
610 } // namespace media_router 612 } // namespace media_router
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/media_router/media_router_ui.cc ('k') | chrome/browser/ui/webui/media_router/query_result_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698