| Index: media/audio/audio_debug_file_writer_unittest.cc
|
| diff --git a/content/browser/renderer_host/media/audio_debug_file_writer_unittest.cc b/media/audio/audio_debug_file_writer_unittest.cc
|
| similarity index 85%
|
| rename from content/browser/renderer_host/media/audio_debug_file_writer_unittest.cc
|
| rename to media/audio/audio_debug_file_writer_unittest.cc
|
| index 4ececd04cd85c127731d9a3b81d04132a726a036..c7b8905ca55c5816018b4a788dd049ea664d1c9d 100644
|
| --- a/content/browser/renderer_host/media/audio_debug_file_writer_unittest.cc
|
| +++ b/media/audio/audio_debug_file_writer_unittest.cc
|
| @@ -4,18 +4,19 @@
|
|
|
| #include <stdint.h>
|
|
|
| +#include "base/bind.h"
|
| #include "base/files/file_util.h"
|
| #include "base/memory/ptr_util.h"
|
| +#include "base/message_loop/message_loop.h"
|
| #include "base/synchronization/waitable_event.h"
|
| #include "base/sys_byteorder.h"
|
| -#include "content/browser/renderer_host/media/audio_debug_file_writer.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| -#include "content/public/test/test_browser_thread_bundle.h"
|
| +#include "base/threading/thread.h"
|
| +#include "media/audio/audio_debug_file_writer.h"
|
| #include "media/base/audio_bus.h"
|
| #include "media/base/test_helpers.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| -namespace content {
|
| +namespace media {
|
|
|
| namespace {
|
|
|
| @@ -43,7 +44,7 @@ class AudioDebugFileWriterTest
|
| : public testing::TestWithParam<AudioDebugFileWriterTestData> {
|
| public:
|
| AudioDebugFileWriterTest()
|
| - : thread_bundle_(content::TestBrowserThreadBundle::REAL_FILE_THREAD),
|
| + : file_thread_("FileThread"),
|
| params_(media::AudioParameters::Format::AUDIO_PCM_LINEAR,
|
| std::tr1::get<0>(GetParam()),
|
| std::tr1::get<1>(GetParam()),
|
| @@ -54,11 +55,12 @@ class AudioDebugFileWriterTest
|
| writes_),
|
| source_interleaved_(source_samples_ ? new int16_t[source_samples_]
|
| : nullptr) {
|
| + file_thread_.StartAndWaitForTesting();
|
| InitSourceInterleaved(source_interleaved_.get(), source_samples_);
|
| }
|
|
|
| protected:
|
| - virtual ~AudioDebugFileWriterTest() {}
|
| + virtual ~AudioDebugFileWriterTest() { file_thread_.Stop(); }
|
|
|
| static void InitSourceInterleaved(int16_t* source_interleaved,
|
| int source_samples) {
|
| @@ -71,7 +73,7 @@ class AudioDebugFileWriterTest
|
| }
|
| }
|
|
|
| - static void VerifyHeader(const char(&wav_header)[kWavHeaderSize],
|
| + static void VerifyHeader(const char (&wav_header)[kWavHeaderSize],
|
| const media::AudioParameters& params,
|
| int writes,
|
| int64_t file_length) {
|
| @@ -154,7 +156,7 @@ class AudioDebugFileWriterTest
|
| }
|
|
|
| void TestDoneOnFileThread(const base::Closure& callback) {
|
| - DCHECK_CURRENTLY_ON(BrowserThread::FILE);
|
| + DCHECK(file_thread_.task_runner()->BelongsToCurrentThread());
|
|
|
| callback.Run();
|
| }
|
| @@ -170,19 +172,17 @@ class AudioDebugFileWriterTest
|
| i * params_.channels() * params_.frames_per_buffer(),
|
| params_.frames_per_buffer(), kBytesPerSample);
|
|
|
| - input_debug_writer_->Write(std::move(bus));
|
| + debug_writer_->Write(std::move(bus));
|
| }
|
| }
|
|
|
| void WaitForRecordingCompletion() {
|
| media::WaitableMessageLoopEvent event;
|
|
|
| - // Post a task to BrowserThread::FILE indicating that all the writes are
|
| - // done.
|
| - BrowserThread::PostTask(
|
| - BrowserThread::FILE, FROM_HERE,
|
| - base::Bind(&AudioDebugFileWriterTest::TestDoneOnFileThread,
|
| - base::Unretained(this), event.GetClosure()));
|
| + // Post a task to the file thread indicating that all the writes are done.
|
| + file_thread_.task_runner()->PostTask(
|
| + FROM_HERE, base::Bind(&AudioDebugFileWriterTest::TestDoneOnFileThread,
|
| + base::Unretained(this), event.GetClosure()));
|
|
|
| // Wait for TestDoneOnFileThread() to call event's closure.
|
| event.RunAndWait();
|
| @@ -192,11 +192,11 @@ class AudioDebugFileWriterTest
|
| base::FilePath file_path;
|
| EXPECT_TRUE(base::CreateTemporaryFile(&file_path));
|
|
|
| - input_debug_writer_->Start(file_path);
|
| + debug_writer_->Start(file_path);
|
|
|
| DoDebugRecording();
|
|
|
| - input_debug_writer_->Stop();
|
| + debug_writer_->Stop();
|
|
|
| WaitForRecordingCompletion();
|
|
|
| @@ -211,10 +211,11 @@ class AudioDebugFileWriterTest
|
| }
|
|
|
| protected:
|
| - TestBrowserThreadBundle thread_bundle_;
|
| + base::Thread file_thread_;
|
| + base::MessageLoop message_loop_;
|
|
|
| // Writer under test.
|
| - std::unique_ptr<AudioDebugFileWriter> input_debug_writer_;
|
| + std::unique_ptr<AudioDebugFileWriter> debug_writer_;
|
|
|
| // AudioBus parameters.
|
| media::AudioParameters params_;
|
| @@ -235,14 +236,16 @@ class AudioDebugFileWriterTest
|
| class AudioDebugFileWriterBehavioralTest : public AudioDebugFileWriterTest {};
|
|
|
| TEST_P(AudioDebugFileWriterTest, WaveRecordingTest) {
|
| - input_debug_writer_.reset(new AudioDebugFileWriter(params_));
|
| + debug_writer_.reset(
|
| + new AudioDebugFileWriter(params_, file_thread_.task_runner()));
|
|
|
| RecordAndVerifyOnce();
|
| }
|
|
|
| TEST_P(AudioDebugFileWriterBehavioralTest,
|
| DeletedBeforeRecordingFinishedOnFileThread) {
|
| - input_debug_writer_.reset(new AudioDebugFileWriter(params_));
|
| + debug_writer_.reset(
|
| + new AudioDebugFileWriter(params_, file_thread_.task_runner()));
|
|
|
| base::FilePath file_path;
|
| EXPECT_TRUE(base::CreateTemporaryFile(&file_path));
|
| @@ -251,15 +254,15 @@ TEST_P(AudioDebugFileWriterBehavioralTest,
|
| new base::WaitableEvent(base::WaitableEvent::ResetPolicy::MANUAL,
|
| base::WaitableEvent::InitialState::NOT_SIGNALED);
|
|
|
| - BrowserThread::PostTask(
|
| - BrowserThread::FILE, FROM_HERE,
|
| + file_thread_.task_runner()->PostTask(
|
| + FROM_HERE,
|
| base::Bind(&base::WaitableEvent::Wait, base::Owned(wait_for_deletion)));
|
|
|
| - input_debug_writer_->Start(file_path);
|
| + debug_writer_->Start(file_path);
|
|
|
| DoDebugRecording();
|
|
|
| - input_debug_writer_.reset();
|
| + debug_writer_.reset();
|
| wait_for_deletion->Signal();
|
|
|
| WaitForRecordingCompletion();
|
| @@ -275,29 +278,33 @@ TEST_P(AudioDebugFileWriterBehavioralTest,
|
| }
|
|
|
| TEST_P(AudioDebugFileWriterBehavioralTest, FileCreationError) {
|
| - input_debug_writer_.reset(new AudioDebugFileWriter(params_));
|
| + debug_writer_.reset(
|
| + new AudioDebugFileWriter(params_, file_thread_.task_runner()));
|
| base::FilePath file_path; // Empty file name.
|
| - input_debug_writer_->Start(file_path);
|
| + debug_writer_->Start(file_path);
|
| DoDebugRecording();
|
| }
|
|
|
| TEST_P(AudioDebugFileWriterBehavioralTest, StartStopStartStop) {
|
| - input_debug_writer_.reset(new AudioDebugFileWriter(params_));
|
| + debug_writer_.reset(
|
| + new AudioDebugFileWriter(params_, file_thread_.task_runner()));
|
| RecordAndVerifyOnce();
|
| RecordAndVerifyOnce();
|
| }
|
|
|
| TEST_P(AudioDebugFileWriterBehavioralTest, DestroyNotStarted) {
|
| - input_debug_writer_.reset(new AudioDebugFileWriter(params_));
|
| - input_debug_writer_.reset();
|
| + debug_writer_.reset(
|
| + new AudioDebugFileWriter(params_, file_thread_.task_runner()));
|
| + debug_writer_.reset();
|
| }
|
|
|
| TEST_P(AudioDebugFileWriterBehavioralTest, DestroyStarted) {
|
| - input_debug_writer_.reset(new AudioDebugFileWriter(params_));
|
| + debug_writer_.reset(
|
| + new AudioDebugFileWriter(params_, file_thread_.task_runner()));
|
| base::FilePath file_path;
|
| EXPECT_TRUE(base::CreateTemporaryFile(&file_path));
|
| - input_debug_writer_->Start(file_path);
|
| - input_debug_writer_.reset();
|
| + debug_writer_->Start(file_path);
|
| + debug_writer_.reset();
|
| }
|
|
|
| INSTANTIATE_TEST_CASE_P(
|
| @@ -347,4 +354,4 @@ INSTANTIATE_TEST_CASE_P(
|
| 44100 / 100,
|
| 100)));
|
|
|
| -} // namespace content
|
| +} // namespace media
|
|
|