#include "third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source.h"
#include <utility>
#include "base/functional/bind.h"
#include "base/memory/ptr_util.h"
#include "base/memory/raw_ptr.h"
#include "base/run_loop.h"
#include "base/task/bind_post_task.h"
#include "base/test/mock_callback.h"
#include "base/time/time.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/mojom/mediastream/media_stream.mojom-blink.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/public/platform/scheduler/test/renderer_scheduler_test_support.h"
#include "third_party/blink/public/web/modules/mediastream/media_stream_video_sink.h"
#include "third_party/blink/public/web/web_heap.h"
#include "third_party/blink/renderer/core/dom/dom_exception.h"
#include "third_party/blink/renderer/modules/mediastream/media_stream_video_track.h"
#include "third_party/blink/renderer/modules/mediastream/mock_mojo_media_stream_dispatcher_host.h"
#include "third_party/blink/renderer/modules/mediastream/mock_video_capturer_source.h"
#include "third_party/blink/renderer/modules/mediastream/video_track_adapter_settings.h"
#include "third_party/blink/renderer/platform/mediastream/media_stream_source.h"
#include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
#include "third_party/blink/renderer/platform/testing/io_task_runner_testing_platform_support.h"
#include "third_party/blink/renderer/platform/testing/task_environment.h"
#include "third_party/blink/renderer/platform/video_capture/video_capturer_source.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_copier_media.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
_;
InSequence;
Return;
namespace blink {
MediaStreamRequestResult;
namespace {
MATCHER_P2(IsExpectedDOMException, name, message, "") { … }
class FakeMediaStreamVideoSink : public MediaStreamVideoSink { … };
}
class MediaStreamVideoCapturerSourceTest : public testing::Test { … };
TEST_F(MediaStreamVideoCapturerSourceTest, StartAndStop) { … }
TEST_F(MediaStreamVideoCapturerSourceTest, CaptureTimeAndMetadataPlumbing) { … }
TEST_F(MediaStreamVideoCapturerSourceTest, Restart) { … }
TEST_F(MediaStreamVideoCapturerSourceTest, StartStopAndNotify) { … }
TEST_F(MediaStreamVideoCapturerSourceTest, ChangeSource) { … }
TEST_F(MediaStreamVideoCapturerSourceTest, FailStartSystemPermission) { … }
TEST_F(MediaStreamVideoCapturerSourceTest, FailStartCamInUse) { … }
}