Index: media/base/mock_callback.cc |
diff --git a/media/base/mock_callback.cc b/media/base/mock_callback.cc |
index e9d2da356b14c1076697401e1817ecb6a7396c01..522259df79cf22166a7bbc7447e4bcb1acb3a35b 100644 |
--- a/media/base/mock_callback.cc |
+++ b/media/base/mock_callback.cc |
@@ -5,6 +5,7 @@ |
#include "media/base/mock_callback.h" |
#include "base/bind.h" |
+#include "base/message_loop.h" |
using ::testing::_; |
using ::testing::StrictMock; |
@@ -33,11 +34,25 @@ class MockStatusCB : public base::RefCountedThreadSafe<MockStatusCB> { |
DISALLOW_COPY_AND_ASSIGN(MockStatusCB); |
}; |
-base::Callback<void(PipelineStatus)> NewExpectedStatusCB( |
- PipelineStatus status) { |
+PipelineStatusCB NewExpectedStatusCB(PipelineStatus status) { |
StrictMock<MockStatusCB>* callback = new StrictMock<MockStatusCB>(); |
EXPECT_CALL(*callback, Run(status)); |
return base::Bind(&MockStatusCB::Run, callback); |
} |
+static void RunStatusCBAndQuit( |
+ const scoped_refptr<base::MessageLoopProxy> message_loop, |
+ PipelineStatusCB status_cb, |
+ PipelineStatus status) { |
+ status_cb.Run(status); |
+ message_loop->PostTask(FROM_HERE, MessageLoop::QuitWhenIdleClosure()); |
+} |
+ |
+PipelineStatusCB NewExpectedStatusAndQuitCB(PipelineStatus status) { |
+ StrictMock<MockStatusCB>* callback = new StrictMock<MockStatusCB>(); |
+ EXPECT_CALL(*callback, Run(status)); |
+ return base::Bind(&RunStatusCBAndQuit, base::MessageLoopProxy::current(), |
+ base::Bind(&MockStatusCB::Run, callback)); |
+} |
+ |
} // namespace media |