#include "content/browser/media/audio_input_stream_broker.h"
#include <memory>
#include <utility>
#include "base/memory/raw_ptr.h"
#include "base/sync_socket.h"
#include "base/test/bind.h"
#include "base/test/mock_callback.h"
#include "content/public/test/browser_task_environment.h"
#include "media/mojo/mojom/audio_input_stream.mojom.h"
#include "media/mojo/mojom/audio_processing.mojom.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/audio/public/cpp/fake_stream_factory.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/abseil-cpp/absl/utility/utility.h"
InSequence;
Mock;
StrictMock;
Test;
namespace content {
namespace {
const int kRenderProcessId = …;
const int kRenderFrameId = …;
const uint32_t kShMemCount = …;
const bool kEnableAgc = …;
const char kDeviceId[] = …;
const bool kInitiallyMuted = …;
media::AudioParameters TestParams() { … }
MockDeleterCallback;
class MockRendererAudioInputStreamFactoryClient
: public blink::mojom::RendererAudioInputStreamFactoryClient { … };
class MockStreamFactory final : public audio::FakeStreamFactory { … };
struct TestEnvironment { … };
void ExpectRendererFactoryClientDisconnection(
TestEnvironment& env,
media::mojom::InputStreamErrorCode expected_error) { … }
}
TEST(AudioInputStreamBrokerTest, StoresProcessAndFrameId) { … }
TEST(AudioInputStreamBrokerTest, StreamCreationSuccess_Propagates) { … }
TEST(AudioInputStreamBrokerTest, StreamCreationFailure_CallsDeleter) { … }
TEST(AudioInputStreamBrokerTest, RendererFactoryClientDisconnect_CallsDeleter) { … }
TEST(AudioInputStreamBrokerTest, ObserverDisconnect_CallsDeleter) { … }
TEST(AudioInputStreamBrokerTest, ObserverDisconnect_PropagateError) { … }
TEST(AudioInputStreamBrokerTest, ObserverDisconnect_PropagatePermissionsError) { … }
TEST(AudioInputStreamBrokerTest,
FactoryDisconnectDuringConstruction_CallsDeleter) { … }
}