| Index: components/copresence/handlers/audio/audio_directive_handler_unittest.cc
|
| diff --git a/components/copresence/handlers/audio/audio_directive_handler_unittest.cc b/components/copresence/handlers/audio/audio_directive_handler_unittest.cc
|
| deleted file mode 100644
|
| index d0de08affda90e07b18cb5822fea0eaa7b5e92e3..0000000000000000000000000000000000000000
|
| --- a/components/copresence/handlers/audio/audio_directive_handler_unittest.cc
|
| +++ /dev/null
|
| @@ -1,179 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include <stdint.h>
|
| -
|
| -#include <memory>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/macros.h"
|
| -#include "base/memory/ptr_util.h"
|
| -#include "base/message_loop/message_loop.h"
|
| -#include "base/test/simple_test_tick_clock.h"
|
| -#include "base/timer/mock_timer.h"
|
| -#include "components/audio_modem/public/modem.h"
|
| -#include "components/audio_modem/test/random_samples.h"
|
| -#include "components/audio_modem/test/stub_modem.h"
|
| -#include "components/copresence/handlers/audio/audio_directive_handler_impl.h"
|
| -#include "components/copresence/handlers/audio/tick_clock_ref_counted.h"
|
| -#include "components/copresence/proto/data.pb.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -using audio_modem::AUDIBLE;
|
| -using audio_modem::AudioType;
|
| -using audio_modem::INAUDIBLE;
|
| -using audio_modem::StubModem;
|
| -
|
| -namespace copresence {
|
| -
|
| -namespace {
|
| -
|
| -const Directive CreateDirective(TokenInstructionType type,
|
| - bool audible,
|
| - int64_t ttl) {
|
| - Directive directive;
|
| - directive.mutable_token_instruction()->set_token_instruction_type(type);
|
| - directive.mutable_token_instruction()->set_token_id("token");
|
| - directive.mutable_token_instruction()->set_medium(audible ?
|
| - AUDIO_AUDIBLE_DTMF : AUDIO_ULTRASOUND_PASSBAND);
|
| - directive.set_ttl_millis(ttl);
|
| - return directive;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -class AudioDirectiveHandlerTest : public testing::Test {
|
| - public:
|
| - AudioDirectiveHandlerTest() {
|
| - modem_ptr_ = new StubModem;
|
| - timer_ptr_ = new base::MockTimer(false, false);
|
| - clock_ptr_ = new base::SimpleTestTickClock;
|
| -
|
| - directive_handler_.reset(new AudioDirectiveHandlerImpl(
|
| - base::Bind(&AudioDirectiveHandlerTest::GetDirectiveUpdates,
|
| - base::Unretained(this)),
|
| - base::WrapUnique<audio_modem::Modem>(modem_ptr_),
|
| - base::WrapUnique<base::Timer>(timer_ptr_),
|
| - make_scoped_refptr(new TickClockRefCounted(clock_ptr_))));
|
| - directive_handler_->Initialize(nullptr, audio_modem::TokensCallback());
|
| - }
|
| - ~AudioDirectiveHandlerTest() override {}
|
| -
|
| - protected:
|
| - const std::vector<Directive>& current_directives() {
|
| - return current_directives_;
|
| - }
|
| -
|
| - bool IsPlaying(AudioType type) { return modem_ptr_->IsPlaying(type); }
|
| -
|
| - bool IsRecording(AudioType type) { return modem_ptr_->IsRecording(type); }
|
| -
|
| - // This order is important. We want the message loop to get created before
|
| - // our the audio directive handler since the directive list ctor (invoked
|
| - // from the directive handler ctor) will post tasks.
|
| - base::MessageLoop message_loop_;
|
| - std::unique_ptr<AudioDirectiveHandler> directive_handler_;
|
| -
|
| - std::vector<Directive> current_directives_;
|
| -
|
| - // Unowned.
|
| - StubModem* modem_ptr_;
|
| - base::MockTimer* timer_ptr_;
|
| - base::SimpleTestTickClock* clock_ptr_;
|
| -
|
| - private:
|
| - void GetDirectiveUpdates(const std::vector<Directive>& current_directives) {
|
| - current_directives_ = current_directives;
|
| - }
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(AudioDirectiveHandlerTest);
|
| -};
|
| -
|
| -TEST_F(AudioDirectiveHandlerTest, Basic) {
|
| - const int64_t kTtl = 10;
|
| - directive_handler_->AddInstruction(CreateDirective(TRANSMIT, true, kTtl),
|
| - "op_id1");
|
| - directive_handler_->AddInstruction(CreateDirective(TRANSMIT, false, kTtl),
|
| - "op_id1");
|
| - directive_handler_->AddInstruction(CreateDirective(TRANSMIT, false, kTtl),
|
| - "op_id2");
|
| - directive_handler_->AddInstruction(CreateDirective(RECEIVE, false, kTtl),
|
| - "op_id1");
|
| - directive_handler_->AddInstruction(CreateDirective(RECEIVE, true, kTtl),
|
| - "op_id2");
|
| - directive_handler_->AddInstruction(CreateDirective(RECEIVE, false, kTtl),
|
| - "op_id3");
|
| -
|
| - EXPECT_TRUE(IsPlaying(AUDIBLE));
|
| - EXPECT_TRUE(IsPlaying(INAUDIBLE));
|
| - EXPECT_TRUE(IsRecording(AUDIBLE));
|
| - EXPECT_TRUE(IsRecording(INAUDIBLE));
|
| -
|
| - directive_handler_->RemoveInstructions("op_id1");
|
| - EXPECT_FALSE(IsPlaying(AUDIBLE));
|
| - EXPECT_TRUE(IsPlaying(INAUDIBLE));
|
| - EXPECT_TRUE(IsRecording(AUDIBLE));
|
| - EXPECT_TRUE(IsRecording(INAUDIBLE));
|
| -
|
| - directive_handler_->RemoveInstructions("op_id2");
|
| - EXPECT_FALSE(IsPlaying(INAUDIBLE));
|
| - EXPECT_FALSE(IsRecording(AUDIBLE));
|
| - EXPECT_TRUE(IsRecording(INAUDIBLE));
|
| -
|
| - directive_handler_->RemoveInstructions("op_id3");
|
| - EXPECT_FALSE(IsRecording(INAUDIBLE));
|
| -}
|
| -
|
| -TEST_F(AudioDirectiveHandlerTest, Timed) {
|
| - directive_handler_->AddInstruction(CreateDirective(TRANSMIT, true, 6),
|
| - "op_id1");
|
| - directive_handler_->AddInstruction(CreateDirective(TRANSMIT, false, 8),
|
| - "op_id1");
|
| - directive_handler_->AddInstruction(CreateDirective(RECEIVE, false, 4),
|
| - "op_id3");
|
| -
|
| - EXPECT_TRUE(IsPlaying(AUDIBLE));
|
| - EXPECT_TRUE(IsPlaying(INAUDIBLE));
|
| - EXPECT_FALSE(IsRecording(AUDIBLE));
|
| - EXPECT_TRUE(IsRecording(INAUDIBLE));
|
| -
|
| - // Every time we advance and a directive expires, the timer should fire also.
|
| - clock_ptr_->Advance(base::TimeDelta::FromMilliseconds(5));
|
| - timer_ptr_->Fire();
|
| -
|
| - // We are now at +5ms. This instruction expires at +10ms.
|
| - directive_handler_->AddInstruction(CreateDirective(RECEIVE, true, 5),
|
| - "op_id4");
|
| - EXPECT_TRUE(IsPlaying(AUDIBLE));
|
| - EXPECT_TRUE(IsPlaying(INAUDIBLE));
|
| - EXPECT_TRUE(IsRecording(AUDIBLE));
|
| - EXPECT_FALSE(IsRecording(INAUDIBLE));
|
| -
|
| - // Advance to +7ms.
|
| - const base::TimeDelta twoMs = base::TimeDelta::FromMilliseconds(2);
|
| - clock_ptr_->Advance(twoMs);
|
| - timer_ptr_->Fire();
|
| -
|
| - EXPECT_FALSE(IsPlaying(AUDIBLE));
|
| - EXPECT_TRUE(IsPlaying(INAUDIBLE));
|
| - EXPECT_TRUE(IsRecording(AUDIBLE));
|
| -
|
| - // Advance to +9ms.
|
| - clock_ptr_->Advance(twoMs);
|
| - timer_ptr_->Fire();
|
| - EXPECT_FALSE(IsPlaying(INAUDIBLE));
|
| - EXPECT_TRUE(IsRecording(AUDIBLE));
|
| -
|
| - // Advance to +11ms.
|
| - clock_ptr_->Advance(twoMs);
|
| - timer_ptr_->Fire();
|
| - EXPECT_FALSE(IsRecording(AUDIBLE));
|
| -}
|
| -
|
| -// TODO(rkc): Write more tests that check more convoluted sequences of
|
| -// transmits/receives.
|
| -
|
| -} // namespace copresence
|
|
|