Chromium Code Reviews| Index: webrtc/modules/audio_coding/neteq/neteq_impl_unittest.cc |
| diff --git a/webrtc/modules/audio_coding/neteq/neteq_impl_unittest.cc b/webrtc/modules/audio_coding/neteq/neteq_impl_unittest.cc |
| index 4c6f0eb2c79a608ffcab960711f368313e52265f..4177352da428c56107a2b585ee47a45c91dd627e 100644 |
| --- a/webrtc/modules/audio_coding/neteq/neteq_impl_unittest.cc |
| +++ b/webrtc/modules/audio_coding/neteq/neteq_impl_unittest.cc |
| @@ -54,105 +54,81 @@ int DeletePacketsAndReturnOk(PacketList* packet_list) { |
| class NetEqImplTest : public ::testing::Test { |
| protected: |
| - NetEqImplTest() |
| - : neteq_(NULL), |
| - config_(), |
| - tick_timer_(new TickTimer), |
| - mock_buffer_level_filter_(NULL), |
| - buffer_level_filter_(NULL), |
| - use_mock_buffer_level_filter_(true), |
| - mock_decoder_database_(NULL), |
| - decoder_database_(NULL), |
| - use_mock_decoder_database_(true), |
| - mock_delay_peak_detector_(NULL), |
| - delay_peak_detector_(NULL), |
| - use_mock_delay_peak_detector_(true), |
| - mock_delay_manager_(NULL), |
| - delay_manager_(NULL), |
| - use_mock_delay_manager_(true), |
| - mock_dtmf_buffer_(NULL), |
| - dtmf_buffer_(NULL), |
| - use_mock_dtmf_buffer_(true), |
| - mock_dtmf_tone_generator_(NULL), |
| - dtmf_tone_generator_(NULL), |
| - use_mock_dtmf_tone_generator_(true), |
| - mock_packet_buffer_(NULL), |
| - packet_buffer_(NULL), |
| - use_mock_packet_buffer_(true), |
| - mock_payload_splitter_(NULL), |
| - payload_splitter_(NULL), |
| - use_mock_payload_splitter_(true), |
| - timestamp_scaler_(NULL) { |
| - config_.sample_rate_hz = 8000; |
| - } |
| + NetEqImplTest() : config_() { config_.sample_rate_hz = 8000; } |
|
kwiberg-webrtc
2016/04/26 13:00:04
"config_()" is unnecessary; a call to the default
hlundin-webrtc
2016/04/26 13:20:38
Done.
|
| void CreateInstance() { |
| + NetEqImpl::Dependencies deps(config_); |
| + |
| + // Get a local pointer to NetEq's TickTimer object. |
| + tick_timer_ = deps.tick_timer.get(); |
| + |
| if (use_mock_buffer_level_filter_) { |
| - mock_buffer_level_filter_ = new MockBufferLevelFilter; |
| - buffer_level_filter_ = mock_buffer_level_filter_; |
| - } else { |
| - buffer_level_filter_ = new BufferLevelFilter; |
| + std::unique_ptr<MockBufferLevelFilter> mock(new MockBufferLevelFilter); |
| + mock_buffer_level_filter_ = mock.get(); |
| + deps.buffer_level_filter = std::move(mock); |
| } |
| + buffer_level_filter_ = deps.buffer_level_filter.get(); |
| + |
| if (use_mock_decoder_database_) { |
| - mock_decoder_database_ = new MockDecoderDatabase; |
| + std::unique_ptr<MockDecoderDatabase> mock(new MockDecoderDatabase); |
| + mock_decoder_database_ = mock.get(); |
| EXPECT_CALL(*mock_decoder_database_, GetActiveCngDecoder()) |
| .WillOnce(ReturnNull()); |
| - decoder_database_ = mock_decoder_database_; |
| - } else { |
| - decoder_database_ = new DecoderDatabase; |
| + deps.decoder_database = std::move(mock); |
| } |
| + decoder_database_ = deps.decoder_database.get(); |
| + |
| if (use_mock_delay_peak_detector_) { |
| - mock_delay_peak_detector_ = new MockDelayPeakDetector; |
| + std::unique_ptr<MockDelayPeakDetector> mock(new MockDelayPeakDetector); |
| + mock_delay_peak_detector_ = mock.get(); |
| EXPECT_CALL(*mock_delay_peak_detector_, Reset()).Times(1); |
| - delay_peak_detector_ = mock_delay_peak_detector_; |
| - } else { |
| - delay_peak_detector_ = new DelayPeakDetector; |
| + deps.delay_peak_detector = std::move(mock); |
| } |
| + delay_peak_detector_ = deps.delay_peak_detector.get(); |
| + |
| if (use_mock_delay_manager_) { |
| - mock_delay_manager_ = new MockDelayManager(config_.max_packets_in_buffer, |
| - delay_peak_detector_); |
| + std::unique_ptr<MockDelayManager> mock(new MockDelayManager( |
| + config_.max_packets_in_buffer, delay_peak_detector_)); |
| + mock_delay_manager_ = mock.get(); |
| EXPECT_CALL(*mock_delay_manager_, set_streaming_mode(false)).Times(1); |
| - delay_manager_ = mock_delay_manager_; |
| - } else { |
| - delay_manager_ = |
| - new DelayManager(config_.max_packets_in_buffer, delay_peak_detector_); |
| + deps.delay_manager = std::move(mock); |
| } |
| + delay_manager_ = deps.delay_manager.get(); |
| + |
| if (use_mock_dtmf_buffer_) { |
| - mock_dtmf_buffer_ = new MockDtmfBuffer(config_.sample_rate_hz); |
| - dtmf_buffer_ = mock_dtmf_buffer_; |
| - } else { |
| - dtmf_buffer_ = new DtmfBuffer(config_.sample_rate_hz); |
| + std::unique_ptr<MockDtmfBuffer> mock( |
| + new MockDtmfBuffer(config_.sample_rate_hz)); |
| + mock_dtmf_buffer_ = mock.get(); |
| + deps.dtmf_buffer = std::move(mock); |
| } |
| + dtmf_buffer_ = deps.dtmf_buffer.get(); |
| + |
| if (use_mock_dtmf_tone_generator_) { |
| - mock_dtmf_tone_generator_ = new MockDtmfToneGenerator; |
| - dtmf_tone_generator_ = mock_dtmf_tone_generator_; |
| - } else { |
| - dtmf_tone_generator_ = new DtmfToneGenerator; |
| + std::unique_ptr<MockDtmfToneGenerator> mock(new MockDtmfToneGenerator); |
| + mock_dtmf_tone_generator_ = mock.get(); |
| + deps.dtmf_tone_generator = std::move(mock); |
| } |
| + dtmf_tone_generator_ = deps.dtmf_tone_generator.get(); |
| + |
| if (use_mock_packet_buffer_) { |
| - mock_packet_buffer_ = new MockPacketBuffer(config_.max_packets_in_buffer); |
| - packet_buffer_ = mock_packet_buffer_; |
| - } else { |
| - packet_buffer_ = new PacketBuffer(config_.max_packets_in_buffer); |
| + std::unique_ptr<MockPacketBuffer> mock( |
| + new MockPacketBuffer(config_.max_packets_in_buffer)); |
| + mock_packet_buffer_ = mock.get(); |
| + deps.packet_buffer = std::move(mock); |
| } |
| + packet_buffer_ = deps.packet_buffer.get(); |
| + |
| if (use_mock_payload_splitter_) { |
| - mock_payload_splitter_ = new MockPayloadSplitter; |
| - payload_splitter_ = mock_payload_splitter_; |
| - } else { |
| - payload_splitter_ = new PayloadSplitter; |
| + std::unique_ptr<MockPayloadSplitter> mock(new MockPayloadSplitter); |
| + mock_payload_splitter_ = mock.get(); |
| + deps.payload_splitter = std::move(mock); |
| } |
| - timestamp_scaler_ = new TimestampScaler(*decoder_database_); |
| - AccelerateFactory* accelerate_factory = new AccelerateFactory; |
| - ExpandFactory* expand_factory = new ExpandFactory; |
| - PreemptiveExpandFactory* preemptive_expand_factory = |
| - new PreemptiveExpandFactory; |
| - |
| - neteq_ = new NetEqImpl( |
| - config_, std::unique_ptr<TickTimer>(tick_timer_), buffer_level_filter_, |
| - decoder_database_, delay_manager_, delay_peak_detector_, dtmf_buffer_, |
| - dtmf_tone_generator_, packet_buffer_, payload_splitter_, |
| - timestamp_scaler_, accelerate_factory, expand_factory, |
| - preemptive_expand_factory); |
| + payload_splitter_ = deps.payload_splitter.get(); |
| + |
| + deps.timestamp_scaler = std::unique_ptr<TimestampScaler>( |
| + new TimestampScaler(*deps.decoder_database.get())); |
| + |
| + neteq_.reset(new NetEqImpl(config_, std::move(deps))); |
| ASSERT_TRUE(neteq_ != NULL); |
| } |
| @@ -190,37 +166,35 @@ class NetEqImplTest : public ::testing::Test { |
| if (use_mock_packet_buffer_) { |
| EXPECT_CALL(*mock_packet_buffer_, Die()).Times(1); |
| } |
| - delete neteq_; |
| } |
| - NetEqImpl* neteq_; |
| + std::unique_ptr<NetEqImpl> neteq_; |
| NetEq::Config config_; |
| - TickTimer* tick_timer_; |
| - MockBufferLevelFilter* mock_buffer_level_filter_; |
| - BufferLevelFilter* buffer_level_filter_; |
| - bool use_mock_buffer_level_filter_; |
| - MockDecoderDatabase* mock_decoder_database_; |
| - DecoderDatabase* decoder_database_; |
| - bool use_mock_decoder_database_; |
| - MockDelayPeakDetector* mock_delay_peak_detector_; |
| - DelayPeakDetector* delay_peak_detector_; |
| - bool use_mock_delay_peak_detector_; |
| - MockDelayManager* mock_delay_manager_; |
| - DelayManager* delay_manager_; |
| - bool use_mock_delay_manager_; |
| - MockDtmfBuffer* mock_dtmf_buffer_; |
| - DtmfBuffer* dtmf_buffer_; |
| - bool use_mock_dtmf_buffer_; |
| - MockDtmfToneGenerator* mock_dtmf_tone_generator_; |
| - DtmfToneGenerator* dtmf_tone_generator_; |
| - bool use_mock_dtmf_tone_generator_; |
| - MockPacketBuffer* mock_packet_buffer_; |
| - PacketBuffer* packet_buffer_; |
| - bool use_mock_packet_buffer_; |
| - MockPayloadSplitter* mock_payload_splitter_; |
| - PayloadSplitter* payload_splitter_; |
| - bool use_mock_payload_splitter_; |
| - TimestampScaler* timestamp_scaler_; |
| + TickTimer* tick_timer_ = nullptr; |
| + MockBufferLevelFilter* mock_buffer_level_filter_ = nullptr; |
| + BufferLevelFilter* buffer_level_filter_ = nullptr; |
| + bool use_mock_buffer_level_filter_ = true; |
| + MockDecoderDatabase* mock_decoder_database_ = nullptr; |
| + DecoderDatabase* decoder_database_ = nullptr; |
| + bool use_mock_decoder_database_ = true; |
| + MockDelayPeakDetector* mock_delay_peak_detector_ = nullptr; |
| + DelayPeakDetector* delay_peak_detector_ = nullptr; |
| + bool use_mock_delay_peak_detector_ = true; |
| + MockDelayManager* mock_delay_manager_ = nullptr; |
| + DelayManager* delay_manager_ = nullptr; |
| + bool use_mock_delay_manager_ = true; |
| + MockDtmfBuffer* mock_dtmf_buffer_ = nullptr; |
| + DtmfBuffer* dtmf_buffer_ = nullptr; |
| + bool use_mock_dtmf_buffer_ = true; |
| + MockDtmfToneGenerator* mock_dtmf_tone_generator_ = nullptr; |
| + DtmfToneGenerator* dtmf_tone_generator_ = nullptr; |
| + bool use_mock_dtmf_tone_generator_ = true; |
| + MockPacketBuffer* mock_packet_buffer_ = nullptr; |
| + PacketBuffer* packet_buffer_ = nullptr; |
| + bool use_mock_packet_buffer_ = true; |
| + MockPayloadSplitter* mock_payload_splitter_ = nullptr; |
| + PayloadSplitter* payload_splitter_ = nullptr; |
| + bool use_mock_payload_splitter_ = true; |
| }; |