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 |