| Index: chrome/browser/media_galleries/fileapi/media_file_validator_browsertest.cc
|
| diff --git a/chrome/browser/media_galleries/fileapi/media_file_validator_unittest.cc b/chrome/browser/media_galleries/fileapi/media_file_validator_browsertest.cc
|
| similarity index 79%
|
| rename from chrome/browser/media_galleries/fileapi/media_file_validator_unittest.cc
|
| rename to chrome/browser/media_galleries/fileapi/media_file_validator_browsertest.cc
|
| index 5fde5e470667666c5452b29b3abdc16bdba854f5..91901bfec56649d14e12669614e8c5103adb066b 100644
|
| --- a/chrome/browser/media_galleries/fileapi/media_file_validator_unittest.cc
|
| +++ b/chrome/browser/media_galleries/fileapi/media_file_validator_browsertest.cc
|
| @@ -9,6 +9,7 @@
|
| #include "base/files/scoped_temp_dir.h"
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/message_loop/message_loop_proxy.h"
|
| +#include "base/path_service.h"
|
| #include "chrome/browser/media_galleries/fileapi/media_file_system_backend.h"
|
| #include "chrome/test/base/in_process_browser_test.h"
|
| #include "content/public/test/browser_test.h"
|
| @@ -32,7 +33,7 @@ const char kValidImage[] = "RIFF0\0\0\0WEBPVP8 $\0\0\0\xB2\x02\0\x9D\x01\x2A"
|
| "\x01\0\x01\0\x2F\x9D\xCE\xE7s\xA8((((\x01\x9CK(\0"
|
| "\x05\xCE\xB3l\0\0\xFE\xD8\x80\0\0";
|
|
|
| -const char kInvalidImage[] = "Not an image";
|
| +const char kInvalidMediaFile[] = "Not a media file";
|
|
|
| const int64 kNoFileSize = -1;
|
|
|
| @@ -55,6 +56,13 @@ void HandleCheckFileResult(int64 expected_size,
|
| callback.Run(false);
|
| }
|
|
|
| +base::FilePath GetMediaTestDir() {
|
| + base::FilePath test_file;
|
| + if (!PathService::Get(base::DIR_SOURCE_ROOT, &test_file))
|
| + return base::FilePath();
|
| + return test_file.AppendASCII("media").AppendASCII("test").AppendASCII("data");
|
| +}
|
| +
|
| } // namespace
|
|
|
| namespace chrome {
|
| @@ -78,6 +86,19 @@ class MediaFileValidatorTest : public InProcessBrowserTest {
|
| loop_runner_->Run();
|
| }
|
|
|
| + // Write |source| into |filename| in a test file system and try to move it
|
| + // into a media file system. The result is compared to |expected_result|.
|
| + void MoveTestFromFile(const std::string& filename,
|
| + const base::FilePath& source, bool expected_result) {
|
| + content::BrowserThread::PostTask(
|
| + content::BrowserThread::FILE,
|
| + FROM_HERE,
|
| + base::Bind(&MediaFileValidatorTest::SetupFromFileOnFileThread,
|
| + base::Unretained(this), filename, source, expected_result));
|
| + loop_runner_ = new content::MessageLoopRunner;
|
| + loop_runner_->Run();
|
| + }
|
| +
|
| private:
|
| // Create the test files, filesystem objects, etc.
|
| void SetupOnFileThread(const std::string& filename,
|
| @@ -129,6 +150,14 @@ class MediaFileValidatorTest : public InProcessBrowserTest {
|
| base::Unretained(this), expected_result)));
|
| }
|
|
|
| + void SetupFromFileOnFileThread(const std::string& filename,
|
| + const base::FilePath& source,
|
| + bool expected_result) {
|
| + std::string content;
|
| + ASSERT_TRUE(file_util::ReadFileToString(source, &content));
|
| + SetupOnFileThread(filename, content, expected_result);
|
| + }
|
| +
|
| // Check that exactly one of |move_src_| and |move_dest_| exists.
|
| // |src_expected| indicates which one should exist. When complete,
|
| // |callback| is called with success/failure.
|
| @@ -212,17 +241,43 @@ class MediaFileValidatorTest : public InProcessBrowserTest {
|
| DISALLOW_COPY_AND_ASSIGN(MediaFileValidatorTest);
|
| };
|
|
|
| +IN_PROC_BROWSER_TEST_F(MediaFileValidatorTest, UnsupportedExtension) {
|
| + MoveTest("a.txt", std::string(kValidImage, arraysize(kValidImage)), false);
|
| +}
|
| +
|
| IN_PROC_BROWSER_TEST_F(MediaFileValidatorTest, ValidImage) {
|
| MoveTest("a.webp", std::string(kValidImage, arraysize(kValidImage)), true);
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(MediaFileValidatorTest, InvalidImage) {
|
| - MoveTest("a.webp", std::string(kInvalidImage, arraysize(kInvalidImage)),
|
| - false);
|
| + MoveTest("a.webp", std::string(kInvalidMediaFile,
|
| + arraysize(kInvalidMediaFile)), false);
|
| }
|
|
|
| -IN_PROC_BROWSER_TEST_F(MediaFileValidatorTest, UnsupportedExtension) {
|
| - MoveTest("a.txt", std::string(kValidImage, arraysize(kValidImage)), false);
|
| +IN_PROC_BROWSER_TEST_F(MediaFileValidatorTest, InvalidAudio) {
|
| + MoveTest("a.ogg", std::string(kInvalidMediaFile,
|
| + arraysize(kInvalidMediaFile)), false);
|
| +}
|
| +
|
| +IN_PROC_BROWSER_TEST_F(MediaFileValidatorTest, ValidAudio) {
|
| + base::FilePath test_file = GetMediaTestDir();
|
| + ASSERT_FALSE(test_file.empty());
|
| + test_file = test_file.AppendASCII("sfx.ogg");
|
| + MoveTestFromFile("sfx.ogg", test_file, true);
|
| +}
|
| +
|
| +IN_PROC_BROWSER_TEST_F(MediaFileValidatorTest, InvalidVideo) {
|
| + base::FilePath test_file = GetMediaTestDir();
|
| + ASSERT_FALSE(test_file.empty());
|
| + test_file = test_file.AppendASCII("no_streams.webm");
|
| + MoveTestFromFile("no_streams.webm", test_file, false);
|
| +}
|
| +
|
| +IN_PROC_BROWSER_TEST_F(MediaFileValidatorTest, ValidVideo) {
|
| + base::FilePath test_file = GetMediaTestDir();
|
| + ASSERT_FALSE(test_file.empty());
|
| + test_file = test_file.AppendASCII("bear-320x240-multitrack.webm");
|
| + MoveTestFromFile("multitrack.webm", test_file, true);
|
| }
|
|
|
| } // namespace chrome
|
|
|