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

Side by Side Diff: android_webview/native/permission/permission_request_handler_unittest.cc

Issue 1552723002: Convert Pass()→std::move() in //android_webview (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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 | « android_webview/native/permission/permission_request_handler.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 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 "android_webview/native/permission/permission_request_handler.h"
6
7 #include <utility>
8
5 #include "android_webview/native/permission/aw_permission_request.h" 9 #include "android_webview/native/permission/aw_permission_request.h"
6 #include "android_webview/native/permission/aw_permission_request_delegate.h" 10 #include "android_webview/native/permission/aw_permission_request_delegate.h"
7 #include "android_webview/native/permission/permission_request_handler.h"
8 #include "android_webview/native/permission/permission_request_handler_client.h" 11 #include "android_webview/native/permission/permission_request_handler_client.h"
9 #include "base/bind.h" 12 #include "base/bind.h"
10 #include "base/callback.h" 13 #include "base/callback.h"
11 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
12 15
13 namespace android_webview { 16 namespace android_webview {
14 17
15 class TestAwPermissionRequestDelegate : public AwPermissionRequestDelegate { 18 class TestAwPermissionRequestDelegate : public AwPermissionRequestDelegate {
16 public: 19 public:
17 TestAwPermissionRequestDelegate(const GURL& origin, 20 TestAwPermissionRequestDelegate(const GURL& origin,
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 base::Unretained(this)))); 142 base::Unretained(this))));
140 } 143 }
141 144
142 const GURL& origin() { 145 const GURL& origin() {
143 return origin_; 146 return origin_;
144 } 147 }
145 148
146 int64_t resources() { return resources_; } 149 int64_t resources() { return resources_; }
147 150
148 scoped_ptr<AwPermissionRequestDelegate> delegate() { 151 scoped_ptr<AwPermissionRequestDelegate> delegate() {
149 return delegate_.Pass(); 152 return std::move(delegate_);
150 } 153 }
151 154
152 TestPermissionRequestHandler* handler() { 155 TestPermissionRequestHandler* handler() {
153 return &handler_; 156 return &handler_;
154 } 157 }
155 158
156 TestPermissionRequestHandlerClient* client() { 159 TestPermissionRequestHandlerClient* client() {
157 return &client_; 160 return &client_;
158 } 161 }
159 162
160 bool allowed() { 163 bool allowed() {
161 return allowed_; 164 return allowed_;
162 } 165 }
163 166
164 private: 167 private:
165 GURL origin_; 168 GURL origin_;
166 int64_t resources_; 169 int64_t resources_;
167 scoped_ptr<AwPermissionRequestDelegate> delegate_; 170 scoped_ptr<AwPermissionRequestDelegate> delegate_;
168 TestPermissionRequestHandlerClient client_; 171 TestPermissionRequestHandlerClient client_;
169 TestPermissionRequestHandler handler_; 172 TestPermissionRequestHandler handler_;
170 bool allowed_; 173 bool allowed_;
171 }; 174 };
172 175
173 TEST_F(PermissionRequestHandlerTest, TestPermissionGranted) { 176 TEST_F(PermissionRequestHandlerTest, TestPermissionGranted) {
174 handler()->SendRequest(delegate().Pass()); 177 handler()->SendRequest(delegate());
175 // Verify Handler store the request correctly. 178 // Verify Handler store the request correctly.
176 ASSERT_EQ(1u, handler()->requests().size()); 179 ASSERT_EQ(1u, handler()->requests().size());
177 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin()); 180 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin());
178 EXPECT_EQ(resources(), handler()->requests()[0]->GetResources()); 181 EXPECT_EQ(resources(), handler()->requests()[0]->GetResources());
179 182
180 // Verify client's onPermissionRequest was called 183 // Verify client's onPermissionRequest was called
181 EXPECT_EQ(origin(), client()->request()->GetOrigin()); 184 EXPECT_EQ(origin(), client()->request()->GetOrigin());
182 EXPECT_EQ(resources(), client()->request()->GetResources()); 185 EXPECT_EQ(resources(), client()->request()->GetResources());
183 186
184 // Simulate the grant request. 187 // Simulate the grant request.
185 client()->Grant(); 188 client()->Grant();
186 // Verify the request is notified as granted 189 // Verify the request is notified as granted
187 EXPECT_TRUE(allowed()); 190 EXPECT_TRUE(allowed());
188 handler()->PruneRequests(); 191 handler()->PruneRequests();
189 // Verify the weak reference in handler was removed. 192 // Verify the weak reference in handler was removed.
190 EXPECT_TRUE(handler()->requests().empty()); 193 EXPECT_TRUE(handler()->requests().empty());
191 } 194 }
192 195
193 TEST_F(PermissionRequestHandlerTest, TestPermissionDenied) { 196 TEST_F(PermissionRequestHandlerTest, TestPermissionDenied) {
194 handler()->SendRequest(delegate().Pass()); 197 handler()->SendRequest(delegate());
195 // Verify Handler store the request correctly. 198 // Verify Handler store the request correctly.
196 ASSERT_EQ(1u, handler()->requests().size()); 199 ASSERT_EQ(1u, handler()->requests().size());
197 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin()); 200 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin());
198 EXPECT_EQ(resources(), handler()->requests()[0]->GetResources()); 201 EXPECT_EQ(resources(), handler()->requests()[0]->GetResources());
199 202
200 // Verify client's onPermissionRequest was called 203 // Verify client's onPermissionRequest was called
201 EXPECT_EQ(origin(), client()->request()->GetOrigin()); 204 EXPECT_EQ(origin(), client()->request()->GetOrigin());
202 EXPECT_EQ(resources(), client()->request()->GetResources()); 205 EXPECT_EQ(resources(), client()->request()->GetResources());
203 206
204 // Simulate the deny request. 207 // Simulate the deny request.
205 client()->Deny(); 208 client()->Deny();
206 // Verify the request is notified as granted 209 // Verify the request is notified as granted
207 EXPECT_FALSE(allowed()); 210 EXPECT_FALSE(allowed());
208 handler()->PruneRequests(); 211 handler()->PruneRequests();
209 // Verify the weak reference in handler was removed. 212 // Verify the weak reference in handler was removed.
210 EXPECT_TRUE(handler()->requests().empty()); 213 EXPECT_TRUE(handler()->requests().empty());
211 } 214 }
212 215
213 TEST_F(PermissionRequestHandlerTest, TestMultiplePermissionRequest) { 216 TEST_F(PermissionRequestHandlerTest, TestMultiplePermissionRequest) {
214 GURL origin1 = GURL("http://a.google.com"); 217 GURL origin1 = GURL("http://a.google.com");
215 int64_t resources1 = AwPermissionRequest::Geolocation; 218 int64_t resources1 = AwPermissionRequest::Geolocation;
216 219
217 scoped_ptr<AwPermissionRequestDelegate> delegate1; 220 scoped_ptr<AwPermissionRequestDelegate> delegate1;
218 delegate1.reset(new TestAwPermissionRequestDelegate( 221 delegate1.reset(new TestAwPermissionRequestDelegate(
219 origin1, resources1, 222 origin1, resources1,
220 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, 223 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult,
221 base::Unretained(this)))); 224 base::Unretained(this))));
222 225
223 // Send 1st request 226 // Send 1st request
224 handler()->SendRequest(delegate().Pass()); 227 handler()->SendRequest(delegate());
225 // Verify Handler store the request correctly. 228 // Verify Handler store the request correctly.
226 ASSERT_EQ(1u, handler()->requests().size()); 229 ASSERT_EQ(1u, handler()->requests().size());
227 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin()); 230 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin());
228 EXPECT_EQ(resources(), handler()->requests()[0]->GetResources()); 231 EXPECT_EQ(resources(), handler()->requests()[0]->GetResources());
229 // Verify client's onPermissionRequest was called 232 // Verify client's onPermissionRequest was called
230 EXPECT_EQ(origin(), client()->request()->GetOrigin()); 233 EXPECT_EQ(origin(), client()->request()->GetOrigin());
231 EXPECT_EQ(resources(), client()->request()->GetResources()); 234 EXPECT_EQ(resources(), client()->request()->GetResources());
232 235
233 // Send 2nd request 236 // Send 2nd request
234 handler()->SendRequest(delegate1.Pass()); 237 handler()->SendRequest(std::move(delegate1));
235 // Verify Handler store the request correctly. 238 // Verify Handler store the request correctly.
236 ASSERT_EQ(2u, handler()->requests().size()); 239 ASSERT_EQ(2u, handler()->requests().size());
237 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin()); 240 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin());
238 EXPECT_EQ(resources(), handler()->requests()[0]->GetResources()); 241 EXPECT_EQ(resources(), handler()->requests()[0]->GetResources());
239 EXPECT_EQ(origin1, handler()->requests()[1]->GetOrigin()); 242 EXPECT_EQ(origin1, handler()->requests()[1]->GetOrigin());
240 EXPECT_EQ(resources1, handler()->requests()[1]->GetResources()); 243 EXPECT_EQ(resources1, handler()->requests()[1]->GetResources());
241 // Verify client's onPermissionRequest was called 244 // Verify client's onPermissionRequest was called
242 EXPECT_EQ(origin1, client()->request()->GetOrigin()); 245 EXPECT_EQ(origin1, client()->request()->GetOrigin());
243 EXPECT_EQ(resources1, client()->request()->GetResources()); 246 EXPECT_EQ(resources1, client()->request()->GetResources());
244 247
245 // Send 3rd request which has same origin and resources as first one. 248 // Send 3rd request which has same origin and resources as first one.
246 delegate1.reset(new TestAwPermissionRequestDelegate(origin(), resources(), 249 delegate1.reset(new TestAwPermissionRequestDelegate(origin(), resources(),
247 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, 250 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult,
248 base::Unretained(this)))); 251 base::Unretained(this))));
249 handler()->SendRequest(delegate1.Pass()); 252 handler()->SendRequest(std::move(delegate1));
250 // Verify Handler store the request correctly. 253 // Verify Handler store the request correctly.
251 ASSERT_EQ(3u, handler()->requests().size()); 254 ASSERT_EQ(3u, handler()->requests().size());
252 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin()); 255 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin());
253 EXPECT_EQ(resources(), handler()->requests()[0]->GetResources()); 256 EXPECT_EQ(resources(), handler()->requests()[0]->GetResources());
254 EXPECT_EQ(origin1, handler()->requests()[1]->GetOrigin()); 257 EXPECT_EQ(origin1, handler()->requests()[1]->GetOrigin());
255 EXPECT_EQ(resources1, handler()->requests()[1]->GetResources()); 258 EXPECT_EQ(resources1, handler()->requests()[1]->GetResources());
256 EXPECT_EQ(origin(), handler()->requests()[2]->GetOrigin()); 259 EXPECT_EQ(origin(), handler()->requests()[2]->GetOrigin());
257 EXPECT_EQ(resources(), handler()->requests()[2]->GetResources()); 260 EXPECT_EQ(resources(), handler()->requests()[2]->GetResources());
258 // Verify client's onPermissionRequest was called 261 // Verify client's onPermissionRequest was called
259 EXPECT_EQ(origin(), client()->request()->GetOrigin()); 262 EXPECT_EQ(origin(), client()->request()->GetOrigin());
260 EXPECT_EQ(resources(), client()->request()->GetResources()); 263 EXPECT_EQ(resources(), client()->request()->GetResources());
261 264
262 // Cancel the request. 265 // Cancel the request.
263 handler()->CancelRequest(origin(), resources()); 266 handler()->CancelRequest(origin(), resources());
264 // Verify client's OnPermissionRequestCancled() was called. 267 // Verify client's OnPermissionRequestCancled() was called.
265 EXPECT_EQ(origin(), client()->canceled_permission().origin); 268 EXPECT_EQ(origin(), client()->canceled_permission().origin);
266 EXPECT_EQ(resources(), client()->canceled_permission().resources); 269 EXPECT_EQ(resources(), client()->canceled_permission().resources);
267 // Verify Handler store the request correctly, the 1st and 3rd were removed. 270 // Verify Handler store the request correctly, the 1st and 3rd were removed.
268 handler()->PruneRequests(); 271 handler()->PruneRequests();
269 ASSERT_EQ(1u, handler()->requests().size()); 272 ASSERT_EQ(1u, handler()->requests().size());
270 EXPECT_EQ(origin1, handler()->requests()[0]->GetOrigin()); 273 EXPECT_EQ(origin1, handler()->requests()[0]->GetOrigin());
271 EXPECT_EQ(resources1, handler()->requests()[0]->GetResources()); 274 EXPECT_EQ(resources1, handler()->requests()[0]->GetResources());
272 } 275 }
273 276
274 TEST_F(PermissionRequestHandlerTest, TestPreauthorizePermission) { 277 TEST_F(PermissionRequestHandlerTest, TestPreauthorizePermission) {
275 handler()->PreauthorizePermission(origin(), resources()); 278 handler()->PreauthorizePermission(origin(), resources());
276 279
277 // Permission should granted without asking PermissionRequestHandlerClient. 280 // Permission should granted without asking PermissionRequestHandlerClient.
278 handler()->SendRequest(delegate().Pass()); 281 handler()->SendRequest(delegate());
279 EXPECT_TRUE(allowed()); 282 EXPECT_TRUE(allowed());
280 EXPECT_EQ(NULL, client()->request()); 283 EXPECT_EQ(NULL, client()->request());
281 284
282 // Only ask one preauthorized resource, permission should granted 285 // Only ask one preauthorized resource, permission should granted
283 // without asking PermissionRequestHandlerClient. 286 // without asking PermissionRequestHandlerClient.
284 scoped_ptr<AwPermissionRequestDelegate> delegate; 287 scoped_ptr<AwPermissionRequestDelegate> delegate;
285 delegate.reset(new TestAwPermissionRequestDelegate( 288 delegate.reset(new TestAwPermissionRequestDelegate(
286 origin(), AwPermissionRequest::AudioCapture, 289 origin(), AwPermissionRequest::AudioCapture,
287 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, 290 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult,
288 base::Unretained(this)))); 291 base::Unretained(this))));
289 client()->Reset(); 292 client()->Reset();
290 handler()->SendRequest(delegate.Pass()); 293 handler()->SendRequest(std::move(delegate));
291 EXPECT_TRUE(allowed()); 294 EXPECT_TRUE(allowed());
292 EXPECT_EQ(NULL, client()->request()); 295 EXPECT_EQ(NULL, client()->request());
293 } 296 }
294 297
295 TEST_F(PermissionRequestHandlerTest, TestOriginNotPreauthorized) { 298 TEST_F(PermissionRequestHandlerTest, TestOriginNotPreauthorized) {
296 handler()->PreauthorizePermission(origin(), resources()); 299 handler()->PreauthorizePermission(origin(), resources());
297 300
298 // Ask the origin which wasn't preauthorized. 301 // Ask the origin which wasn't preauthorized.
299 GURL origin ("http://a.google.com/a/b"); 302 GURL origin ("http://a.google.com/a/b");
300 scoped_ptr<AwPermissionRequestDelegate> delegate; 303 scoped_ptr<AwPermissionRequestDelegate> delegate;
301 int64_t requested_resources = AwPermissionRequest::AudioCapture; 304 int64_t requested_resources = AwPermissionRequest::AudioCapture;
302 delegate.reset(new TestAwPermissionRequestDelegate( 305 delegate.reset(new TestAwPermissionRequestDelegate(
303 origin, requested_resources, 306 origin, requested_resources,
304 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, 307 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult,
305 base::Unretained(this)))); 308 base::Unretained(this))));
306 handler()->SendRequest(delegate.Pass()); 309 handler()->SendRequest(std::move(delegate));
307 EXPECT_EQ(origin, handler()->requests()[0]->GetOrigin()); 310 EXPECT_EQ(origin, handler()->requests()[0]->GetOrigin());
308 EXPECT_EQ(requested_resources, handler()->requests()[0]->GetResources()); 311 EXPECT_EQ(requested_resources, handler()->requests()[0]->GetResources());
309 client()->Grant(); 312 client()->Grant();
310 EXPECT_TRUE(allowed()); 313 EXPECT_TRUE(allowed());
311 } 314 }
312 315
313 TEST_F(PermissionRequestHandlerTest, TestResourcesNotPreauthorized) { 316 TEST_F(PermissionRequestHandlerTest, TestResourcesNotPreauthorized) {
314 handler()->PreauthorizePermission(origin(), resources()); 317 handler()->PreauthorizePermission(origin(), resources());
315 318
316 // Ask the resources which weren't preauthorized. 319 // Ask the resources which weren't preauthorized.
317 scoped_ptr<AwPermissionRequestDelegate> delegate; 320 scoped_ptr<AwPermissionRequestDelegate> delegate;
318 int64_t requested_resources = 321 int64_t requested_resources =
319 AwPermissionRequest::AudioCapture | AwPermissionRequest::Geolocation; 322 AwPermissionRequest::AudioCapture | AwPermissionRequest::Geolocation;
320 delegate.reset(new TestAwPermissionRequestDelegate( 323 delegate.reset(new TestAwPermissionRequestDelegate(
321 origin(), requested_resources, 324 origin(), requested_resources,
322 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, 325 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult,
323 base::Unretained(this)))); 326 base::Unretained(this))));
324 327
325 handler()->SendRequest(delegate.Pass()); 328 handler()->SendRequest(std::move(delegate));
326 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin()); 329 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin());
327 EXPECT_EQ(requested_resources, handler()->requests()[0]->GetResources()); 330 EXPECT_EQ(requested_resources, handler()->requests()[0]->GetResources());
328 client()->Deny(); 331 client()->Deny();
329 EXPECT_FALSE(allowed()); 332 EXPECT_FALSE(allowed());
330 } 333 }
331 334
332 TEST_F(PermissionRequestHandlerTest, TestPreauthorizeMultiplePermission) { 335 TEST_F(PermissionRequestHandlerTest, TestPreauthorizeMultiplePermission) {
333 handler()->PreauthorizePermission(origin(), resources()); 336 handler()->PreauthorizePermission(origin(), resources());
334 // Preauthorize another permission. 337 // Preauthorize another permission.
335 GURL origin ("http://a.google.com/a/b"); 338 GURL origin ("http://a.google.com/a/b");
336 handler()->PreauthorizePermission(origin, AwPermissionRequest::Geolocation); 339 handler()->PreauthorizePermission(origin, AwPermissionRequest::Geolocation);
337 GURL origin_hostname ("http://a.google.com/"); 340 GURL origin_hostname ("http://a.google.com/");
338 scoped_ptr<AwPermissionRequestDelegate> delegate; 341 scoped_ptr<AwPermissionRequestDelegate> delegate;
339 delegate.reset(new TestAwPermissionRequestDelegate( 342 delegate.reset(new TestAwPermissionRequestDelegate(
340 origin_hostname, AwPermissionRequest::Geolocation, 343 origin_hostname, AwPermissionRequest::Geolocation,
341 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, 344 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult,
342 base::Unretained(this)))); 345 base::Unretained(this))));
343 handler()->SendRequest(delegate.Pass()); 346 handler()->SendRequest(std::move(delegate));
344 EXPECT_TRUE(allowed()); 347 EXPECT_TRUE(allowed());
345 EXPECT_EQ(NULL, client()->request()); 348 EXPECT_EQ(NULL, client()->request());
346 } 349 }
347 350
348 } // android_webview 351 } // android_webview
OLDNEW
« no previous file with comments | « android_webview/native/permission/permission_request_handler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698