| 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
|
| index bc83b4ce4862d00d7574c726b8ce2c0e15daee70..d617f25e5f5de9205e8e17e10acf2a2b777897b4 100644
|
| --- a/chromecast/browser/test/chromecast_shell_browser_test.cc
|
| +++ b/chromecast/browser/test/chromecast_shell_browser_test.cc
|
| @@ -3,12 +3,21 @@
|
| // 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 "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:
|
| @@ -19,9 +28,45 @@ class ChromecastShellBrowserTest : public ChromecastBrowserTest {
|
| NavigateToURL(web_contents(), url_);
|
| }
|
|
|
| + void PlayVideo(const std::string& media_file) {
|
| + PlayMedia("video", media_file);
|
| + }
|
| +
|
| private:
|
| const GURL url_;
|
|
|
| + 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::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));
|
| +
|
| + NavigateToURL(web_contents(), gurl);
|
| + base::string16 result = title_watcher.WaitAndGetTitle();
|
| + return base::UTF16ToASCII(result);
|
| + }
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(ChromecastShellBrowserTest);
|
| };
|
|
|
| @@ -32,5 +77,9 @@ IN_PROC_BROWSER_TEST_F(ChromecastShellBrowserTest, EmptyTest) {
|
| EXPECT_TRUE(true);
|
| }
|
|
|
| +IN_PROC_BROWSER_TEST_F(ChromecastShellBrowserTest, MediaPlayback) {
|
| + PlayVideo("bear.mp4");
|
| +}
|
| +
|
| } // namespace shell
|
| } // namespace chromecast
|
|
|