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

Side by Side Diff: components/test_runner/mock_web_user_media_client.cc

Issue 1852603002: Replacing most of web_task.h with base::Closure + base::WeakPtrFactory. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@move-mocks-to-test-runner
Patch Set: Rebasing... Created 4 years, 8 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/test_runner/mock_web_user_media_client.h" 5 #include "components/test_runner/mock_web_user_media_client.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/bind.h"
10 #include "base/bind_helpers.h"
9 #include "base/logging.h" 11 #include "base/logging.h"
10 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "components/test_runner/web_task.h"
11 #include "components/test_runner/web_test_delegate.h" 14 #include "components/test_runner/web_test_delegate.h"
12 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" 15 #include "third_party/WebKit/public/platform/WebMediaConstraints.h"
13 #include "third_party/WebKit/public/platform/WebMediaDeviceInfo.h" 16 #include "third_party/WebKit/public/platform/WebMediaDeviceInfo.h"
14 #include "third_party/WebKit/public/platform/WebMediaStream.h" 17 #include "third_party/WebKit/public/platform/WebMediaStream.h"
15 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" 18 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
16 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" 19 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
17 #include "third_party/WebKit/public/platform/WebMediaStreamTrackSourcesRequest.h " 20 #include "third_party/WebKit/public/platform/WebMediaStreamTrackSourcesRequest.h "
18 #include "third_party/WebKit/public/platform/WebSourceInfo.h" 21 #include "third_party/WebKit/public/platform/WebSourceInfo.h"
19 #include "third_party/WebKit/public/platform/WebVector.h" 22 #include "third_party/WebKit/public/platform/WebVector.h"
20 #include "third_party/WebKit/public/web/WebDocument.h" 23 #include "third_party/WebKit/public/web/WebDocument.h"
21 #include "third_party/WebKit/public/web/WebMediaDevicesRequest.h" 24 #include "third_party/WebKit/public/web/WebMediaDevicesRequest.h"
22 #include "third_party/WebKit/public/web/WebUserMediaRequest.h" 25 #include "third_party/WebKit/public/web/WebUserMediaRequest.h"
23 26
24 using blink::WebMediaConstraints; 27 using blink::WebMediaConstraints;
25 using blink::WebMediaDeviceInfo; 28 using blink::WebMediaDeviceInfo;
26 using blink::WebMediaDevicesRequest; 29 using blink::WebMediaDevicesRequest;
27 using blink::WebMediaStream; 30 using blink::WebMediaStream;
28 using blink::WebMediaStreamSource; 31 using blink::WebMediaStreamSource;
29 using blink::WebMediaStreamTrack; 32 using blink::WebMediaStreamTrack;
30 using blink::WebMediaStreamTrackSourcesRequest; 33 using blink::WebMediaStreamTrackSourcesRequest;
31 using blink::WebSourceInfo; 34 using blink::WebSourceInfo;
32 using blink::WebString; 35 using blink::WebString;
33 using blink::WebUserMediaRequest; 36 using blink::WebUserMediaRequest;
34 using blink::WebVector; 37 using blink::WebVector;
35 38
36 namespace test_runner { 39 namespace test_runner {
37 40
38 class UserMediaRequestTask : public WebMethodTask<MockWebUserMediaClient> {
39 public:
40 UserMediaRequestTask(MockWebUserMediaClient* object,
41 const WebUserMediaRequest& request,
42 const WebMediaStream result)
43 : WebMethodTask<MockWebUserMediaClient>(object),
44 request_(request),
45 result_(result) {
46 DCHECK(!result_.isNull());
47 }
48
49 void RunIfValid() override { request_.requestSucceeded(result_); }
50
51 private:
52 WebUserMediaRequest request_;
53 WebMediaStream result_;
54
55 DISALLOW_COPY_AND_ASSIGN(UserMediaRequestTask);
56 };
57
58 class UserMediaRequestConstraintFailedTask
59 : public WebMethodTask<MockWebUserMediaClient> {
60 public:
61 UserMediaRequestConstraintFailedTask(MockWebUserMediaClient* object,
62 const WebUserMediaRequest& request,
63 const WebString& constraint)
64 : WebMethodTask<MockWebUserMediaClient>(object),
65 request_(request),
66 constraint_(constraint) {}
67
68 void RunIfValid() override { request_.requestFailedConstraint(constraint_); }
69
70 private:
71 WebUserMediaRequest request_;
72 WebString constraint_;
73
74 DISALLOW_COPY_AND_ASSIGN(UserMediaRequestConstraintFailedTask);
75 };
76
77 class UserMediaRequestPermissionDeniedTask
78 : public WebMethodTask<MockWebUserMediaClient> {
79 public:
80 UserMediaRequestPermissionDeniedTask(MockWebUserMediaClient* object,
81 const WebUserMediaRequest& request)
82 : WebMethodTask<MockWebUserMediaClient>(object),
83 request_(request) {}
84
85 void RunIfValid() override { request_.requestFailed(); }
86
87 private:
88 WebUserMediaRequest request_;
89
90 DISALLOW_COPY_AND_ASSIGN(UserMediaRequestPermissionDeniedTask);
91 };
92
93 class MediaDevicesRequestTask : public WebMethodTask<MockWebUserMediaClient> {
94 public:
95 MediaDevicesRequestTask(MockWebUserMediaClient* object,
96 const WebMediaDevicesRequest& request,
97 const WebVector<WebMediaDeviceInfo>& result)
98 : WebMethodTask<MockWebUserMediaClient>(object),
99 request_(request),
100 result_(result) {}
101
102 void RunIfValid() override { request_.requestSucceeded(result_); }
103
104 private:
105 WebMediaDevicesRequest request_;
106 WebVector<WebMediaDeviceInfo> result_;
107
108 DISALLOW_COPY_AND_ASSIGN(MediaDevicesRequestTask);
109 };
110
111 class SourcesRequestTask : public WebMethodTask<MockWebUserMediaClient> {
112 public:
113 SourcesRequestTask(MockWebUserMediaClient* object,
114 const WebMediaStreamTrackSourcesRequest& request,
115 const WebVector<WebSourceInfo>& result)
116 : WebMethodTask<MockWebUserMediaClient>(object),
117 request_(request),
118 result_(result) {}
119
120 void RunIfValid() override { request_.requestSucceeded(result_); }
121
122 private:
123 WebMediaStreamTrackSourcesRequest request_;
124 WebVector<WebSourceInfo> result_;
125
126 DISALLOW_COPY_AND_ASSIGN(SourcesRequestTask);
127 };
128
129 class MockExtraData : public WebMediaStream::ExtraData { 41 class MockExtraData : public WebMediaStream::ExtraData {
130 }; 42 };
131 43
132 MockWebUserMediaClient::MockWebUserMediaClient(WebTestDelegate* delegate) 44 MockWebUserMediaClient::MockWebUserMediaClient(WebTestDelegate* delegate)
133 : delegate_(delegate) {} 45 : delegate_(delegate), weak_factory_(this) {}
46
47 MockWebUserMediaClient::~MockWebUserMediaClient() {}
134 48
135 void MockWebUserMediaClient::requestUserMedia( 49 void MockWebUserMediaClient::requestUserMedia(
136 const WebUserMediaRequest& stream_request) { 50 const WebUserMediaRequest& stream_request) {
137 DCHECK(!stream_request.isNull()); 51 DCHECK(!stream_request.isNull());
138 WebUserMediaRequest request = stream_request; 52 WebUserMediaRequest request = stream_request;
139 53
140 if (request.ownerDocument().isNull() || !request.ownerDocument().frame()) { 54 if (request.ownerDocument().isNull() || !request.ownerDocument().frame()) {
141 delegate_->PostTask( 55 delegate_->PostTask(new WebCallbackTask(base::Bind(
142 new UserMediaRequestPermissionDeniedTask(this, request)); 56 &WebUserMediaRequest::requestFailed,
143 return; 57 base::Owned(new WebUserMediaRequest(request)), WebString())));
58 return;
144 } 59 }
145 60
146 WebMediaStream stream; 61 WebMediaStream stream;
147 stream.initialize(WebVector<WebMediaStreamTrack>(), 62 stream.initialize(WebVector<WebMediaStreamTrack>(),
148 WebVector<WebMediaStreamTrack>()); 63 WebVector<WebMediaStreamTrack>());
149 stream.setExtraData(new MockExtraData()); 64 stream.setExtraData(new MockExtraData());
150 65
151 if (request.audio() && 66 if (request.audio() &&
152 !delegate_->AddMediaStreamAudioSourceAndTrack(&stream)) { 67 !delegate_->AddMediaStreamAudioSourceAndTrack(&stream)) {
153 WebMediaStreamSource source; 68 WebMediaStreamSource source;
(...skipping 12 matching lines...) Expand all
166 WebMediaStreamSource source; 81 WebMediaStreamSource source;
167 source.initialize("MockVideoDevice#1", 82 source.initialize("MockVideoDevice#1",
168 WebMediaStreamSource::TypeVideo, 83 WebMediaStreamSource::TypeVideo,
169 "Mock video device", 84 "Mock video device",
170 false /* remote */, true /* readonly */); 85 false /* remote */, true /* readonly */);
171 WebMediaStreamTrack web_track; 86 WebMediaStreamTrack web_track;
172 web_track.initialize(source); 87 web_track.initialize(source);
173 stream.addTrack(web_track); 88 stream.addTrack(web_track);
174 } 89 }
175 90
176 delegate_->PostTask(new UserMediaRequestTask(this, request, stream)); 91 delegate_->PostTask(new WebCallbackTask(
92 base::Bind(&WebUserMediaRequest::requestSucceeded,
93 base::Owned(new WebUserMediaRequest(request)), stream)));
177 } 94 }
178 95
179 void MockWebUserMediaClient::cancelUserMediaRequest( 96 void MockWebUserMediaClient::cancelUserMediaRequest(
180 const WebUserMediaRequest&) { 97 const WebUserMediaRequest&) {
181 } 98 }
182 99
183 void MockWebUserMediaClient::requestMediaDevices( 100 void MockWebUserMediaClient::requestMediaDevices(
184 const WebMediaDevicesRequest& request) { 101 const WebMediaDevicesRequest& request) {
185 struct { 102 struct {
186 const char* device_id; 103 const char* device_id;
(...skipping 22 matching lines...) Expand all
209 }; 126 };
210 127
211 WebVector<WebMediaDeviceInfo> devices(arraysize(test_devices)); 128 WebVector<WebMediaDeviceInfo> devices(arraysize(test_devices));
212 for (size_t i = 0; i < arraysize(test_devices); ++i) { 129 for (size_t i = 0; i < arraysize(test_devices); ++i) {
213 devices[i].initialize(WebString::fromUTF8(test_devices[i].device_id), 130 devices[i].initialize(WebString::fromUTF8(test_devices[i].device_id),
214 test_devices[i].kind, 131 test_devices[i].kind,
215 WebString::fromUTF8(test_devices[i].label), 132 WebString::fromUTF8(test_devices[i].label),
216 WebString::fromUTF8(test_devices[i].group_id)); 133 WebString::fromUTF8(test_devices[i].group_id));
217 } 134 }
218 135
219 delegate_->PostTask(new MediaDevicesRequestTask(this, request, devices)); 136 delegate_->PostTask(new WebCallbackTask(
137 base::Bind(&WebMediaDevicesRequest::requestSucceeded,
138 base::Owned(new WebMediaDevicesRequest(request)), devices)));
220 } 139 }
221 140
222 void MockWebUserMediaClient::cancelMediaDevicesRequest( 141 void MockWebUserMediaClient::cancelMediaDevicesRequest(
223 const WebMediaDevicesRequest&) { 142 const WebMediaDevicesRequest&) {
224 } 143 }
225 144
226 void MockWebUserMediaClient::requestSources( 145 void MockWebUserMediaClient::requestSources(
227 const blink::WebMediaStreamTrackSourcesRequest& request) { 146 const blink::WebMediaStreamTrackSourcesRequest& request) {
228 struct { 147 struct {
229 const char* id; 148 const char* id;
(...skipping 16 matching lines...) Expand all
246 }; 165 };
247 166
248 WebVector<WebSourceInfo> sources(arraysize(test_sources)); 167 WebVector<WebSourceInfo> sources(arraysize(test_sources));
249 for (size_t i = 0; i < arraysize(test_sources); ++i) { 168 for (size_t i = 0; i < arraysize(test_sources); ++i) {
250 sources[i].initialize(WebString::fromUTF8(test_sources[i].id), 169 sources[i].initialize(WebString::fromUTF8(test_sources[i].id),
251 test_sources[i].kind, 170 test_sources[i].kind,
252 WebString::fromUTF8(test_sources[i].label), 171 WebString::fromUTF8(test_sources[i].label),
253 test_sources[i].facing); 172 test_sources[i].facing);
254 } 173 }
255 174
256 delegate_->PostTask(new SourcesRequestTask(this, request, sources)); 175 delegate_->PostTask(new WebCallbackTask(base::Bind(
176 &WebMediaStreamTrackSourcesRequest::requestSucceeded,
177 base::Owned(new WebMediaStreamTrackSourcesRequest(request)), sources)));
257 } 178 }
258 179
259 } // namespace test_runner 180 } // namespace test_runner
OLDNEW
« no previous file with comments | « components/test_runner/mock_web_user_media_client.h ('k') | components/test_runner/mock_webrtc_data_channel_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698