blob: c80cf802e033ef1f0fa2b1854b928d37532fec13 [file] [log] [blame]
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/webrtc/media_stream_devices_util.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
TEST(MediaStreamDevicesUtilTest, EmptyDevicesList) {
auto filtered_devices = webrtc::FilterMediaDevices({}, {"id1", "id2"});
blink::MediaStreamDevices expected_devices;
EXPECT_EQ(expected_devices, filtered_devices);
}
TEST(MediaStreamDevicesUtilTest, NoOverlap) {
blink::MediaStreamDevices devices = {{
blink::mojom::MediaStreamType::DEVICE_AUDIO_CAPTURE,
"id1",
"name 1",
}};
auto filtered_devices = webrtc::FilterMediaDevices(devices, {"id2", "id3"});
blink::MediaStreamDevices expected_devices;
EXPECT_EQ(expected_devices, filtered_devices);
}
TEST(MediaStreamDevicesUtilTest, OverlappingDevicesReturned) {
blink::MediaStreamDevices devices = {
{
blink::mojom::MediaStreamType::DEVICE_VIDEO_CAPTURE,
"id1",
"name 1",
},
{
blink::mojom::MediaStreamType::DEVICE_VIDEO_CAPTURE,
"id2",
"name 2",
},
{
blink::mojom::MediaStreamType::DEVICE_VIDEO_CAPTURE,
"id3",
"name 3",
}};
auto filtered_devices = webrtc::FilterMediaDevices(devices, {"id3", "id2"});
blink::MediaStreamDevices expected_devices = {devices[1], devices[2]};
EXPECT_EQ(expected_devices, filtered_devices);
}