| 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/origin.h" |
| 24 | |
| 25 | 24 |
| 26 // Use the following command to run e2e browser tests: | 25 // Use the following command to run e2e browser tests: |
| 27 // ./out/Debug/browser_tests --user-data-dir=<empty user data dir> | 26 // ./out/Debug/browser_tests --user-data-dir=<empty user data dir> |
| 28 // --extension-unpacked=<mr extension dir> | 27 // --extension-unpacked=<mr extension dir> |
| 29 // --receiver=<chromecast device name> | 28 // --receiver=<chromecast device name> |
| 30 // --enable-pixel-output-in-tests --run-manual | 29 // --enable-pixel-output-in-tests --run-manual |
| 31 // --gtest_filter=MediaRouterE2EBrowserTest.<test case name> | 30 // --gtest_filter=MediaRouterE2EBrowserTest.<test case name> |
| 32 // --enable-logging=stderr | 31 // --enable-logging=stderr |
| 33 // --whitelisted-extension-id=enhhojjnijigcajfphajepfemndkmdlo | 32 // --whitelisted-extension-id=enhhojjnijigcajfphajepfemndkmdlo |
| 34 // --ui-test-action-timeout=200000 | 33 // --ui-test-action-timeout=200000 |
| 35 // --media-router=1 | 34 // --media-router=1 |
| 36 | 35 |
| 37 namespace { | 36 namespace { |
| 38 // URL to launch Castv2Player_Staging app on Chromecast | 37 // URL to launch Castv2Player_Staging app on Chromecast |
| 39 const char kCastAppPresentationUrl[] = | 38 const char kCastAppPresentationUrl[] = |
| 40 "https://google.com/cast#__castAppId__=BE6E4473/" | 39 "https://google.com/cast#__castAppId__=BE6E4473/" |
| 41 "__castClientId__=143692175507258981"; | 40 "__castClientId__=143692175507258981"; |
| 42 const char kVideo[] = "video"; | 41 const char kVideo[] = "video"; |
| 43 const char kBearVP9Video[] = "bear-vp9.webm"; | 42 const char kBearVP9Video[] = "bear-vp9.webm"; |
| 44 const char kPlayer[] = "player.html"; | 43 const char kPlayer[] = "player.html"; |
| 45 const char kOriginUrl[] = "http://origin/"; | 44 const char kOrigin[] = "http://origin/"; |
| 46 } // namespace | 45 } // namespace |
| 47 | 46 |
| 48 | 47 |
| 49 namespace media_router { | 48 namespace media_router { |
| 50 | 49 |
| 51 MediaRouterE2EBrowserTest::MediaRouterE2EBrowserTest() | 50 MediaRouterE2EBrowserTest::MediaRouterE2EBrowserTest() |
| 52 : media_router_(nullptr) { | 51 : media_router_(nullptr) { |
| 53 } | 52 } |
| 54 | 53 |
| 55 MediaRouterE2EBrowserTest::~MediaRouterE2EBrowserTest() { | 54 MediaRouterE2EBrowserTest::~MediaRouterE2EBrowserTest() { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 70 } | 69 } |
| 71 | 70 |
| 72 void MediaRouterE2EBrowserTest::OnRouteResponseReceived( | 71 void MediaRouterE2EBrowserTest::OnRouteResponseReceived( |
| 73 const RouteRequestResult& result) { | 72 const RouteRequestResult& result) { |
| 74 ASSERT_TRUE(result.route()); | 73 ASSERT_TRUE(result.route()); |
| 75 route_id_ = result.route()->media_route_id(); | 74 route_id_ = result.route()->media_route_id(); |
| 76 } | 75 } |
| 77 | 76 |
| 78 void MediaRouterE2EBrowserTest::CreateMediaRoute( | 77 void MediaRouterE2EBrowserTest::CreateMediaRoute( |
| 79 const MediaSource& source, | 78 const MediaSource& source, |
| 80 const GURL& origin, | 79 const url::Origin& origin, |
| 81 content::WebContents* web_contents) { | 80 content::WebContents* web_contents) { |
| 82 DCHECK(media_router_); | 81 DCHECK(media_router_); |
| 83 observer_.reset(new TestMediaSinksObserver(media_router_, source, origin)); | 82 observer_.reset(new TestMediaSinksObserver(media_router_, source, origin)); |
| 84 observer_->Init(); | 83 observer_->Init(); |
| 85 | 84 |
| 86 DVLOG(1) << "Receiver name: " << receiver(); | 85 DVLOG(1) << "Receiver name: " << receiver(); |
| 87 // Wait for MediaSinks compatible with |source| to be discovered. | 86 // Wait for MediaSinks compatible with |source| to be discovered. |
| 88 ASSERT_TRUE(ConditionalWait( | 87 ASSERT_TRUE(ConditionalWait( |
| 89 base::TimeDelta::FromSeconds(30), base::TimeDelta::FromSeconds(1), | 88 base::TimeDelta::FromSeconds(30), base::TimeDelta::FromSeconds(1), |
| 90 base::Bind(&MediaRouterE2EBrowserTest::IsSinkDiscovered, | 89 base::Bind(&MediaRouterE2EBrowserTest::IsSinkDiscovered, |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 EXPECT_EQ(1u, chrome::GetTotalBrowserCount()); | 138 EXPECT_EQ(1u, chrome::GetTotalBrowserCount()); |
| 140 EXPECT_EQ(1, browser()->tab_strip_model()->count()); | 139 EXPECT_EQ(1, browser()->tab_strip_model()->count()); |
| 141 | 140 |
| 142 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( | 141 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( |
| 143 browser(), GURL("about:blank"), 1); | 142 browser(), GURL("about:blank"), 1); |
| 144 content::WebContents* web_contents = | 143 content::WebContents* web_contents = |
| 145 browser()->tab_strip_model()->GetActiveWebContents(); | 144 browser()->tab_strip_model()->GetActiveWebContents(); |
| 146 int tab_id = SessionTabHelper::IdForTab(web_contents); | 145 int tab_id = SessionTabHelper::IdForTab(web_contents); |
| 147 | 146 |
| 148 // Wait for 30 seconds to make sure the route is stable. | 147 // Wait for 30 seconds to make sure the route is stable. |
| 149 CreateMediaRoute( | 148 CreateMediaRoute(MediaSourceForTab(tab_id), url::Origin(GURL(kOrigin)), |
| 150 MediaSourceForTab(tab_id), GURL(kOriginUrl), web_contents); | 149 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 url::Origin(GURL(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 |