Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(572)

Side by Side Diff: webrtc/media/webrtc/webrtcvideocapturer_unittest.cc

Issue 1684163002: Rename webrtc/media/webrtc -> webrtc/media/engine (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebase f396f6085f9e4f16f37471a7828e3e31308c0d52 #11590 Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 #ifdef HAVE_WEBRTC_VIDEO
12
13 #include <stdio.h>
14 #include <vector>
15 #include "webrtc/base/gunit.h"
16 #include "webrtc/base/logging.h"
17 #include "webrtc/base/stringutils.h"
18 #include "webrtc/base/thread.h"
19 #include "webrtc/media/base/testutils.h"
20 #include "webrtc/media/base/videocommon.h"
21 #include "webrtc/media/webrtc/fakewebrtcvcmfactory.h"
22 #include "webrtc/media/webrtc/webrtcvideocapturer.h"
23
24 using cricket::VideoFormat;
25
26 static const std::string kTestDeviceName = "JuberTech FakeCam Q123";
27 static const std::string kTestDeviceId = "foo://bar/baz";
28 const VideoFormat kDefaultVideoFormat =
29 VideoFormat(640, 400, VideoFormat::FpsToInterval(30), cricket::FOURCC_ANY);
30
31 class WebRtcVideoCapturerTest : public testing::Test {
32 public:
33 WebRtcVideoCapturerTest()
34 : factory_(new FakeWebRtcVcmFactory),
35 capturer_(new cricket::WebRtcVideoCapturer(factory_)),
36 listener_(capturer_.get()) {
37 factory_->device_info.AddDevice(kTestDeviceName, kTestDeviceId);
38 // add a VGA/I420 capability
39 webrtc::VideoCaptureCapability vga;
40 vga.width = 640;
41 vga.height = 480;
42 vga.maxFPS = 30;
43 vga.rawType = webrtc::kVideoI420;
44 factory_->device_info.AddCapability(kTestDeviceId, vga);
45 }
46
47 protected:
48 FakeWebRtcVcmFactory* factory_; // owned by capturer_
49 rtc::scoped_ptr<cricket::WebRtcVideoCapturer> capturer_;
50 cricket::VideoCapturerListener listener_;
51 };
52
53 TEST_F(WebRtcVideoCapturerTest, TestNotOpened) {
54 EXPECT_EQ("", capturer_->GetId());
55 EXPECT_TRUE(capturer_->GetSupportedFormats()->empty());
56 EXPECT_TRUE(capturer_->GetCaptureFormat() == NULL);
57 EXPECT_FALSE(capturer_->IsRunning());
58 }
59
60 TEST_F(WebRtcVideoCapturerTest, TestBadInit) {
61 EXPECT_FALSE(capturer_->Init(cricket::Device("bad-name", "bad-id")));
62 EXPECT_FALSE(capturer_->IsRunning());
63 }
64
65 TEST_F(WebRtcVideoCapturerTest, TestInit) {
66 EXPECT_TRUE(capturer_->Init(cricket::Device(kTestDeviceName, kTestDeviceId)));
67 EXPECT_EQ(kTestDeviceId, capturer_->GetId());
68 EXPECT_TRUE(NULL != capturer_->GetSupportedFormats());
69 ASSERT_EQ(1U, capturer_->GetSupportedFormats()->size());
70 EXPECT_EQ(640, (*capturer_->GetSupportedFormats())[0].width);
71 EXPECT_EQ(480, (*capturer_->GetSupportedFormats())[0].height);
72 EXPECT_TRUE(capturer_->GetCaptureFormat() == NULL); // not started yet
73 EXPECT_FALSE(capturer_->IsRunning());
74 }
75
76 TEST_F(WebRtcVideoCapturerTest, TestInitVcm) {
77 EXPECT_TRUE(capturer_->Init(factory_->Create(0,
78 reinterpret_cast<const char*>(kTestDeviceId.c_str()))));
79 }
80
81 TEST_F(WebRtcVideoCapturerTest, TestCapture) {
82 EXPECT_TRUE(capturer_->Init(cricket::Device(kTestDeviceName, kTestDeviceId)));
83 cricket::VideoFormat format(
84 capturer_->GetSupportedFormats()->at(0));
85 EXPECT_EQ(cricket::CS_STARTING, capturer_->Start(format));
86 EXPECT_TRUE(capturer_->IsRunning());
87 ASSERT_TRUE(capturer_->GetCaptureFormat() != NULL);
88 EXPECT_EQ(format, *capturer_->GetCaptureFormat());
89 EXPECT_EQ_WAIT(cricket::CS_RUNNING, listener_.last_capture_state(), 1000);
90 EXPECT_TRUE(factory_->modules[0]->SendFrame(640, 480));
91 EXPECT_TRUE_WAIT(listener_.frame_count() > 0, 5000);
92 EXPECT_EQ(capturer_->GetCaptureFormat()->fourcc, listener_.frame_fourcc());
93 EXPECT_EQ(640, listener_.frame_width());
94 EXPECT_EQ(480, listener_.frame_height());
95 EXPECT_EQ(cricket::CS_FAILED, capturer_->Start(format));
96 capturer_->Stop();
97 EXPECT_FALSE(capturer_->IsRunning());
98 EXPECT_TRUE(capturer_->GetCaptureFormat() == NULL);
99 EXPECT_EQ_WAIT(cricket::CS_STOPPED, listener_.last_capture_state(), 1000);
100 }
101
102 TEST_F(WebRtcVideoCapturerTest, TestCaptureVcm) {
103 EXPECT_TRUE(capturer_->Init(factory_->Create(0,
104 reinterpret_cast<const char*>(kTestDeviceId.c_str()))));
105 EXPECT_TRUE(capturer_->GetSupportedFormats()->empty());
106 VideoFormat format;
107 EXPECT_TRUE(capturer_->GetBestCaptureFormat(kDefaultVideoFormat, &format));
108 EXPECT_EQ(kDefaultVideoFormat.width, format.width);
109 EXPECT_EQ(kDefaultVideoFormat.height, format.height);
110 EXPECT_EQ(kDefaultVideoFormat.interval, format.interval);
111 EXPECT_EQ(cricket::FOURCC_I420, format.fourcc);
112 EXPECT_EQ(cricket::CS_STARTING, capturer_->Start(format));
113 EXPECT_TRUE(capturer_->IsRunning());
114 ASSERT_TRUE(capturer_->GetCaptureFormat() != NULL);
115 EXPECT_EQ(format, *capturer_->GetCaptureFormat());
116 EXPECT_EQ_WAIT(cricket::CS_RUNNING, listener_.last_capture_state(), 1000);
117 EXPECT_TRUE(factory_->modules[0]->SendFrame(640, 480));
118 EXPECT_TRUE_WAIT(listener_.frame_count() > 0, 5000);
119 EXPECT_EQ(capturer_->GetCaptureFormat()->fourcc, listener_.frame_fourcc());
120 EXPECT_EQ(640, listener_.frame_width());
121 EXPECT_EQ(480, listener_.frame_height());
122 EXPECT_EQ(cricket::CS_FAILED, capturer_->Start(format));
123 capturer_->Stop();
124 EXPECT_FALSE(capturer_->IsRunning());
125 EXPECT_TRUE(capturer_->GetCaptureFormat() == NULL);
126 }
127
128 TEST_F(WebRtcVideoCapturerTest, TestCaptureWithoutInit) {
129 cricket::VideoFormat format;
130 EXPECT_EQ(cricket::CS_NO_DEVICE, capturer_->Start(format));
131 EXPECT_TRUE(capturer_->GetCaptureFormat() == NULL);
132 EXPECT_FALSE(capturer_->IsRunning());
133 }
134
135 #endif // HAVE_WEBRTC_VIDEO
OLDNEW
« no previous file with comments | « webrtc/media/webrtc/webrtcvideocapturer.cc ('k') | webrtc/media/webrtc/webrtcvideocapturerfactory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698