Commit 4e27e40f authored by sergeyu@chromium.org's avatar sergeyu@chromium.org

Set state of a new audio stream to Paused until it start to play. Also added...

Set state of a new audio stream to Paused until it start to play. Also added media layout tests in ui tests.
BUG=39825
TEST=sound is still playing (with and without autoplay).

Review URL: http://codereview.chromium.org/3160027

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56953 0039d316-1c4b-4281-b951-d872f2087c98
parent 7904c65f
...@@ -144,6 +144,9 @@ deps = { ...@@ -144,6 +144,9 @@ deps = {
"src/chrome/test/data/layout_tests/LayoutTests/websocket/tests/workers": "src/chrome/test/data/layout_tests/LayoutTests/websocket/tests/workers":
Var("webkit_trunk") + "/LayoutTests/websocket/tests/workers@" + Var("webkit_trunk") + "/LayoutTests/websocket/tests/workers@" +
Var("webkit_revision"), Var("webkit_revision"),
"src/chrome/test/data/layout_tests/LayoutTests/media":
Var("webkit_trunk") + "/LayoutTests/media@" +
Var("webkit_revision"),
"src/third_party/swig/Lib": "src/third_party/swig/Lib":
"/trunk/deps/third_party/swig/Lib@" + Var("swig_revision"), "/trunk/deps/third_party/swig/Lib@" + Var("swig_revision"),
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include "base/file_path.h" #include "base/file_path.h"
#include "base/platform_thread.h" #include "base/platform_thread.h"
#include "base/string_util.h" #include "base/string_util.h"
#include "chrome/test/ui/ui_layout_test.h"
#include "chrome/test/ui/ui_test.h" #include "chrome/test/ui/ui_test.h"
#include "net/base/net_util.h" #include "net/base/net_util.h"
...@@ -54,3 +55,34 @@ TEST_F(MediaTest, VideoBearTheora) { ...@@ -54,3 +55,34 @@ TEST_F(MediaTest, VideoBearTheora) {
TEST_F(MediaTest, VideoBearSilentTheora) { TEST_F(MediaTest, VideoBearSilentTheora) {
PlayVideo("bear_silent.ogv"); PlayVideo("bear_silent.ogv");
} }
TEST_F(UILayoutTest, MediaUILayoutTest) {
static const char* kResources[] = {
"content",
"media-file.js",
"media-fullscreen.js",
"video-paint-test.js",
"video-played.js",
"video-test.js",
};
static const char* kMediaTests[] = {
"video-autoplay.html",
// "video-loop.html", disabled due to 52887.
"video-no-autoplay.html",
// TODO(sergeyu): Add more tests here.
};
FilePath test_dir;
FilePath media_test_dir;
media_test_dir = media_test_dir.AppendASCII("media");
InitializeForLayoutTest(test_dir, media_test_dir, kNoHttpPort);
// Copy resources first.
for (size_t i = 0; i < arraysize(kResources); ++i)
AddResourceForLayoutTest(
test_dir, media_test_dir.AppendASCII(kResources[i]));
for (size_t i = 0; i < arraysize(kMediaTests); ++i)
RunLayoutTest(kMediaTests[i], kNoHttpPort);
}
...@@ -165,8 +165,13 @@ void AudioRendererImpl::Play(media::FilterCallback* callback) { ...@@ -165,8 +165,13 @@ void AudioRendererImpl::Play(media::FilterCallback* callback) {
if (stopped_) if (stopped_)
return; return;
if (GetPlaybackRate() != 0.0f) {
io_loop_->PostTask(FROM_HERE, io_loop_->PostTask(FROM_HERE,
NewRunnableMethod(this, &AudioRendererImpl::PlayTask)); NewRunnableMethod(this, &AudioRendererImpl::PlayTask));
} else {
io_loop_->PostTask(FROM_HERE,
NewRunnableMethod(this, &AudioRendererImpl::PauseTask));
}
} }
void AudioRendererImpl::SetVolume(float volume) { void AudioRendererImpl::SetVolume(float volume) {
......
...@@ -137,24 +137,30 @@ void UILayoutTest::InitializeForLayoutTest(const FilePath& test_parent_dir, ...@@ -137,24 +137,30 @@ void UILayoutTest::InitializeForLayoutTest(const FilePath& test_parent_dir,
} }
void UILayoutTest::AddResourceForLayoutTest(const FilePath& parent_dir, void UILayoutTest::AddResourceForLayoutTest(const FilePath& parent_dir,
const FilePath& resource_dir) { const FilePath& resource_name) {
FilePath root_dir; FilePath root_dir;
PathService::Get(base::DIR_SOURCE_ROOT, &root_dir); PathService::Get(base::DIR_SOURCE_ROOT, &root_dir);
FilePath src_dir = root_dir.AppendASCII("chrome"); FilePath source = root_dir.AppendASCII("chrome");
src_dir = src_dir.AppendASCII("test"); source = source.AppendASCII("test");
src_dir = src_dir.AppendASCII("data"); source = source.AppendASCII("data");
src_dir = src_dir.AppendASCII("layout_tests"); source = source.AppendASCII("layout_tests");
src_dir = src_dir.AppendASCII("LayoutTests"); source = source.AppendASCII("LayoutTests");
src_dir = src_dir.Append(parent_dir); source = source.Append(parent_dir);
src_dir = src_dir.Append(resource_dir); source = source.Append(resource_name);
ASSERT_TRUE(file_util::DirectoryExists(src_dir));
ASSERT_TRUE(file_util::PathExists(source));
FilePath dest_parent_dir = temp_test_dir_. FilePath dest_parent_dir = temp_test_dir_.
AppendASCII("LayoutTests").Append(parent_dir); AppendASCII("LayoutTests").Append(parent_dir);
ASSERT_TRUE(file_util::CreateDirectory(dest_parent_dir)); ASSERT_TRUE(file_util::CreateDirectory(dest_parent_dir));
FilePath dest_dir = dest_parent_dir.Append(resource_dir); FilePath dest = dest_parent_dir.Append(resource_name);
ASSERT_TRUE(file_util::CopyDirectory(src_dir, dest_dir, true));
if (file_util::DirectoryExists(source)) {
ASSERT_TRUE(file_util::CopyDirectory(source, dest, true));
} else {
ASSERT_TRUE(file_util::CopyFile(source, dest));
}
} }
static size_t FindInsertPosition(const std::string& html) { static size_t FindInsertPosition(const std::string& html) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment