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

Side by Side Diff: content/browser/renderer_host/media/video_capture_manager_unittest.cc

Issue 248113003: Fix for closing the desktop sharing notification bar when the shared window is closed (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 7 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
« no previous file with comments | « content/browser/renderer_host/media/video_capture_manager.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Unit test for VideoCaptureManager. 5 // Unit test for VideoCaptureManager.
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/memory/ref_counted.h" 10 #include "base/memory/ref_counted.h"
(...skipping 20 matching lines...) Expand all
31 // Listener class used to track progress of VideoCaptureManager test. 31 // Listener class used to track progress of VideoCaptureManager test.
32 class MockMediaStreamProviderListener : public MediaStreamProviderListener { 32 class MockMediaStreamProviderListener : public MediaStreamProviderListener {
33 public: 33 public:
34 MockMediaStreamProviderListener() {} 34 MockMediaStreamProviderListener() {}
35 ~MockMediaStreamProviderListener() {} 35 ~MockMediaStreamProviderListener() {}
36 36
37 MOCK_METHOD2(Opened, void(MediaStreamType, int)); 37 MOCK_METHOD2(Opened, void(MediaStreamType, int));
38 MOCK_METHOD2(Closed, void(MediaStreamType, int)); 38 MOCK_METHOD2(Closed, void(MediaStreamType, int));
39 MOCK_METHOD2(DevicesEnumerated, void(MediaStreamType, 39 MOCK_METHOD2(DevicesEnumerated, void(MediaStreamType,
40 const StreamDeviceInfoArray&)); 40 const StreamDeviceInfoArray&));
41 MOCK_METHOD3(Error, void(MediaStreamType, int, 41 MOCK_METHOD2(Aborted, void(MediaStreamType, int));
42 MediaStreamProviderError));
43 }; // class MockMediaStreamProviderListener 42 }; // class MockMediaStreamProviderListener
44 43
45 // Needed as an input argument to StartCaptureForClient(). 44 // Needed as an input argument to StartCaptureForClient().
46 class MockFrameObserver : public VideoCaptureControllerEventHandler { 45 class MockFrameObserver : public VideoCaptureControllerEventHandler {
47 public: 46 public:
48 MOCK_METHOD1(OnError, void(const VideoCaptureControllerID& id)); 47 MOCK_METHOD1(OnError, void(const VideoCaptureControllerID& id));
49 48
50 virtual void OnBufferCreated(const VideoCaptureControllerID& id, 49 virtual void OnBufferCreated(const VideoCaptureControllerID& id,
51 base::SharedMemoryHandle handle, 50 base::SharedMemoryHandle handle,
52 int length, int buffer_id) OVERRIDE {} 51 int length, int buffer_id) OVERRIDE {}
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 client_id, 123 client_id,
125 run_loop.QuitClosure(), 124 run_loop.QuitClosure(),
126 expect_success)); 125 expect_success));
127 run_loop.Run(); 126 run_loop.Run();
128 return client_id; 127 return client_id;
129 } 128 }
130 129
131 void StopClient(VideoCaptureControllerID client_id) { 130 void StopClient(VideoCaptureControllerID client_id) {
132 ASSERT_TRUE(1 == controllers_.count(client_id)); 131 ASSERT_TRUE(1 == controllers_.count(client_id));
133 vcm_->StopCaptureForClient(controllers_[client_id], client_id, 132 vcm_->StopCaptureForClient(controllers_[client_id], client_id,
134 frame_observer_.get()); 133 frame_observer_.get(), false);
135 controllers_.erase(client_id); 134 controllers_.erase(client_id);
136 } 135 }
137 136
138 int next_client_id_; 137 int next_client_id_;
139 std::map<VideoCaptureControllerID, VideoCaptureController*> controllers_; 138 std::map<VideoCaptureControllerID, VideoCaptureController*> controllers_;
140 scoped_refptr<VideoCaptureManager> vcm_; 139 scoped_refptr<VideoCaptureManager> vcm_;
141 scoped_ptr<MockMediaStreamProviderListener> listener_; 140 scoped_ptr<MockMediaStreamProviderListener> listener_;
142 scoped_ptr<base::MessageLoop> message_loop_; 141 scoped_ptr<base::MessageLoop> message_loop_;
143 scoped_ptr<BrowserThreadImpl> io_thread_; 142 scoped_ptr<BrowserThreadImpl> io_thread_;
144 scoped_ptr<MockFrameObserver> frame_observer_; 143 scoped_ptr<MockFrameObserver> frame_observer_;
(...skipping 24 matching lines...) Expand all
169 VideoCaptureControllerID client_id = StartClient(video_session_id, true); 168 VideoCaptureControllerID client_id = StartClient(video_session_id, true);
170 169
171 StopClient(client_id); 170 StopClient(client_id);
172 vcm_->Close(video_session_id); 171 vcm_->Close(video_session_id);
173 172
174 // Wait to check callbacks before removing the listener. 173 // Wait to check callbacks before removing the listener.
175 message_loop_->RunUntilIdle(); 174 message_loop_->RunUntilIdle();
176 vcm_->Unregister(); 175 vcm_->Unregister();
177 } 176 }
178 177
178 // Try to open, start, and abort a device.
179 TEST_F(VideoCaptureManagerTest, CreateAndAbort) {
180 StreamDeviceInfoArray devices;
181
182 InSequence s;
183 EXPECT_CALL(*listener_, DevicesEnumerated(MEDIA_DEVICE_VIDEO_CAPTURE, _))
184 .WillOnce(SaveArg<1>(&devices));
185 EXPECT_CALL(*listener_, Opened(MEDIA_DEVICE_VIDEO_CAPTURE, _));
186 EXPECT_CALL(*listener_, Aborted(MEDIA_DEVICE_VIDEO_CAPTURE, _));
187
188 vcm_->EnumerateDevices(MEDIA_DEVICE_VIDEO_CAPTURE);
189
190 // Wait to get device callback.
191 message_loop_->RunUntilIdle();
192
193 int video_session_id = vcm_->Open(devices.front());
194 VideoCaptureControllerID client_id = StartClient(video_session_id, true);
195
196 // Wait for device opened.
197 message_loop_->RunUntilIdle();
198
199 vcm_->StopCaptureForClient(controllers_[client_id], client_id,
200 frame_observer_.get(), true);
201
202 // Wait to check callbacks before removing the listener.
203 message_loop_->RunUntilIdle();
204 vcm_->Unregister();
205 }
206
179 // Open the same device twice. 207 // Open the same device twice.
180 TEST_F(VideoCaptureManagerTest, OpenTwice) { 208 TEST_F(VideoCaptureManagerTest, OpenTwice) {
181 StreamDeviceInfoArray devices; 209 StreamDeviceInfoArray devices;
182 210
183 InSequence s; 211 InSequence s;
184 EXPECT_CALL(*listener_, DevicesEnumerated(MEDIA_DEVICE_VIDEO_CAPTURE, _)) 212 EXPECT_CALL(*listener_, DevicesEnumerated(MEDIA_DEVICE_VIDEO_CAPTURE, _))
185 .WillOnce(SaveArg<1>(&devices)); 213 .WillOnce(SaveArg<1>(&devices));
186 EXPECT_CALL(*listener_, Opened(MEDIA_DEVICE_VIDEO_CAPTURE, _)).Times(2); 214 EXPECT_CALL(*listener_, Opened(MEDIA_DEVICE_VIDEO_CAPTURE, _)).Times(2);
187 EXPECT_CALL(*listener_, Closed(MEDIA_DEVICE_VIDEO_CAPTURE, _)).Times(2); 215 EXPECT_CALL(*listener_, Closed(MEDIA_DEVICE_VIDEO_CAPTURE, _)).Times(2);
188 216
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 482
455 // Wait to check callbacks before removing the listener 483 // Wait to check callbacks before removing the listener
456 message_loop_->RunUntilIdle(); 484 message_loop_->RunUntilIdle();
457 vcm_->Unregister(); 485 vcm_->Unregister();
458 } 486 }
459 487
460 // TODO(mcasas): Add a test to check consolidation of the supported formats 488 // TODO(mcasas): Add a test to check consolidation of the supported formats
461 // provided by the device when http://crbug.com/323913 is closed. 489 // provided by the device when http://crbug.com/323913 is closed.
462 490
463 } // namespace content 491 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/media/video_capture_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698