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 = {
"src/chrome/test/data/layout_tests/LayoutTests/websocket/tests/workers":
Var("webkit_trunk") + "/LayoutTests/websocket/tests/workers@" +
Var("webkit_revision"),
"src/chrome/test/data/layout_tests/LayoutTests/media":
Var("webkit_trunk") + "/LayoutTests/media@" +
Var("webkit_revision"),
"src/third_party/swig/Lib":
"/trunk/deps/third_party/swig/Lib@" + Var("swig_revision"),
......
......@@ -6,6 +6,7 @@
#include "base/file_path.h"
#include "base/platform_thread.h"
#include "base/string_util.h"
#include "chrome/test/ui/ui_layout_test.h"
#include "chrome/test/ui/ui_test.h"
#include "net/base/net_util.h"
......@@ -54,3 +55,34 @@ TEST_F(MediaTest, VideoBearTheora) {
TEST_F(MediaTest, VideoBearSilentTheora) {
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) {
if (stopped_)
return;
if (GetPlaybackRate() != 0.0f) {
io_loop_->PostTask(FROM_HERE,
NewRunnableMethod(this, &AudioRendererImpl::PlayTask));
} else {
io_loop_->PostTask(FROM_HERE,
NewRunnableMethod(this, &AudioRendererImpl::PauseTask));
}
}
void AudioRendererImpl::SetVolume(float volume) {
......
......@@ -137,24 +137,30 @@ void UILayoutTest::InitializeForLayoutTest(const FilePath& test_parent_dir,
}
void UILayoutTest::AddResourceForLayoutTest(const FilePath& parent_dir,
const FilePath& resource_dir) {
const FilePath& resource_name) {
FilePath root_dir;
PathService::Get(base::DIR_SOURCE_ROOT, &root_dir);
FilePath src_dir = root_dir.AppendASCII("chrome");
src_dir = src_dir.AppendASCII("test");
src_dir = src_dir.AppendASCII("data");
src_dir = src_dir.AppendASCII("layout_tests");
src_dir = src_dir.AppendASCII("LayoutTests");
src_dir = src_dir.Append(parent_dir);
src_dir = src_dir.Append(resource_dir);
ASSERT_TRUE(file_util::DirectoryExists(src_dir));
FilePath source = root_dir.AppendASCII("chrome");
source = source.AppendASCII("test");
source = source.AppendASCII("data");
source = source.AppendASCII("layout_tests");
source = source.AppendASCII("LayoutTests");
source = source.Append(parent_dir);
source = source.Append(resource_name);
ASSERT_TRUE(file_util::PathExists(source));
FilePath dest_parent_dir = temp_test_dir_.
AppendASCII("LayoutTests").Append(parent_dir);
ASSERT_TRUE(file_util::CreateDirectory(dest_parent_dir));
FilePath dest_dir = dest_parent_dir.Append(resource_dir);
ASSERT_TRUE(file_util::CopyDirectory(src_dir, dest_dir, true));
FilePath dest = dest_parent_dir.Append(resource_name);
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) {
......
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