Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/test/media_router/media_router_e2e_browsertest.h" | 5 #include "chrome/test/media_router/media_router_e2e_browsertest.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
| 10 #include "chrome/browser/media/router/media_router.h" | 10 #include "chrome/browser/media/router/media_router.h" |
| 11 #include "chrome/browser/media/router/media_router_factory.h" | 11 #include "chrome/browser/media/router/media_router_factory.h" |
| 12 #include "chrome/browser/media/router/media_source.h" | 12 #include "chrome/browser/media/router/media_source.h" |
| 13 #include "chrome/browser/media/router/media_source_helper.h" | 13 #include "chrome/browser/media/router/media_source_helper.h" |
| 14 #include "chrome/browser/media/router/route_request_result.h" | 14 #include "chrome/browser/media/router/route_request_result.h" |
| 15 #include "chrome/browser/profiles/profile.h" | 15 #include "chrome/browser/profiles/profile.h" |
| 16 #include "chrome/browser/sessions/session_tab_helper.h" | 16 #include "chrome/browser/sessions/session_tab_helper.h" |
| 17 #include "chrome/browser/ui/browser_finder.h" | 17 #include "chrome/browser/ui/browser_finder.h" |
| 18 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 18 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 19 #include "chrome/test/base/ui_test_utils.h" | 19 #include "chrome/test/base/ui_test_utils.h" |
| 20 #include "content/public/test/test_utils.h" | 20 #include "content/public/test/test_utils.h" |
| 21 #include "media/base/test_data_util.h" | 21 #include "media/base/test_data_util.h" |
| 22 #include "testing/gtest/include/gtest/gtest.h" | 22 #include "testing/gtest/include/gtest/gtest.h" |
| 23 #include "url/gurl.h" | 23 #include "url/gurl.h" |
| 24 | 24 #include "url/origin.h" |
| 25 | 25 |
| 26 // Use the following command to run e2e browser tests: | 26 // Use the following command to run e2e browser tests: |
| 27 // ./out/Debug/browser_tests --user-data-dir=<empty user data dir> | 27 // ./out/Debug/browser_tests --user-data-dir=<empty user data dir> |
| 28 // --extension-unpacked=<mr extension dir> | 28 // --extension-unpacked=<mr extension dir> |
| 29 // --receiver=<chromecast device name> | 29 // --receiver=<chromecast device name> |
| 30 // --enable-pixel-output-in-tests --run-manual | 30 // --enable-pixel-output-in-tests --run-manual |
| 31 // --gtest_filter=MediaRouterE2EBrowserTest.<test case name> | 31 // --gtest_filter=MediaRouterE2EBrowserTest.<test case name> |
| 32 // --enable-logging=stderr | 32 // --enable-logging=stderr |
| 33 // --whitelisted-extension-id=enhhojjnijigcajfphajepfemndkmdlo | 33 // --whitelisted-extension-id=enhhojjnijigcajfphajepfemndkmdlo |
| 34 // --ui-test-action-timeout=200000 | 34 // --ui-test-action-timeout=200000 |
| 35 // --media-router=1 | 35 // --media-router=1 |
| 36 | 36 |
| 37 namespace { | 37 namespace { |
| 38 // URL to launch Castv2Player_Staging app on Chromecast | 38 // URL to launch Castv2Player_Staging app on Chromecast |
| 39 const char kCastAppPresentationUrl[] = | 39 const char kCastAppPresentationUrl[] = |
| 40 "https://google.com/cast#__castAppId__=BE6E4473/" | 40 "https://google.com/cast#__castAppId__=BE6E4473/" |
| 41 "__castClientId__=143692175507258981"; | 41 "__castClientId__=143692175507258981"; |
| 42 const char kVideo[] = "video"; | 42 const char kVideo[] = "video"; |
| 43 const char kBearVP9Video[] = "bear-vp9-opus.webm"; | 43 const char kBearVP9Video[] = "bear-vp9-opus.webm"; |
| 44 const char kPlayer[] = "player.html"; | 44 const char kPlayer[] = "player.html"; |
| 45 const char kOriginUrl[] = "http://origin/"; | 45 const url::Origin kOrigin = url::Origin(GURL("http://origin/")); |
|
mark a. foltz
2017/01/17 21:30:45
Ditto
steimel
2017/01/18 01:52:35
Done.
| |
| 46 } // namespace | 46 } // namespace |
| 47 | 47 |
| 48 | 48 |
| 49 namespace media_router { | 49 namespace media_router { |
| 50 | 50 |
| 51 MediaRouterE2EBrowserTest::MediaRouterE2EBrowserTest() | 51 MediaRouterE2EBrowserTest::MediaRouterE2EBrowserTest() |
| 52 : media_router_(nullptr) { | 52 : media_router_(nullptr) { |
| 53 } | 53 } |
| 54 | 54 |
| 55 MediaRouterE2EBrowserTest::~MediaRouterE2EBrowserTest() { | 55 MediaRouterE2EBrowserTest::~MediaRouterE2EBrowserTest() { |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 70 } | 70 } |
| 71 | 71 |
| 72 void MediaRouterE2EBrowserTest::OnRouteResponseReceived( | 72 void MediaRouterE2EBrowserTest::OnRouteResponseReceived( |
| 73 const RouteRequestResult& result) { | 73 const RouteRequestResult& result) { |
| 74 ASSERT_TRUE(result.route()); | 74 ASSERT_TRUE(result.route()); |
| 75 route_id_ = result.route()->media_route_id(); | 75 route_id_ = result.route()->media_route_id(); |
| 76 } | 76 } |
| 77 | 77 |
| 78 void MediaRouterE2EBrowserTest::CreateMediaRoute( | 78 void MediaRouterE2EBrowserTest::CreateMediaRoute( |
| 79 const MediaSource& source, | 79 const MediaSource& source, |
| 80 const GURL& origin, | 80 const url::Origin& origin, |
| 81 content::WebContents* web_contents) { | 81 content::WebContents* web_contents) { |
| 82 DCHECK(media_router_); | 82 DCHECK(media_router_); |
| 83 observer_.reset(new TestMediaSinksObserver(media_router_, source, origin)); | 83 observer_.reset(new TestMediaSinksObserver(media_router_, source, origin)); |
| 84 observer_->Init(); | 84 observer_->Init(); |
| 85 | 85 |
| 86 DVLOG(1) << "Receiver name: " << receiver(); | 86 DVLOG(1) << "Receiver name: " << receiver(); |
| 87 // Wait for MediaSinks compatible with |source| to be discovered. | 87 // Wait for MediaSinks compatible with |source| to be discovered. |
| 88 ASSERT_TRUE(ConditionalWait( | 88 ASSERT_TRUE(ConditionalWait( |
| 89 base::TimeDelta::FromSeconds(30), base::TimeDelta::FromSeconds(1), | 89 base::TimeDelta::FromSeconds(30), base::TimeDelta::FromSeconds(1), |
| 90 base::Bind(&MediaRouterE2EBrowserTest::IsSinkDiscovered, | 90 base::Bind(&MediaRouterE2EBrowserTest::IsSinkDiscovered, |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 139 EXPECT_EQ(1u, chrome::GetTotalBrowserCount()); | 139 EXPECT_EQ(1u, chrome::GetTotalBrowserCount()); |
| 140 EXPECT_EQ(1, browser()->tab_strip_model()->count()); | 140 EXPECT_EQ(1, browser()->tab_strip_model()->count()); |
| 141 | 141 |
| 142 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( | 142 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( |
| 143 browser(), GURL("about:blank"), 1); | 143 browser(), GURL("about:blank"), 1); |
| 144 content::WebContents* web_contents = | 144 content::WebContents* web_contents = |
| 145 browser()->tab_strip_model()->GetActiveWebContents(); | 145 browser()->tab_strip_model()->GetActiveWebContents(); |
| 146 int tab_id = SessionTabHelper::IdForTab(web_contents); | 146 int tab_id = SessionTabHelper::IdForTab(web_contents); |
| 147 | 147 |
| 148 // Wait for 30 seconds to make sure the route is stable. | 148 // Wait for 30 seconds to make sure the route is stable. |
| 149 CreateMediaRoute( | 149 CreateMediaRoute(MediaSourceForTab(tab_id), kOrigin, web_contents); |
| 150 MediaSourceForTab(tab_id), GURL(kOriginUrl), web_contents); | |
| 151 Wait(base::TimeDelta::FromSeconds(30)); | 150 Wait(base::TimeDelta::FromSeconds(30)); |
| 152 | 151 |
| 153 // Wait for 10 seconds to make sure route has been stopped. | 152 // Wait for 10 seconds to make sure route has been stopped. |
| 154 StopMediaRoute(); | 153 StopMediaRoute(); |
| 155 Wait(base::TimeDelta::FromSeconds(10)); | 154 Wait(base::TimeDelta::FromSeconds(10)); |
| 156 } | 155 } |
| 157 | 156 |
| 158 IN_PROC_BROWSER_TEST_F(MediaRouterE2EBrowserTest, MANUAL_CastApp) { | 157 IN_PROC_BROWSER_TEST_F(MediaRouterE2EBrowserTest, MANUAL_CastApp) { |
| 159 // Wait for 30 seconds to make sure the route is stable. | 158 // Wait for 30 seconds to make sure the route is stable. |
| 160 CreateMediaRoute(MediaSourceForPresentationUrl(GURL(kCastAppPresentationUrl)), | 159 CreateMediaRoute(MediaSourceForPresentationUrl(GURL(kCastAppPresentationUrl)), |
| 161 GURL(kOriginUrl), nullptr); | 160 kOrigin, nullptr); |
| 162 Wait(base::TimeDelta::FromSeconds(30)); | 161 Wait(base::TimeDelta::FromSeconds(30)); |
| 163 | 162 |
| 164 // Wait for 10 seconds to make sure route has been stopped. | 163 // Wait for 10 seconds to make sure route has been stopped. |
| 165 StopMediaRoute(); | 164 StopMediaRoute(); |
| 166 Wait(base::TimeDelta::FromSeconds(10)); | 165 Wait(base::TimeDelta::FromSeconds(10)); |
| 167 } | 166 } |
| 168 | 167 |
| 169 } // namespace media_router | 168 } // namespace media_router |
| OLD | NEW |