OLD | NEW |
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" | 5 #include "android_webview/native/permission/permission_request_handler.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "android_webview/native/permission/aw_permission_request.h" | 9 #include "android_webview/native/permission/aw_permission_request.h" |
10 #include "android_webview/native/permission/aw_permission_request_delegate.h" | 10 #include "android_webview/native/permission/aw_permission_request_delegate.h" |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 &PermissionRequestHandlerTest::NotifyRequestResult, | 141 &PermissionRequestHandlerTest::NotifyRequestResult, |
142 base::Unretained(this)))); | 142 base::Unretained(this)))); |
143 } | 143 } |
144 | 144 |
145 const GURL& origin() { | 145 const GURL& origin() { |
146 return origin_; | 146 return origin_; |
147 } | 147 } |
148 | 148 |
149 int64_t resources() { return resources_; } | 149 int64_t resources() { return resources_; } |
150 | 150 |
151 scoped_ptr<AwPermissionRequestDelegate> delegate() { | 151 std::unique_ptr<AwPermissionRequestDelegate> delegate() { |
152 return std::move(delegate_); | 152 return std::move(delegate_); |
153 } | 153 } |
154 | 154 |
155 TestPermissionRequestHandler* handler() { | 155 TestPermissionRequestHandler* handler() { |
156 return &handler_; | 156 return &handler_; |
157 } | 157 } |
158 | 158 |
159 TestPermissionRequestHandlerClient* client() { | 159 TestPermissionRequestHandlerClient* client() { |
160 return &client_; | 160 return &client_; |
161 } | 161 } |
162 | 162 |
163 bool allowed() { | 163 bool allowed() { |
164 return allowed_; | 164 return allowed_; |
165 } | 165 } |
166 | 166 |
167 private: | 167 private: |
168 GURL origin_; | 168 GURL origin_; |
169 int64_t resources_; | 169 int64_t resources_; |
170 scoped_ptr<AwPermissionRequestDelegate> delegate_; | 170 std::unique_ptr<AwPermissionRequestDelegate> delegate_; |
171 TestPermissionRequestHandlerClient client_; | 171 TestPermissionRequestHandlerClient client_; |
172 TestPermissionRequestHandler handler_; | 172 TestPermissionRequestHandler handler_; |
173 bool allowed_; | 173 bool allowed_; |
174 }; | 174 }; |
175 | 175 |
176 TEST_F(PermissionRequestHandlerTest, TestPermissionGranted) { | 176 TEST_F(PermissionRequestHandlerTest, TestPermissionGranted) { |
177 handler()->SendRequest(delegate()); | 177 handler()->SendRequest(delegate()); |
178 // Verify Handler store the request correctly. | 178 // Verify Handler store the request correctly. |
179 ASSERT_EQ(1u, handler()->requests().size()); | 179 ASSERT_EQ(1u, handler()->requests().size()); |
180 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin()); | 180 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin()); |
(...skipping 29 matching lines...) Expand all Loading... |
210 EXPECT_FALSE(allowed()); | 210 EXPECT_FALSE(allowed()); |
211 handler()->PruneRequests(); | 211 handler()->PruneRequests(); |
212 // Verify the weak reference in handler was removed. | 212 // Verify the weak reference in handler was removed. |
213 EXPECT_TRUE(handler()->requests().empty()); | 213 EXPECT_TRUE(handler()->requests().empty()); |
214 } | 214 } |
215 | 215 |
216 TEST_F(PermissionRequestHandlerTest, TestMultiplePermissionRequest) { | 216 TEST_F(PermissionRequestHandlerTest, TestMultiplePermissionRequest) { |
217 GURL origin1 = GURL("http://a.google.com"); | 217 GURL origin1 = GURL("http://a.google.com"); |
218 int64_t resources1 = AwPermissionRequest::Geolocation; | 218 int64_t resources1 = AwPermissionRequest::Geolocation; |
219 | 219 |
220 scoped_ptr<AwPermissionRequestDelegate> delegate1; | 220 std::unique_ptr<AwPermissionRequestDelegate> delegate1; |
221 delegate1.reset(new TestAwPermissionRequestDelegate( | 221 delegate1.reset(new TestAwPermissionRequestDelegate( |
222 origin1, resources1, | 222 origin1, resources1, |
223 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, | 223 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, |
224 base::Unretained(this)))); | 224 base::Unretained(this)))); |
225 | 225 |
226 // Send 1st request | 226 // Send 1st request |
227 handler()->SendRequest(delegate()); | 227 handler()->SendRequest(delegate()); |
228 // Verify Handler store the request correctly. | 228 // Verify Handler store the request correctly. |
229 ASSERT_EQ(1u, handler()->requests().size()); | 229 ASSERT_EQ(1u, handler()->requests().size()); |
230 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin()); | 230 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin()); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
277 TEST_F(PermissionRequestHandlerTest, TestPreauthorizePermission) { | 277 TEST_F(PermissionRequestHandlerTest, TestPreauthorizePermission) { |
278 handler()->PreauthorizePermission(origin(), resources()); | 278 handler()->PreauthorizePermission(origin(), resources()); |
279 | 279 |
280 // Permission should granted without asking PermissionRequestHandlerClient. | 280 // Permission should granted without asking PermissionRequestHandlerClient. |
281 handler()->SendRequest(delegate()); | 281 handler()->SendRequest(delegate()); |
282 EXPECT_TRUE(allowed()); | 282 EXPECT_TRUE(allowed()); |
283 EXPECT_EQ(NULL, client()->request()); | 283 EXPECT_EQ(NULL, client()->request()); |
284 | 284 |
285 // Only ask one preauthorized resource, permission should granted | 285 // Only ask one preauthorized resource, permission should granted |
286 // without asking PermissionRequestHandlerClient. | 286 // without asking PermissionRequestHandlerClient. |
287 scoped_ptr<AwPermissionRequestDelegate> delegate; | 287 std::unique_ptr<AwPermissionRequestDelegate> delegate; |
288 delegate.reset(new TestAwPermissionRequestDelegate( | 288 delegate.reset(new TestAwPermissionRequestDelegate( |
289 origin(), AwPermissionRequest::AudioCapture, | 289 origin(), AwPermissionRequest::AudioCapture, |
290 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, | 290 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, |
291 base::Unretained(this)))); | 291 base::Unretained(this)))); |
292 client()->Reset(); | 292 client()->Reset(); |
293 handler()->SendRequest(std::move(delegate)); | 293 handler()->SendRequest(std::move(delegate)); |
294 EXPECT_TRUE(allowed()); | 294 EXPECT_TRUE(allowed()); |
295 EXPECT_EQ(NULL, client()->request()); | 295 EXPECT_EQ(NULL, client()->request()); |
296 } | 296 } |
297 | 297 |
298 TEST_F(PermissionRequestHandlerTest, TestOriginNotPreauthorized) { | 298 TEST_F(PermissionRequestHandlerTest, TestOriginNotPreauthorized) { |
299 handler()->PreauthorizePermission(origin(), resources()); | 299 handler()->PreauthorizePermission(origin(), resources()); |
300 | 300 |
301 // Ask the origin which wasn't preauthorized. | 301 // Ask the origin which wasn't preauthorized. |
302 GURL origin ("http://a.google.com/a/b"); | 302 GURL origin ("http://a.google.com/a/b"); |
303 scoped_ptr<AwPermissionRequestDelegate> delegate; | 303 std::unique_ptr<AwPermissionRequestDelegate> delegate; |
304 int64_t requested_resources = AwPermissionRequest::AudioCapture; | 304 int64_t requested_resources = AwPermissionRequest::AudioCapture; |
305 delegate.reset(new TestAwPermissionRequestDelegate( | 305 delegate.reset(new TestAwPermissionRequestDelegate( |
306 origin, requested_resources, | 306 origin, requested_resources, |
307 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, | 307 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, |
308 base::Unretained(this)))); | 308 base::Unretained(this)))); |
309 handler()->SendRequest(std::move(delegate)); | 309 handler()->SendRequest(std::move(delegate)); |
310 EXPECT_EQ(origin, handler()->requests()[0]->GetOrigin()); | 310 EXPECT_EQ(origin, handler()->requests()[0]->GetOrigin()); |
311 EXPECT_EQ(requested_resources, handler()->requests()[0]->GetResources()); | 311 EXPECT_EQ(requested_resources, handler()->requests()[0]->GetResources()); |
312 client()->Grant(); | 312 client()->Grant(); |
313 EXPECT_TRUE(allowed()); | 313 EXPECT_TRUE(allowed()); |
314 } | 314 } |
315 | 315 |
316 TEST_F(PermissionRequestHandlerTest, TestResourcesNotPreauthorized) { | 316 TEST_F(PermissionRequestHandlerTest, TestResourcesNotPreauthorized) { |
317 handler()->PreauthorizePermission(origin(), resources()); | 317 handler()->PreauthorizePermission(origin(), resources()); |
318 | 318 |
319 // Ask the resources which weren't preauthorized. | 319 // Ask the resources which weren't preauthorized. |
320 scoped_ptr<AwPermissionRequestDelegate> delegate; | 320 std::unique_ptr<AwPermissionRequestDelegate> delegate; |
321 int64_t requested_resources = | 321 int64_t requested_resources = |
322 AwPermissionRequest::AudioCapture | AwPermissionRequest::Geolocation; | 322 AwPermissionRequest::AudioCapture | AwPermissionRequest::Geolocation; |
323 delegate.reset(new TestAwPermissionRequestDelegate( | 323 delegate.reset(new TestAwPermissionRequestDelegate( |
324 origin(), requested_resources, | 324 origin(), requested_resources, |
325 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, | 325 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, |
326 base::Unretained(this)))); | 326 base::Unretained(this)))); |
327 | 327 |
328 handler()->SendRequest(std::move(delegate)); | 328 handler()->SendRequest(std::move(delegate)); |
329 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin()); | 329 EXPECT_EQ(origin(), handler()->requests()[0]->GetOrigin()); |
330 EXPECT_EQ(requested_resources, handler()->requests()[0]->GetResources()); | 330 EXPECT_EQ(requested_resources, handler()->requests()[0]->GetResources()); |
331 client()->Deny(); | 331 client()->Deny(); |
332 EXPECT_FALSE(allowed()); | 332 EXPECT_FALSE(allowed()); |
333 } | 333 } |
334 | 334 |
335 TEST_F(PermissionRequestHandlerTest, TestPreauthorizeMultiplePermission) { | 335 TEST_F(PermissionRequestHandlerTest, TestPreauthorizeMultiplePermission) { |
336 handler()->PreauthorizePermission(origin(), resources()); | 336 handler()->PreauthorizePermission(origin(), resources()); |
337 // Preauthorize another permission. | 337 // Preauthorize another permission. |
338 GURL origin ("http://a.google.com/a/b"); | 338 GURL origin ("http://a.google.com/a/b"); |
339 handler()->PreauthorizePermission(origin, AwPermissionRequest::Geolocation); | 339 handler()->PreauthorizePermission(origin, AwPermissionRequest::Geolocation); |
340 GURL origin_hostname ("http://a.google.com/"); | 340 GURL origin_hostname ("http://a.google.com/"); |
341 scoped_ptr<AwPermissionRequestDelegate> delegate; | 341 std::unique_ptr<AwPermissionRequestDelegate> delegate; |
342 delegate.reset(new TestAwPermissionRequestDelegate( | 342 delegate.reset(new TestAwPermissionRequestDelegate( |
343 origin_hostname, AwPermissionRequest::Geolocation, | 343 origin_hostname, AwPermissionRequest::Geolocation, |
344 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, | 344 base::Bind(&PermissionRequestHandlerTest::NotifyRequestResult, |
345 base::Unretained(this)))); | 345 base::Unretained(this)))); |
346 handler()->SendRequest(std::move(delegate)); | 346 handler()->SendRequest(std::move(delegate)); |
347 EXPECT_TRUE(allowed()); | 347 EXPECT_TRUE(allowed()); |
348 EXPECT_EQ(NULL, client()->request()); | 348 EXPECT_EQ(NULL, client()->request()); |
349 } | 349 } |
350 | 350 |
351 } // android_webview | 351 } // android_webview |
OLD | NEW |