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

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: Fixing a test. 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 public: 42 public:
131 int foo; 43 int foo;
132 }; 44 };
133 45
134 MockWebUserMediaClient::MockWebUserMediaClient(WebTestDelegate* delegate) 46 MockWebUserMediaClient::MockWebUserMediaClient(WebTestDelegate* delegate)
135 : delegate_(delegate) {} 47 : delegate_(delegate), weak_factory_(this) {}
48
49 MockWebUserMediaClient::~MockWebUserMediaClient() {}
136 50
137 void MockWebUserMediaClient::requestUserMedia( 51 void MockWebUserMediaClient::requestUserMedia(
138 const WebUserMediaRequest& stream_request) { 52 const WebUserMediaRequest& stream_request) {
139 DCHECK(!stream_request.isNull()); 53 DCHECK(!stream_request.isNull());
140 WebUserMediaRequest request = stream_request; 54 WebUserMediaRequest request = stream_request;
141 55
142 if (request.ownerDocument().isNull() || !request.ownerDocument().frame()) { 56 if (request.ownerDocument().isNull() || !request.ownerDocument().frame()) {
143 delegate_->PostTask( 57 delegate_->PostTask(new WebCallbackTask(base::Bind(
144 new UserMediaRequestPermissionDeniedTask(this, request)); 58 &WebUserMediaRequest::requestFailed,
145 return; 59 base::Owned(new WebUserMediaRequest(request)), WebString())));
60 return;
146 } 61 }
147 62
148 WebMediaStream stream; 63 WebMediaStream stream;
149 stream.initialize(WebVector<WebMediaStreamTrack>(), 64 stream.initialize(WebVector<WebMediaStreamTrack>(),
150 WebVector<WebMediaStreamTrack>()); 65 WebVector<WebMediaStreamTrack>());
151 stream.setExtraData(new MockExtraData()); 66 stream.setExtraData(new MockExtraData());
152 67
153 if (request.audio() && 68 if (request.audio() &&
154 !delegate_->AddMediaStreamAudioSourceAndTrack(&stream)) { 69 !delegate_->AddMediaStreamAudioSourceAndTrack(&stream)) {
155 WebMediaStreamSource source; 70 WebMediaStreamSource source;
(...skipping 12 matching lines...) Expand all
168 WebMediaStreamSource source; 83 WebMediaStreamSource source;
169 source.initialize("MockVideoDevice#1", 84 source.initialize("MockVideoDevice#1",
170 WebMediaStreamSource::TypeVideo, 85 WebMediaStreamSource::TypeVideo,
171 "Mock video device", 86 "Mock video device",
172 false /* remote */, true /* readonly */); 87 false /* remote */, true /* readonly */);
173 WebMediaStreamTrack web_track; 88 WebMediaStreamTrack web_track;
174 web_track.initialize(source); 89 web_track.initialize(source);
175 stream.addTrack(web_track); 90 stream.addTrack(web_track);
176 } 91 }
177 92
178 delegate_->PostTask(new UserMediaRequestTask(this, request, stream)); 93 delegate_->PostTask(new WebCallbackTask(
94 base::Bind(&WebUserMediaRequest::requestSucceeded,
95 base::Owned(new WebUserMediaRequest(request)), stream)));
179 } 96 }
180 97
181 void MockWebUserMediaClient::cancelUserMediaRequest( 98 void MockWebUserMediaClient::cancelUserMediaRequest(
182 const WebUserMediaRequest&) { 99 const WebUserMediaRequest&) {
183 } 100 }
184 101
185 void MockWebUserMediaClient::requestMediaDevices( 102 void MockWebUserMediaClient::requestMediaDevices(
186 const WebMediaDevicesRequest& request) { 103 const WebMediaDevicesRequest& request) {
187 struct { 104 struct {
188 const char* device_id; 105 const char* device_id;
(...skipping 22 matching lines...) Expand all
211 }; 128 };
212 129
213 WebVector<WebMediaDeviceInfo> devices(arraysize(test_devices)); 130 WebVector<WebMediaDeviceInfo> devices(arraysize(test_devices));
214 for (size_t i = 0; i < arraysize(test_devices); ++i) { 131 for (size_t i = 0; i < arraysize(test_devices); ++i) {
215 devices[i].initialize(WebString::fromUTF8(test_devices[i].device_id), 132 devices[i].initialize(WebString::fromUTF8(test_devices[i].device_id),
216 test_devices[i].kind, 133 test_devices[i].kind,
217 WebString::fromUTF8(test_devices[i].label), 134 WebString::fromUTF8(test_devices[i].label),
218 WebString::fromUTF8(test_devices[i].group_id)); 135 WebString::fromUTF8(test_devices[i].group_id));
219 } 136 }
220 137
221 delegate_->PostTask(new MediaDevicesRequestTask(this, request, devices)); 138 delegate_->PostTask(new WebCallbackTask(
139 base::Bind(&WebMediaDevicesRequest::requestSucceeded,
140 base::Owned(new WebMediaDevicesRequest(request)), devices)));
222 } 141 }
223 142
224 void MockWebUserMediaClient::cancelMediaDevicesRequest( 143 void MockWebUserMediaClient::cancelMediaDevicesRequest(
225 const WebMediaDevicesRequest&) { 144 const WebMediaDevicesRequest&) {
226 } 145 }
227 146
228 void MockWebUserMediaClient::requestSources( 147 void MockWebUserMediaClient::requestSources(
229 const blink::WebMediaStreamTrackSourcesRequest& request) { 148 const blink::WebMediaStreamTrackSourcesRequest& request) {
230 struct { 149 struct {
231 const char* id; 150 const char* id;
(...skipping 16 matching lines...) Expand all
248 }; 167 };
249 168
250 WebVector<WebSourceInfo> sources(arraysize(test_sources)); 169 WebVector<WebSourceInfo> sources(arraysize(test_sources));
251 for (size_t i = 0; i < arraysize(test_sources); ++i) { 170 for (size_t i = 0; i < arraysize(test_sources); ++i) {
252 sources[i].initialize(WebString::fromUTF8(test_sources[i].id), 171 sources[i].initialize(WebString::fromUTF8(test_sources[i].id),
253 test_sources[i].kind, 172 test_sources[i].kind,
254 WebString::fromUTF8(test_sources[i].label), 173 WebString::fromUTF8(test_sources[i].label),
255 test_sources[i].facing); 174 test_sources[i].facing);
256 } 175 }
257 176
258 delegate_->PostTask(new SourcesRequestTask(this, request, sources)); 177 delegate_->PostTask(new WebCallbackTask(base::Bind(
178 &WebMediaStreamTrackSourcesRequest::requestSucceeded,
179 base::Owned(new WebMediaStreamTrackSourcesRequest(request)), sources)));
259 } 180 }
260 181
261 } // namespace test_runner 182 } // namespace test_runner
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698