#include "base/command_line.h"
#include "base/strings/stringprintf.h"
#include "base/test/scoped_feature_list.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/video_capture_service.h"
#include "content/public/common/content_features.h"
#include "content/public/common/content_switches.h"
#include "content/public/test/browser_test.h"
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/content_browser_test.h"
#include "content/public/test/content_browser_test_utils.h"
#include "content/shell/browser/shell.h"
#include "media/base/media_switches.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
#include "services/video_capture/public/cpp/mock_producer.h"
#include "services/video_capture/public/mojom/devices_changed_observer.mojom.h"
#include "services/video_capture/public/mojom/producer.mojom.h"
#include "services/video_capture/public/mojom/video_capture_service.mojom.h"
#include "services/video_capture/public/mojom/video_source_provider.mojom.h"
#include "services/video_capture/public/mojom/virtual_device.mojom.h"
namespace content {
namespace {
enum class VirtualDeviceType { … };
struct TestParams { … };
static const char kVideoCaptureHtmlFile[] = …;
static const char kEnumerateVideoCaptureDevicesAndVerify[] = …;
static const char kRegisterForDeviceChangeEvent[] = …;
static const char kWaitForDeviceChangeEvent[] = …;
static const char kResetHasReceivedChangedEventFlag[] = …;
}
class WebRtcVideoCaptureServiceEnumerationBrowserTest
: public ContentBrowserTest,
public testing::WithParamInterface<TestParams>,
public video_capture::mojom::DevicesChangedObserver { … };
IN_PROC_BROWSER_TEST_P(WebRtcVideoCaptureServiceEnumerationBrowserTest,
SingleAddedVirtualDeviceGetsEnumerated) { … }
#if BUILDFLAG(IS_MAC)
#define MAYBE_RemoveVirtualDeviceAfterItHasBeenEnumerated …
#else
#define MAYBE_RemoveVirtualDeviceAfterItHasBeenEnumerated …
#endif
IN_PROC_BROWSER_TEST_P(WebRtcVideoCaptureServiceEnumerationBrowserTest,
MAYBE_RemoveVirtualDeviceAfterItHasBeenEnumerated) { … }
#if BUILDFLAG(IS_ANDROID)
#define MAYBE_AddingAndRemovingVirtualDeviceTriggersMediaElementOnDeviceChange …
#else
#define MAYBE_AddingAndRemovingVirtualDeviceTriggersMediaElementOnDeviceChange …
#endif
IN_PROC_BROWSER_TEST_P(
WebRtcVideoCaptureServiceEnumerationBrowserTest,
MAYBE_AddingAndRemovingVirtualDeviceTriggersMediaElementOnDeviceChange) { … }
INSTANTIATE_TEST_SUITE_P(…);
}