| Index: content/browser/renderer_host/media/video_capture_host_unittest.cc
|
| ===================================================================
|
| --- content/browser/renderer_host/media/video_capture_host_unittest.cc (revision 89543)
|
| +++ content/browser/renderer_host/media/video_capture_host_unittest.cc (working copy)
|
| @@ -28,8 +28,6 @@
|
| using ::testing::Mock;
|
| using ::testing::Return;
|
|
|
| -// IPC::Msg.routing_id.
|
| -static const int32 kRouteId = 200;
|
| // Id used to identify the capture session between renderer and
|
| // video_capture_host.
|
| static const int kDeviceId = 1;
|
| @@ -77,16 +75,14 @@
|
| }
|
|
|
| // A list of mock methods.
|
| - MOCK_METHOD5(OnNewBufferCreated,
|
| - void(int routing_id, int device_id,
|
| - base::SharedMemoryHandle handle,
|
| + MOCK_METHOD4(OnNewBufferCreated,
|
| + void(int device_id, base::SharedMemoryHandle handle,
|
| int length, int buffer_id));
|
| MOCK_METHOD3(OnBufferFilled,
|
| - void(int routing_id, int device_id, int buffer_id));
|
| - MOCK_METHOD3(OnStateChanged,
|
| - void(int routing_id, int device_id,
|
| - media::VideoCapture::State state));
|
| - MOCK_METHOD2(OnDeviceInfo, void(int routing_id, int device_id));
|
| + void(int device_id, int buffer_id, base::Time timestamp));
|
| + MOCK_METHOD2(OnStateChanged,
|
| + void(int device_id, media::VideoCapture::State state));
|
| + MOCK_METHOD1(OnDeviceInfo, void(int device_id));
|
|
|
| // Use class DumpVideo to write I420 video to file.
|
| void SetDumpVideo(bool enable) {
|
| @@ -100,9 +96,7 @@
|
| void ReturnReceivedDibs(int device_id) {
|
| int handle = GetReceivedDib();
|
| while (handle) {
|
| - IPC::Message msg;
|
| - msg.set_routing_id(kRouteId);
|
| - this->OnReceiveEmptyBuffer(msg, device_id, handle);
|
| + this->OnReceiveEmptyBuffer(device_id, handle);
|
| handle = GetReceivedDib();
|
| }
|
| }
|
| @@ -128,10 +122,10 @@
|
| // we are the renderer.
|
| bool handled = true;
|
| IPC_BEGIN_MESSAGE_MAP(MockVideoCaptureHost, *message)
|
| - IPC_MESSAGE_HANDLER(VideoCaptureMsg_NewBuffer, OnNewBufferCreated)
|
| - IPC_MESSAGE_HANDLER(VideoCaptureMsg_BufferReady, OnBufferFilled)
|
| - IPC_MESSAGE_HANDLER(VideoCaptureMsg_StateChanged, OnStateChanged)
|
| - IPC_MESSAGE_HANDLER(VideoCaptureMsg_DeviceInfo, OnDeviceInfo)
|
| + IPC_MESSAGE_HANDLER(VideoCaptureMsg_NewBuffer, OnNewBufferCreatedDispatch)
|
| + IPC_MESSAGE_HANDLER(VideoCaptureMsg_BufferReady, OnBufferFilledDispatch)
|
| + IPC_MESSAGE_HANDLER(VideoCaptureMsg_StateChanged, OnStateChangedDispatch)
|
| + IPC_MESSAGE_HANDLER(VideoCaptureMsg_DeviceInfo, OnDeviceInfoDispatch)
|
| IPC_MESSAGE_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP()
|
| EXPECT_TRUE(handled);
|
| @@ -141,40 +135,40 @@
|
| }
|
|
|
| // These handler methods do minimal things and delegate to the mock methods.
|
| - void OnNewBufferCreated(const IPC::Message& msg, int device_id,
|
| - base::SharedMemoryHandle handle,
|
| - int length, int buffer_id) {
|
| - OnNewBufferCreated(msg.routing_id(), device_id, handle, length, buffer_id);
|
| + void OnNewBufferCreatedDispatch(int device_id,
|
| + base::SharedMemoryHandle handle,
|
| + int length, int buffer_id) {
|
| + OnNewBufferCreated(device_id, handle, length, buffer_id);
|
| base::SharedMemory* dib = new base::SharedMemory(handle, false);
|
| dib->Map(length);
|
| filled_dib_[buffer_id] = dib;
|
| }
|
|
|
| - void OnBufferFilled(const IPC::Message& msg, int device_id,
|
| - int buffer_id) {
|
| + void OnBufferFilledDispatch(int device_id, int buffer_id,
|
| + base::Time timestamp) {
|
| if (dump_video_) {
|
| base::SharedMemory* dib = filled_dib_[buffer_id];
|
| ASSERT_TRUE(dib != NULL);
|
| dumper_.NewVideoFrame(dib->memory());
|
| }
|
|
|
| - OnBufferFilled(msg.routing_id(), device_id, buffer_id);
|
| + OnBufferFilled(device_id, buffer_id, timestamp);
|
| if (return_buffers_) {
|
| - VideoCaptureHost::OnReceiveEmptyBuffer(msg, device_id, buffer_id);
|
| + VideoCaptureHost::OnReceiveEmptyBuffer(device_id, buffer_id);
|
| }
|
| }
|
|
|
| - void OnStateChanged(const IPC::Message& msg, int device_id,
|
| - media::VideoCapture::State state) {
|
| - OnStateChanged(msg.routing_id(), device_id, state);
|
| + void OnStateChangedDispatch(int device_id,
|
| + media::VideoCapture::State state) {
|
| + OnStateChanged(device_id, state);
|
| }
|
|
|
| - void OnDeviceInfo(const IPC::Message& msg, int device_id,
|
| - media::VideoCaptureParams params) {
|
| + void OnDeviceInfoDispatch(int device_id,
|
| + media::VideoCaptureParams params) {
|
| if (dump_video_) {
|
| dumper_.StartDump(params.width, params.height);
|
| }
|
| - OnDeviceInfo(msg.routing_id(), device_id);
|
| + OnDeviceInfo(device_id);
|
| }
|
|
|
| std::map<int, base::SharedMemory*> filled_dib_;
|
| @@ -213,7 +207,7 @@
|
| // returns true iff successful.
|
| Mock::VerifyAndClearExpectations(host_);
|
|
|
| - EXPECT_CALL(*host_, OnStateChanged(kRouteId, kDeviceId,
|
| + EXPECT_CALL(*host_, OnStateChanged(kDeviceId,
|
| media::VideoCapture::kStopped))
|
| .Times(AnyNumber());
|
|
|
| @@ -256,69 +250,61 @@
|
| void StartCapture() {
|
| InSequence s;
|
| // 1. Newly created buffers will arrive.
|
| - EXPECT_CALL(*host_, OnNewBufferCreated(kRouteId, kDeviceId, _, _, _))
|
| + EXPECT_CALL(*host_, OnNewBufferCreated(kDeviceId, _, _, _))
|
| .Times(AnyNumber())
|
| .WillRepeatedly(Return());
|
|
|
| // 2. First - get info about the new resolution
|
| - EXPECT_CALL(*host_, OnDeviceInfo(kRouteId, kDeviceId));
|
| + EXPECT_CALL(*host_, OnDeviceInfo(kDeviceId));
|
|
|
| // 3. Change state to started
|
| - EXPECT_CALL(*host_, OnStateChanged(kRouteId, kDeviceId,
|
| + EXPECT_CALL(*host_, OnStateChanged(kDeviceId,
|
| media::VideoCapture::kStarted));
|
|
|
| // 4. First filled buffer will arrive.
|
| - EXPECT_CALL(*host_, OnBufferFilled(kRouteId, kDeviceId, _))
|
| + EXPECT_CALL(*host_, OnBufferFilled(kDeviceId, _, _))
|
| .Times(AnyNumber())
|
| .WillOnce(ExitMessageLoop(message_loop_.get()));
|
|
|
| - IPC::Message msg;
|
| - msg.set_routing_id(kRouteId);
|
| -
|
| media::VideoCaptureParams params;
|
| params.width = 352;
|
| params.height = 288;
|
| params.frame_per_second = 30;
|
| params.session_id = kTestFakeDeviceId;
|
| - host_->OnStartCapture(msg, kDeviceId, params);
|
| + host_->OnStartCapture(kDeviceId, params);
|
| message_loop_->Run();
|
| }
|
|
|
| void CaptureAndDumpVideo(int width, int heigt, int frame_rate) {
|
| InSequence s;
|
| // 1. First - get info about the new resolution
|
| - EXPECT_CALL(*host_, OnDeviceInfo(kRouteId, kDeviceId));
|
| + EXPECT_CALL(*host_, OnDeviceInfo(kDeviceId));
|
|
|
| // 2. Change state to started
|
| - EXPECT_CALL(*host_, OnStateChanged(kRouteId, kDeviceId,
|
| + EXPECT_CALL(*host_, OnStateChanged(kDeviceId,
|
| media::VideoCapture::kStarted));
|
|
|
| // 3. First filled buffer will arrive.
|
| - EXPECT_CALL(*host_, OnBufferFilled(kRouteId, kDeviceId, _))
|
| + EXPECT_CALL(*host_, OnBufferFilled(kDeviceId, _, _))
|
| .Times(AnyNumber())
|
| .WillOnce(ExitMessageLoop(message_loop_.get()));
|
|
|
| - IPC::Message msg;
|
| - msg.set_routing_id(kRouteId);
|
| -
|
| media::VideoCaptureParams params;
|
| params.width = width;
|
| params.height = heigt;
|
| params.frame_per_second = frame_rate;
|
| params.session_id = kTestFakeDeviceId;
|
| host_->SetDumpVideo(true);
|
| - host_->OnStartCapture(msg, kDeviceId, params);
|
| + host_->OnStartCapture(kDeviceId, params);
|
| message_loop_->Run();
|
| }
|
|
|
| void StopCapture() {
|
| - EXPECT_CALL(*host_, OnStateChanged(kRouteId, kDeviceId,
|
| + EXPECT_CALL(*host_, OnStateChanged(kDeviceId,
|
| media::VideoCapture::kStopped))
|
| .Times(AtLeast(1));
|
|
|
| - IPC::Message msg;
|
| - msg.set_routing_id(kRouteId);
|
| - host_->OnStopCapture(msg, kDeviceId);
|
| + host_->OnStopCapture(kDeviceId);
|
| host_->SetReturnReceviedDibs(true);
|
| host_->ReturnReceivedDibs(kDeviceId);
|
|
|
| @@ -329,7 +315,7 @@
|
| }
|
|
|
| void NotifyPacketReady() {
|
| - EXPECT_CALL(*host_, OnBufferFilled(kRouteId, kDeviceId, _))
|
| + EXPECT_CALL(*host_, OnBufferFilled(kDeviceId, _, _))
|
| .Times(AnyNumber())
|
| .WillOnce(ExitMessageLoop(message_loop_.get()))
|
| .RetiresOnSaturation();
|
| @@ -342,10 +328,10 @@
|
|
|
| void SimulateError() {
|
| // Expect a change state to error state sent through IPC.
|
| - EXPECT_CALL(*host_, OnStateChanged(kRouteId, kDeviceId,
|
| + EXPECT_CALL(*host_, OnStateChanged(kDeviceId,
|
| media::VideoCapture::kError))
|
| .Times(1);
|
| - VideoCaptureControllerID id(kRouteId, kDeviceId);
|
| + VideoCaptureControllerID id(kDeviceId);
|
| host_->OnError(id);
|
| SyncWithVideoCaptureManagerThread();
|
| }
|
| @@ -377,7 +363,7 @@
|
| }
|
|
|
| TEST_F(VideoCaptureHostTest, StartCaptureError) {
|
| - EXPECT_CALL(*host_, OnStateChanged(kRouteId, kDeviceId,
|
| + EXPECT_CALL(*host_, OnStateChanged(kDeviceId,
|
| media::VideoCapture::kStopped))
|
| .Times(0);
|
| StartCapture();
|
|
|