#include "content/browser/media/audio_output_stream_broker.h"
#include <memory>
#include <utility>
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/memory/raw_ptr.h"
#include "base/sync_socket.h"
#include "base/test/mock_callback.h"
#include "base/test/task_environment.h"
#include "base/unguessable_token.h"
#include "content/public/test/browser_task_environment.h"
#include "media/base/audio_parameters.h"
#include "media/mojo/mojom/audio_data_pipe.mojom.h"
#include "media/mojo/mojom/audio_output_stream.mojom.h"
#include "mojo/public/cpp/bindings/pending_associated_remote.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/system/buffer.h"
#include "mojo/public/cpp/system/platform_handle.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"
Test;
Mock;
StrictMock;
InSequence;
namespace content {
namespace {
const int kRenderProcessId = …;
const int kRenderFrameId = …;
const int kStreamId = …;
const size_t kShMemSize = …;
const char kDeviceId[] = …;
media::AudioParameters TestParams() { … }
MockDeleterCallback;
class MockAudioOutputStreamProviderClient
: public media::mojom::AudioOutputStreamProviderClient { … };
class MockStreamFactory final : public audio::FakeStreamFactory { … };
struct TestEnvironment { … };
}
TEST(AudioOutputStreamBrokerTest, StoresProcessAndFrameId) { … }
TEST(AudioOutputStreamBrokerTest, ClientDisconnect_CallsDeleter) { … }
TEST(AudioOutputStreamBrokerTest, StreamCreationSuccess_Propagates) { … }
TEST(AudioOutputStreamBrokerTest,
StreamCreationFailure_PropagatesErrorAndCallsDeleter) { … }
TEST(AudioOutputStreamBrokerTest,
ObserverDisconnect_PropagatesErrorAndCallsDeleter) { … }
TEST(AudioOutputStreamBrokerTest,
FactoryDisconnectDuringConstruction_PropagatesErrorAndCallsDeleter) { … }
}