diff options
Diffstat (limited to 'chromium/media/capture/video/mac/video_capture_device_factory_mac_unittest.mm')
-rw-r--r-- | chromium/media/capture/video/mac/video_capture_device_factory_mac_unittest.mm | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/chromium/media/capture/video/mac/video_capture_device_factory_mac_unittest.mm b/chromium/media/capture/video/mac/video_capture_device_factory_mac_unittest.mm new file mode 100644 index 00000000000..6b8500d7bba --- /dev/null +++ b/chromium/media/capture/video/mac/video_capture_device_factory_mac_unittest.mm @@ -0,0 +1,49 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/command_line.h" +#include "base/message_loop/message_loop.h" +#include "base/thread_task_runner_handle.h" +#import "media/base/mac/avfoundation_glue.h" +#include "media/base/media_switches.h" +#include "media/capture/video/mac/video_capture_device_factory_mac.h" +#include "media/capture/video/mac/video_capture_device_mac.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace media { + +class VideoCaptureDeviceFactoryMacTest : public testing::Test { + void SetUp() override { + AVFoundationGlue::InitializeAVFoundation(); + base::CommandLine::ForCurrentProcess()->AppendSwitch( + switches::kEnableAVFoundation); + } + + private: + base::MessageLoop message_loop_; +}; + +TEST_F(VideoCaptureDeviceFactoryMacTest, ListDevicesAVFoundation) { + if (!AVFoundationGlue::IsAVFoundationSupported()) { + DVLOG(1) << "AVFoundation not supported, skipping test."; + return; + } + VideoCaptureDeviceFactoryMac video_capture_device_factory( + base::ThreadTaskRunnerHandle::Get()); + + VideoCaptureDevice::Names names; + video_capture_device_factory.GetDeviceNames(&names); + if (!names.size()) { + DVLOG(1) << "No camera available. Exiting test."; + return; + } + // There should be no blacklisted devices, i.e. QTKit. + std::string device_vid; + for (VideoCaptureDevice::Names::const_iterator it = names.begin(); + it != names.end(); ++it) { + EXPECT_EQ(it->capture_api_type(), VideoCaptureDevice::Name::AVFOUNDATION); + } +} + +}; // namespace media |