Upstream version 8.37.180.0
[platform/framework/web/crosswalk.git] / src / media / video / capture / mac / video_capture_device_factory_mac_unittest.mm
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/command_line.h"
6 #include "base/message_loop/message_loop_proxy.h"
7 #include "media/base/media_switches.h"
8 #import "media/video/capture/mac/avfoundation_glue.h"
9 #include "media/video/capture/mac/video_capture_device_factory_mac.h"
10 #include "media/video/capture/mac/video_capture_device_mac.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 namespace media {
14
15 class VideoCaptureDeviceFactoryMacTest : public testing::Test {
16   virtual void SetUp() {
17     CommandLine::ForCurrentProcess()->AppendSwitch(
18         switches::kEnableAVFoundation);
19   }
20 };
21
22 TEST_F(VideoCaptureDeviceFactoryMacTest, ListDevicesAVFoundation) {
23   if (!AVFoundationGlue::IsAVFoundationSupported()) {
24     DVLOG(1) << "AVFoundation not supported, skipping test.";
25     return;
26   }
27   VideoCaptureDeviceFactoryMac video_capture_device_factory(
28       base::MessageLoopProxy::current());
29
30   VideoCaptureDevice::Names names;
31   video_capture_device_factory.GetDeviceNames(&names);
32   if (!names.size()) {
33     DVLOG(1) << "No camera available. Exiting test.";
34     return;
35   }
36   // There should be no blacklisted devices, i.e. QTKit.
37   std::string device_vid;
38   for (VideoCaptureDevice::Names::const_iterator it = names.begin();
39       it != names.end(); ++it) {
40     EXPECT_EQ(it->capture_api_type(), VideoCaptureDevice::Name::AVFOUNDATION);
41   }
42 }
43
44 };  // namespace media