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

Unified Diff: content/renderer/media/video_capture_impl_manager_unittest.cc

Issue 120893002: Eliminate video capture thread in renderer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: upload again Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/video_capture_impl_manager_unittest.cc
diff --git a/content/renderer/media/video_capture_impl_manager_unittest.cc b/content/renderer/media/video_capture_impl_manager_unittest.cc
index 33b9935d8c5ffe4c7ad24fe5530d5f1c972f452b..98f2b5645e773fa0c6263384c6189343d6062156 100644
--- a/content/renderer/media/video_capture_impl_manager_unittest.cc
+++ b/content/renderer/media/video_capture_impl_manager_unittest.cc
@@ -3,6 +3,7 @@
// found in the LICENSE file.
#include "base/bind.h"
+#include "base/callback.h"
#include "base/memory/ref_counted.h"
#include "base/message_loop/message_loop.h"
#include "base/run_loop.h"
@@ -30,38 +31,48 @@ ACTION_P(RunClosure, closure) {
class MockVideoCaptureImpl : public VideoCaptureImpl {
public:
MockVideoCaptureImpl(media::VideoCaptureSessionId session_id,
- VideoCaptureMessageFilter* filter)
- : VideoCaptureImpl(session_id, filter) {
+ VideoCaptureMessageFilter* filter,
+ base::Closure destruct_callback)
+ : VideoCaptureImpl(session_id, filter),
+ destruct_callback_(destruct_callback) {
}
virtual ~MockVideoCaptureImpl() {
- Destruct();
+ destruct_callback_.Run();
}
- MOCK_METHOD0(Destruct, void());
-
private:
+ base::Closure destruct_callback_;
+
DISALLOW_COPY_AND_ASSIGN(MockVideoCaptureImpl);
};
class MockVideoCaptureImplManager : public VideoCaptureImplManager {
public:
- MockVideoCaptureImplManager() {}
+ explicit MockVideoCaptureImplManager(
+ base::Closure destruct_video_capture_callback)
+ : destruct_video_capture_callback_(
+ destruct_video_capture_callback) {}
protected:
virtual VideoCaptureImpl* CreateVideoCaptureImpl(
media::VideoCaptureSessionId id,
VideoCaptureMessageFilter* filter) const OVERRIDE {
- return new MockVideoCaptureImpl(id, filter);
+ return new MockVideoCaptureImpl(id,
+ filter,
+ destruct_video_capture_callback_);
}
private:
+ base::Closure destruct_video_capture_callback_;
+
DISALLOW_COPY_AND_ASSIGN(MockVideoCaptureImplManager);
};
class VideoCaptureImplManagerTest : public ::testing::Test {
public:
- VideoCaptureImplManagerTest() {
+ VideoCaptureImplManagerTest()
+ : manager_(BindToCurrentLoop(cleanup_run_loop_.QuitClosure())) {
params_.requested_format = media::VideoCaptureFormat(
gfx::Size(176, 144), 30, media::PIXEL_FORMAT_I420);
child_process_.reset(new ChildProcess());
@@ -81,14 +92,11 @@ class VideoCaptureImplManagerTest : public ::testing::Test {
manager_.video_capture_message_filter()->OnFilterAdded(NULL);
}
- void Quit(base::RunLoop* run_loop) {
- message_loop_.PostTask(FROM_HERE, run_loop->QuitClosure());
- }
-
protected:
base::MessageLoop message_loop_;
scoped_ptr<ChildProcess> child_process_;
media::VideoCaptureParams params_;
+ base::RunLoop cleanup_run_loop_;
MockVideoCaptureImplManager manager_;
private:
@@ -140,9 +148,11 @@ TEST_F(VideoCaptureImplManagerTest, MultipleClients) {
handle2->StopCapture(client2.get());
run_loop.Run();
}
-
EXPECT_TRUE(device1 == device2);
- EXPECT_CALL(*static_cast<MockVideoCaptureImpl*>(device1), Destruct());
+
+ handle1.reset();
+ handle2.reset();
+ cleanup_run_loop_.Run();
}
} // namespace content
« no previous file with comments | « content/renderer/media/video_capture_impl_manager.cc ('k') | content/renderer/media/video_capture_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698