| Index: media/audio/sounds/wav_audio_handler_unittest.cc
|
| diff --git a/media/audio/sounds/wav_audio_handler_unittest.cc b/media/audio/sounds/wav_audio_handler_unittest.cc
|
| index d4ec83a5838243c5df7d488a7146780a0f8d29b4..286331425ca55876844cd5cb87ecc56166a5fedf 100644
|
| --- a/media/audio/sounds/wav_audio_handler_unittest.cc
|
| +++ b/media/audio/sounds/wav_audio_handler_unittest.cc
|
| @@ -12,26 +12,71 @@
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace media {
|
| +namespace {
|
| +const size_t kWavHeaderSize = 12;
|
| +const size_t kFormatHeaderSize = 8;
|
| +
|
| +const size_t kChannelIndex = kWavHeaderSize + kFormatHeaderSize + 2;
|
| +const size_t kBitsPerSampleIndex = kWavHeaderSize + kFormatHeaderSize + 14;
|
| +const size_t kSampleRateIndex = kWavHeaderSize + kFormatHeaderSize + 4;
|
| +} // namespace
|
|
|
| TEST(WavAudioHandlerTest, SampleDataTest) {
|
| - WavAudioHandler handler(base::StringPiece(kTestAudioData,
|
| - arraysize(kTestAudioData)));
|
| - ASSERT_EQ(2u, handler.num_channels());
|
| - ASSERT_EQ(16u, handler.bits_per_sample());
|
| - ASSERT_EQ(48000u, handler.sample_rate());
|
| - ASSERT_EQ(1u, handler.total_frames());
|
| - ASSERT_EQ(20u, handler.GetDuration().InMicroseconds());
|
| -
|
| - ASSERT_EQ(4U, handler.data().size());
|
| + auto handler = WavAudioHandler::Create(
|
| + base::StringPiece(kTestAudioData, arraysize(kTestAudioData)));
|
| + ASSERT_TRUE(handler);
|
| + ASSERT_EQ(2u, handler->num_channels());
|
| + ASSERT_EQ(16u, handler->bits_per_sample());
|
| + ASSERT_EQ(48000u, handler->sample_rate());
|
| + ASSERT_EQ(1u, handler->total_frames());
|
| + ASSERT_EQ(20u, handler->GetDuration().InMicroseconds());
|
| +
|
| + ASSERT_EQ(4U, handler->data().size());
|
| const char kData[] = "\x01\x00\x01\x00";
|
| - ASSERT_EQ(base::StringPiece(kData, arraysize(kData) - 1), handler.data());
|
| + ASSERT_EQ(base::StringPiece(kData, arraysize(kData) - 1), handler->data());
|
| +
|
| + scoped_ptr<AudioBus> bus =
|
| + AudioBus::Create(handler->num_channels(),
|
| + handler->data().size() / handler->num_channels());
|
| +
|
| + size_t bytes_written = 0u;
|
| + ASSERT_TRUE(handler->CopyTo(bus.get(), 0, &bytes_written));
|
| + ASSERT_EQ(static_cast<size_t>(handler->data().size()), bytes_written);
|
| +}
|
| +
|
| +TEST(WavAudioHandlerTest, TestZeroChannelsIsNotValid) {
|
| + // Read in the sample data and modify the channel field to hold |00|00|.
|
| + auto data = std::string(kTestAudioData, arraysize(kTestAudioData));
|
| + data[kChannelIndex] = '\x00';
|
| + data[kChannelIndex + 1] = '\x00';
|
| + auto handler =
|
| + WavAudioHandler::Create(base::StringPiece(data.c_str(), data.size()));
|
| + EXPECT_FALSE(handler);
|
| +}
|
|
|
| - scoped_ptr<AudioBus> bus = AudioBus::Create(
|
| - handler.num_channels(), handler.data().size() / handler.num_channels());
|
| +TEST(WavAudioHandlerTest, TestZeroBitsPerSampleIsNotValid) {
|
| + // Read in the sample data and modify the bits_per_sample field to hold
|
| + // |00|00|.
|
| + auto data = std::string(kTestAudioData, arraysize(kTestAudioData));
|
| + data[kBitsPerSampleIndex] = '\x00';
|
| + data[kBitsPerSampleIndex + 1] = '\x00';
|
| + auto handler =
|
| + WavAudioHandler::Create(base::StringPiece(data.c_str(), data.size()));
|
| + EXPECT_FALSE(handler);
|
| +}
|
|
|
| - size_t bytes_written;
|
| - ASSERT_TRUE(handler.CopyTo(bus.get(), 0, &bytes_written));
|
| - ASSERT_EQ(static_cast<size_t>(handler.data().size()), bytes_written);
|
| +TEST(WavAudioHandlerTest, TestZeroSamplesPerSecondIsNotValid) {
|
| + // Read in the sample data and modify the bits_per_sample field to hold
|
| + // |00|00|.
|
| + auto data = std::string(kTestAudioData, arraysize(kTestAudioData));
|
| + data[kSampleRateIndex] = '\x00';
|
| + data[kSampleRateIndex + 1] = '\x00';
|
| + data[kSampleRateIndex + 2] = '\x00';
|
| + data[kSampleRateIndex + 3] = '\x00';
|
| + auto handler =
|
| + WavAudioHandler::Create(base::StringPiece(data.c_str(), data.size()));
|
| + EXPECT_FALSE(handler);
|
| + ;
|
| }
|
|
|
| } // namespace media
|
|
|