Chromium Code Reviews| 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..a7705871a1f469676a0ff3054e3913cf24a4f56a 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,16 @@ void HandleCheckFileResult(int64 expected_size, |
| callback.Run(false); |
| } |
| +base::FilePath GetMediaTestDir() { |
| + base::FilePath test_file; |
| + if (PathService::Get(base::DIR_SOURCE_ROOT, &test_file)) { |
| + test_file = test_file.Append(FILE_PATH_LITERAL("media")); |
|
Lei Zhang
2013/08/08 00:08:02
test_file =
test_file.AppendASCII("media")
vandebo (ex-Chrome)
2013/08/08 17:34:01
Done.
|
| + test_file = test_file.Append(FILE_PATH_LITERAL("test")); |
| + test_file = test_file.Append(FILE_PATH_LITERAL("data")); |
| + } |
| + return test_file; |
| +} |
| + |
| } // namespace |
| namespace chrome { |
| @@ -78,6 +89,17 @@ class MediaFileValidatorTest : public InProcessBrowserTest { |
| loop_runner_->Run(); |
| } |
| + void MoveTestFromFile(const std::string& filename, |
|
Lei Zhang
2013/08/08 00:08:02
Add a comment.
vandebo (ex-Chrome)
2013/08/08 17:34:01
Done.
|
| + 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 +151,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 +242,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().Append( |
|
Lei Zhang
2013/08/08 00:08:02
AppendASCII() is shorter than APPEND(FPL()).
vandebo (ex-Chrome)
2013/08/08 17:34:01
Done.
|
| + FILE_PATH_LITERAL("sfx.ogg")); |
| + ASSERT_FALSE(test_file.empty()); |
|
Lei Zhang
2013/08/08 00:08:02
This will never fail because you always do Append(
vandebo (ex-Chrome)
2013/08/08 17:34:01
Done.
|
| + MoveTestFromFile("sfx.ogg", test_file, true); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(MediaFileValidatorTest, InvalidVideo) { |
| + base::FilePath test_file = GetMediaTestDir().Append( |
| + FILE_PATH_LITERAL("no_streams.webm")); |
| + ASSERT_FALSE(test_file.empty()); |
| + MoveTestFromFile("no_streams.webm", test_file, false); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(MediaFileValidatorTest, ValidVideo) { |
| + base::FilePath test_file = GetMediaTestDir().Append( |
| + FILE_PATH_LITERAL("bear-320x240-multitrack.webm")); |
| + ASSERT_FALSE(test_file.empty()); |
| + MoveTestFromFile("multitrack.webm", test_file, true); |
| } |
| } // namespace chrome |