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

Side by Side Diff: content/renderer/media/media_stream_dispatcher_unittest.cc

Issue 1928493002: Use url::Origin to represent security origins in MediaStream-related code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 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
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 #include "content/renderer/media/media_stream_dispatcher.h" 5 #include "content/renderer/media/media_stream_dispatcher.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <string> 10 #include <string>
11 11
12 #include "base/memory/ref_counted.h" 12 #include "base/memory/ref_counted.h"
13 #include "base/message_loop/message_loop.h" 13 #include "base/message_loop/message_loop.h"
14 #include "base/strings/string_number_conversions.h" 14 #include "base/strings/string_number_conversions.h"
15 #include "content/common/media/media_stream_messages.h" 15 #include "content/common/media/media_stream_messages.h"
16 #include "content/public/common/media_stream_request.h" 16 #include "content/public/common/media_stream_request.h"
17 #include "content/renderer/media/media_stream_dispatcher_eventhandler.h" 17 #include "content/renderer/media/media_stream_dispatcher_eventhandler.h"
18 #include "media/base/audio_parameters.h" 18 #include "media/base/audio_parameters.h"
19 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
20 #include "url/gurl.h" 20 #include "url/gurl.h"
21 #include "url/origin.h"
21 22
22 namespace content { 23 namespace content {
23 namespace { 24 namespace {
24 25
25 const int kRouteId = 0; 26 const int kRouteId = 0;
26 const int kAudioSessionId = 3; 27 const int kAudioSessionId = 3;
27 const int kVideoSessionId = 5; 28 const int kVideoSessionId = 5;
28 const int kRequestId1 = 10; 29 const int kRequestId1 = 10;
29 const int kRequestId2 = 20; 30 const int kRequestId2 = 20;
30 const int kRequestId3 = 30; 31 const int kRequestId3 = 30;
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 110
110 using MediaStreamDispatcher::GetNextIpcIdForTest; 111 using MediaStreamDispatcher::GetNextIpcIdForTest;
111 using RenderFrameObserver::OnMessageReceived; 112 using RenderFrameObserver::OnMessageReceived;
112 }; 113 };
113 114
114 class MediaStreamDispatcherTest : public ::testing::Test { 115 class MediaStreamDispatcherTest : public ::testing::Test {
115 public: 116 public:
116 MediaStreamDispatcherTest() 117 MediaStreamDispatcherTest()
117 : dispatcher_(new MediaStreamDispatcherUnderTest()), 118 : dispatcher_(new MediaStreamDispatcherUnderTest()),
118 handler_(new MockMediaStreamDispatcherEventHandler), 119 handler_(new MockMediaStreamDispatcherEventHandler),
119 security_origin_("http://test.com") {} 120 security_origin_(url::Origin(GURL("http://test.com"))) {}
120 121
121 // Generates a request for a MediaStream and returns the request id that is 122 // Generates a request for a MediaStream and returns the request id that is
122 // used in IPC. Use this returned id in CompleteGenerateStream to identify 123 // used in IPC. Use this returned id in CompleteGenerateStream to identify
123 // the request. 124 // the request.
124 int GenerateStream(const StreamControls& controls, int request_id) { 125 int GenerateStream(const StreamControls& controls, int request_id) {
125 int next_ipc_id = dispatcher_->GetNextIpcIdForTest(); 126 int next_ipc_id = dispatcher_->GetNextIpcIdForTest();
126 dispatcher_->GenerateStream(request_id, handler_.get()->AsWeakPtr(), 127 dispatcher_->GenerateStream(request_id, handler_.get()->AsWeakPtr(),
127 controls, security_origin_); 128 controls, security_origin_);
128 return next_ipc_id; 129 return next_ipc_id;
129 } 130 }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 if (controls.video.requested) 169 if (controls.video.requested)
169 EXPECT_EQ(dispatcher_->video_session_id(label, 0), kVideoSessionId); 170 EXPECT_EQ(dispatcher_->video_session_id(label, 0), kVideoSessionId);
170 171
171 return label; 172 return label;
172 } 173 }
173 174
174 protected: 175 protected:
175 base::MessageLoop message_loop_; 176 base::MessageLoop message_loop_;
176 std::unique_ptr<MediaStreamDispatcherUnderTest> dispatcher_; 177 std::unique_ptr<MediaStreamDispatcherUnderTest> dispatcher_;
177 std::unique_ptr<MockMediaStreamDispatcherEventHandler> handler_; 178 std::unique_ptr<MockMediaStreamDispatcherEventHandler> handler_;
178 GURL security_origin_; 179 url::Origin security_origin_;
179 }; 180 };
180 181
181 } // namespace 182 } // namespace
182 183
183 TEST_F(MediaStreamDispatcherTest, GenerateStreamAndStopDevices) { 184 TEST_F(MediaStreamDispatcherTest, GenerateStreamAndStopDevices) {
184 StreamControls controls(true, true); 185 StreamControls controls(true, true);
185 186
186 int ipc_request_id1 = GenerateStream(controls, kRequestId1); 187 int ipc_request_id1 = GenerateStream(controls, kRequestId1);
187 int ipc_request_id2 = GenerateStream(controls, kRequestId2); 188 int ipc_request_id2 = GenerateStream(controls, kRequestId2);
188 EXPECT_NE(ipc_request_id1, ipc_request_id2); 189 EXPECT_NE(ipc_request_id1, ipc_request_id2);
(...skipping 23 matching lines...) Expand all
212 StreamDeviceInfo::kNoId); 213 StreamDeviceInfo::kNoId);
213 } 214 }
214 215
215 TEST_F(MediaStreamDispatcherTest, BasicVideoDevice) { 216 TEST_F(MediaStreamDispatcherTest, BasicVideoDevice) {
216 std::unique_ptr<MediaStreamDispatcher> dispatcher( 217 std::unique_ptr<MediaStreamDispatcher> dispatcher(
217 new MediaStreamDispatcher(NULL)); 218 new MediaStreamDispatcher(NULL));
218 std::unique_ptr<MockMediaStreamDispatcherEventHandler> handler1( 219 std::unique_ptr<MockMediaStreamDispatcherEventHandler> handler1(
219 new MockMediaStreamDispatcherEventHandler); 220 new MockMediaStreamDispatcherEventHandler);
220 std::unique_ptr<MockMediaStreamDispatcherEventHandler> handler2( 221 std::unique_ptr<MockMediaStreamDispatcherEventHandler> handler2(
221 new MockMediaStreamDispatcherEventHandler); 222 new MockMediaStreamDispatcherEventHandler);
222 GURL security_origin; 223 url::Origin security_origin;
223 224
224 int ipc_request_id1 = dispatcher->next_ipc_id_; 225 int ipc_request_id1 = dispatcher->next_ipc_id_;
225 dispatcher->EnumerateDevices( 226 dispatcher->EnumerateDevices(
226 kRequestId1, handler1.get()->AsWeakPtr(), 227 kRequestId1, handler1.get()->AsWeakPtr(),
227 kVideoType, 228 kVideoType,
228 security_origin); 229 security_origin);
229 int ipc_request_id2 = dispatcher->next_ipc_id_; 230 int ipc_request_id2 = dispatcher->next_ipc_id_;
230 EXPECT_NE(ipc_request_id1, ipc_request_id2); 231 EXPECT_NE(ipc_request_id1, ipc_request_id2);
231 dispatcher->EnumerateDevices( 232 dispatcher->EnumerateDevices(
232 kRequestId2, handler2.get()->AsWeakPtr(), 233 kRequestId2, handler2.get()->AsWeakPtr(),
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0)); 302 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0));
302 EXPECT_EQ(dispatcher->requests_.size(), size_t(2)); 303 EXPECT_EQ(dispatcher->requests_.size(), size_t(2));
303 } 304 }
304 305
305 TEST_F(MediaStreamDispatcherTest, TestFailure) { 306 TEST_F(MediaStreamDispatcherTest, TestFailure) {
306 std::unique_ptr<MediaStreamDispatcher> dispatcher( 307 std::unique_ptr<MediaStreamDispatcher> dispatcher(
307 new MediaStreamDispatcher(NULL)); 308 new MediaStreamDispatcher(NULL));
308 std::unique_ptr<MockMediaStreamDispatcherEventHandler> handler( 309 std::unique_ptr<MockMediaStreamDispatcherEventHandler> handler(
309 new MockMediaStreamDispatcherEventHandler); 310 new MockMediaStreamDispatcherEventHandler);
310 StreamControls components(true, true); 311 StreamControls components(true, true);
311 GURL security_origin; 312 url::Origin security_origin;
312 313
313 // Test failure when creating a stream. 314 // Test failure when creating a stream.
314 int ipc_request_id1 = dispatcher->next_ipc_id_; 315 int ipc_request_id1 = dispatcher->next_ipc_id_;
315 dispatcher->GenerateStream(kRequestId1, handler.get()->AsWeakPtr(), 316 dispatcher->GenerateStream(kRequestId1, handler.get()->AsWeakPtr(),
316 components, security_origin); 317 components, security_origin);
317 dispatcher->OnMessageReceived(MediaStreamMsg_StreamGenerationFailed( 318 dispatcher->OnMessageReceived(MediaStreamMsg_StreamGenerationFailed(
318 kRouteId, ipc_request_id1, MEDIA_DEVICE_PERMISSION_DENIED)); 319 kRouteId, ipc_request_id1, MEDIA_DEVICE_PERMISSION_DENIED));
319 320
320 // Verify that the request have been completed. 321 // Verify that the request have been completed.
321 EXPECT_EQ(handler->request_id_, kRequestId1); 322 EXPECT_EQ(handler->request_id_, kRequestId1);
(...skipping 30 matching lines...) Expand all
352 353
353 TEST_F(MediaStreamDispatcherTest, CancelGenerateStream) { 354 TEST_F(MediaStreamDispatcherTest, CancelGenerateStream) {
354 std::unique_ptr<MediaStreamDispatcher> dispatcher( 355 std::unique_ptr<MediaStreamDispatcher> dispatcher(
355 new MediaStreamDispatcher(NULL)); 356 new MediaStreamDispatcher(NULL));
356 std::unique_ptr<MockMediaStreamDispatcherEventHandler> handler( 357 std::unique_ptr<MockMediaStreamDispatcherEventHandler> handler(
357 new MockMediaStreamDispatcherEventHandler); 358 new MockMediaStreamDispatcherEventHandler);
358 StreamControls components(true, true); 359 StreamControls components(true, true);
359 int ipc_request_id1 = dispatcher->next_ipc_id_; 360 int ipc_request_id1 = dispatcher->next_ipc_id_;
360 361
361 dispatcher->GenerateStream(kRequestId1, handler.get()->AsWeakPtr(), 362 dispatcher->GenerateStream(kRequestId1, handler.get()->AsWeakPtr(),
362 components, GURL()); 363 components, url::Origin());
363 dispatcher->GenerateStream(kRequestId2, handler.get()->AsWeakPtr(), 364 dispatcher->GenerateStream(kRequestId2, handler.get()->AsWeakPtr(),
364 components, GURL()); 365 components, url::Origin());
365 366
366 EXPECT_EQ(2u, dispatcher->requests_.size()); 367 EXPECT_EQ(2u, dispatcher->requests_.size());
367 dispatcher->CancelGenerateStream(kRequestId2, handler.get()->AsWeakPtr()); 368 dispatcher->CancelGenerateStream(kRequestId2, handler.get()->AsWeakPtr());
368 EXPECT_EQ(1u, dispatcher->requests_.size()); 369 EXPECT_EQ(1u, dispatcher->requests_.size());
369 370
370 // Complete the creation of stream1. 371 // Complete the creation of stream1.
371 StreamDeviceInfo audio_device_info; 372 StreamDeviceInfo audio_device_info;
372 audio_device_info.device.name = "Microphone"; 373 audio_device_info.device.name = "Microphone";
373 audio_device_info.device.type = kAudioType; 374 audio_device_info.device.type = kAudioType;
374 audio_device_info.session_id = kAudioSessionId; 375 audio_device_info.session_id = kAudioSessionId;
(...skipping 28 matching lines...) Expand all
403 dispatcher_->OnMessageReceived( 404 dispatcher_->OnMessageReceived(
404 MediaStreamMsg_DeviceStopped(kRouteId, label, handler_->video_device_)); 405 MediaStreamMsg_DeviceStopped(kRouteId, label, handler_->video_device_));
405 // Verify that MediaStreamDispatcherEventHandler::OnDeviceStopped has been 406 // Verify that MediaStreamDispatcherEventHandler::OnDeviceStopped has been
406 // called. 407 // called.
407 EXPECT_EQ(label, handler_->device_stopped_label_); 408 EXPECT_EQ(label, handler_->device_stopped_label_);
408 EXPECT_EQ(dispatcher_->video_session_id(label, 0), 409 EXPECT_EQ(dispatcher_->video_session_id(label, 0),
409 StreamDeviceInfo::kNoId); 410 StreamDeviceInfo::kNoId);
410 } 411 }
411 412
412 } // namespace content 413 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_dispatcher.cc ('k') | content/renderer/media/mock_media_stream_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698