#include "chrome/browser/ui/views/media_preview/mic_preview/mic_coordinator.h"
#include <memory>
#include <optional>
#include <string>
#include <vector>
#include "base/functional/callback_forward.h"
#include "base/run_loop.h"
#include "base/test/metrics/histogram_tester.h"
#include "base/test/test_future.h"
#include "chrome/browser/media/prefs/capture_device_ranking.h"
#include "chrome/browser/ui/views/frame/test_with_browser_view.h"
#include "chrome/grit/generated_resources.h"
#include "components/media_effects/test/fake_audio_service.h"
#include "components/media_effects/test/fake_video_capture_service.h"
#include "components/media_effects/test/scoped_media_device_info.h"
#include "content/public/browser/audio_service.h"
#include "media/audio/audio_device_description.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/base/l10n/l10n_util.h"
_;
ElementsAre;
namespace {
constexpr char kNumDevicesHistogram[] = …;
constexpr char kDeviceId[] = …;
constexpr char kDeviceName[] = …;
constexpr char kGroupId[] = …;
constexpr char kDeviceId2[] = …;
constexpr char kDeviceName2[] = …;
constexpr char kGroupId2[] = …;
media_preview_metrics::Context GetMetricsContext() { … }
}
class MicCoordinatorTest : public TestWithBrowserView { … };
TEST_F(MicCoordinatorTest, RelevantAudioInputDeviceInfoExtraction) { … }
TEST_F(MicCoordinatorTest,
RelevantAudioInputDeviceInfoExtraction_ConstrainedToEligibleDevices) { … }
TEST_F(MicCoordinatorTest, ConnectToDifferentDevice) { … }
TEST_F(MicCoordinatorTest, TryConnectToSameDevice) { … }
TEST_F(MicCoordinatorTest, DefaultMicHandling) { … }
TEST_F(MicCoordinatorTest, CommunicationsMicHandling) { … }
TEST_F(MicCoordinatorTest, UpdateDevicePreferenceRanking) { … }
TEST_F(MicCoordinatorTest, ConnectDevicesBeforeCoordinatorInitialize) { … }