| Index: chromecast/browser/test/chromecast_shell_browser_test.cc
|
| diff --git a/chromecast/browser/test/chromecast_shell_browser_test.cc b/chromecast/browser/test/chromecast_shell_browser_test.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..423558f821167af90c4169a866914a2c23d7f236
|
| --- /dev/null
|
| +++ b/chromecast/browser/test/chromecast_shell_browser_test.cc
|
| @@ -0,0 +1,93 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "base/macros.h"
|
| +#include "base/strings/string_split.h"
|
| +#include "base/strings/utf_string_conversions.h"
|
| +#include "chromecast/browser/test/chromecast_browser_test.h"
|
| +#include "chromecast/chromecast_features.h"
|
| +#include "content/public/test/browser_test_utils.h"
|
| +#include "media/base/test_data_util.h"
|
| +#include "url/gurl.h"
|
| +#include "url/url_constants.h"
|
| +
|
| +namespace chromecast {
|
| +namespace shell {
|
| +namespace {
|
| +const char kEnded[] = "ENDED";
|
| +const char kError[] = "ERROR";
|
| +const char kFailed[] = "FAILED";
|
| +}
|
| +
|
| +class ChromecastShellBrowserTest : public ChromecastBrowserTest {
|
| + public:
|
| + ChromecastShellBrowserTest() {}
|
| +
|
| + void LoadAboutBlank() {
|
| + content::WebContents* web_contents =
|
| + NavigateToURL(GURL(url::kAboutBlankURL));
|
| + content::TitleWatcher title_watcher(
|
| + web_contents, base::ASCIIToUTF16(url::kAboutBlankURL));
|
| + base::string16 result = title_watcher.WaitAndGetTitle();
|
| + EXPECT_EQ(url::kAboutBlankURL, base::UTF16ToASCII(result));
|
| + }
|
| + void PlayAudio(const std::string& media_file) {
|
| + PlayMedia("audio", media_file);
|
| + }
|
| + void PlayVideo(const std::string& media_file) {
|
| + PlayMedia("video", media_file);
|
| + }
|
| +
|
| + private:
|
| + void PlayMedia(const std::string& tag,
|
| + const std::string& media_file) {
|
| + base::StringPairs query_params;
|
| + query_params.push_back(std::make_pair(tag, media_file));
|
| + RunMediaTestPage("player.html", query_params, kEnded);
|
| + }
|
| +
|
| + void RunMediaTestPage(const std::string& html_page,
|
| + const base::StringPairs& query_params,
|
| + const std::string& expected_title) {
|
| + std::string query = media::GetURLQueryString(query_params);
|
| + GURL gurl = content::GetFileUrlWithQuery(
|
| + media::GetTestDataFilePath(html_page),
|
| + query);
|
| +
|
| + std::string final_title = RunTest(gurl, expected_title);
|
| + EXPECT_EQ(expected_title, final_title);
|
| + }
|
| +
|
| + std::string RunTest(const GURL& gurl,
|
| + const std::string& expected_title) {
|
| + content::WebContents* web_contents = NavigateToURL(gurl);
|
| + content::TitleWatcher title_watcher(web_contents,
|
| + base::ASCIIToUTF16(expected_title));
|
| + title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16(kEnded));
|
| + title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16(kError));
|
| + title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16(kFailed));
|
| + base::string16 result = title_watcher.WaitAndGetTitle();
|
| + return base::UTF16ToASCII(result);
|
| + }
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(ChromecastShellBrowserTest);
|
| +};
|
| +
|
| +IN_PROC_BROWSER_TEST_F(ChromecastShellBrowserTest, EmptyTest) {
|
| + // Run an entire browser lifecycle to ensure nothing breaks.
|
| + LoadAboutBlank();
|
| +}
|
| +
|
| +IN_PROC_BROWSER_TEST_F(ChromecastShellBrowserTest, AudioPlaybackWavPcm) {
|
| + PlayAudio("bear_pcm.wav");
|
| +}
|
| +
|
| +#if !BUILDFLAG(IS_CAST_AUDIO_ONLY)
|
| +IN_PROC_BROWSER_TEST_F(ChromecastShellBrowserTest, VideoPlaybackMp4) {
|
| + PlayVideo("bear.mp4");
|
| +}
|
| +#endif
|
| +
|
| +} // namespace shell
|
| +} // namespace chromecast
|
|
|