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 "base/memory/scoped_ptr.h" | 5 #include "base/memory/scoped_ptr.h" |
6 #include "base/path_service.h" | 6 #include "base/path_service.h" |
7 #include "base/prefs/pref_service.h" | 7 #include "base/prefs/pref_service.h" |
8 #include "base/prefs/scoped_user_pref_update.h" | 8 #include "base/prefs/scoped_user_pref_update.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "chrome/browser/chrome_notification_types.h" | 10 #include "chrome/browser/chrome_notification_types.h" |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
183 profile_ = builder.Build(); | 183 profile_ = builder.Build(); |
184 supervised_user_service_ = | 184 supervised_user_service_ = |
185 SupervisedUserServiceFactory::GetForProfile(profile_.get()); | 185 SupervisedUserServiceFactory::GetForProfile(profile_.get()); |
186 } | 186 } |
187 | 187 |
188 void TearDown() override { profile_.reset(); } | 188 void TearDown() override { profile_.reset(); } |
189 | 189 |
190 ~SupervisedUserServiceTest() override {} | 190 ~SupervisedUserServiceTest() override {} |
191 | 191 |
192 protected: | 192 protected: |
193 void AddAccessRequest(const GURL& url, AsyncResultHolder* result_holder) { | 193 void AddURLAccessRequest(const GURL& url, AsyncResultHolder* result_holder) { |
194 supervised_user_service_->AddAccessRequest( | 194 supervised_user_service_->AddURLAccessRequest( |
195 url, base::Bind(&AsyncResultHolder::SetResult, | 195 url, base::Bind(&AsyncResultHolder::SetResult, |
196 base::Unretained(result_holder))); | 196 base::Unretained(result_holder))); |
197 } | 197 } |
198 | 198 |
199 content::TestBrowserThreadBundle thread_bundle_; | 199 content::TestBrowserThreadBundle thread_bundle_; |
200 scoped_ptr<TestingProfile> profile_; | 200 scoped_ptr<TestingProfile> profile_; |
201 SupervisedUserService* supervised_user_service_; | 201 SupervisedUserService* supervised_user_service_; |
202 }; | 202 }; |
203 | 203 |
204 } // namespace | 204 } // namespace |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 ASSERT_LT(index, requested_urls_.size()); | 242 ASSERT_LT(index, requested_urls_.size()); |
243 callbacks_[index].Run(result); | 243 callbacks_[index].Run(result); |
244 callbacks_.erase(callbacks_.begin() + index); | 244 callbacks_.erase(callbacks_.begin() + index); |
245 requested_urls_.erase(requested_urls_.begin() + index); | 245 requested_urls_.erase(requested_urls_.begin() + index); |
246 } | 246 } |
247 | 247 |
248 private: | 248 private: |
249 // PermissionRequestCreator: | 249 // PermissionRequestCreator: |
250 bool IsEnabled() const override { return enabled_; } | 250 bool IsEnabled() const override { return enabled_; } |
251 | 251 |
252 void CreatePermissionRequest(const GURL& url_requested, | 252 void CreateURLAccessRequest(const GURL& url_requested, |
253 const SuccessCallback& callback) override { | 253 const SuccessCallback& callback) override { |
254 ASSERT_TRUE(enabled_); | 254 ASSERT_TRUE(enabled_); |
255 requested_urls_.push_back(url_requested); | 255 requested_urls_.push_back(url_requested); |
256 callbacks_.push_back(callback); | 256 callbacks_.push_back(callback); |
257 } | 257 } |
258 | 258 |
| 259 void CreateExtensionUpdateRequest(const std::string& extension_id, |
| 260 const SuccessCallback& callback) override { |
| 261 FAIL(); |
| 262 } |
| 263 |
259 bool enabled_; | 264 bool enabled_; |
260 std::vector<GURL> requested_urls_; | 265 std::vector<GURL> requested_urls_; |
261 std::vector<SuccessCallback> callbacks_; | 266 std::vector<SuccessCallback> callbacks_; |
262 | 267 |
263 DISALLOW_COPY_AND_ASSIGN(MockPermissionRequestCreator); | 268 DISALLOW_COPY_AND_ASSIGN(MockPermissionRequestCreator); |
264 }; | 269 }; |
265 | 270 |
266 } // namespace | 271 } // namespace |
267 | 272 |
268 TEST_F(SupervisedUserServiceTest, CreatePermissionRequest) { | 273 TEST_F(SupervisedUserServiceTest, CreatePermissionRequest) { |
269 GURL url("http://www.example.com"); | 274 GURL url("http://www.example.com"); |
270 | 275 |
271 // Without any permission request creators, it should be disabled, and any | 276 // Without any permission request creators, it should be disabled, and any |
272 // AddAccessRequest() calls should fail. | 277 // AddURLAccessRequest() calls should fail. |
273 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled()); | 278 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled()); |
274 { | 279 { |
275 AsyncResultHolder result_holder; | 280 AsyncResultHolder result_holder; |
276 AddAccessRequest(url, &result_holder); | 281 AddURLAccessRequest(url, &result_holder); |
277 EXPECT_FALSE(result_holder.GetResult()); | 282 EXPECT_FALSE(result_holder.GetResult()); |
278 } | 283 } |
279 | 284 |
280 // Add a disabled permission request creator. This should not change anything. | 285 // Add a disabled permission request creator. This should not change anything. |
281 MockPermissionRequestCreator* creator = new MockPermissionRequestCreator; | 286 MockPermissionRequestCreator* creator = new MockPermissionRequestCreator; |
282 supervised_user_service_->AddPermissionRequestCreator( | 287 supervised_user_service_->AddPermissionRequestCreator( |
283 make_scoped_ptr(creator)); | 288 make_scoped_ptr(creator)); |
284 | 289 |
285 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled()); | 290 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled()); |
286 { | 291 { |
287 AsyncResultHolder result_holder; | 292 AsyncResultHolder result_holder; |
288 AddAccessRequest(url, &result_holder); | 293 AddURLAccessRequest(url, &result_holder); |
289 EXPECT_FALSE(result_holder.GetResult()); | 294 EXPECT_FALSE(result_holder.GetResult()); |
290 } | 295 } |
291 | 296 |
292 // Enable the permission request creator. This should enable permission | 297 // Enable the permission request creator. This should enable permission |
293 // requests and queue them up. | 298 // requests and queue them up. |
294 creator->set_enabled(true); | 299 creator->set_enabled(true); |
295 EXPECT_TRUE(supervised_user_service_->AccessRequestsEnabled()); | 300 EXPECT_TRUE(supervised_user_service_->AccessRequestsEnabled()); |
296 { | 301 { |
297 AsyncResultHolder result_holder; | 302 AsyncResultHolder result_holder; |
298 AddAccessRequest(url, &result_holder); | 303 AddURLAccessRequest(url, &result_holder); |
299 ASSERT_EQ(1u, creator->requested_urls().size()); | 304 ASSERT_EQ(1u, creator->requested_urls().size()); |
300 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); | 305 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); |
301 | 306 |
302 creator->AnswerRequest(0, true); | 307 creator->AnswerRequest(0, true); |
303 EXPECT_TRUE(result_holder.GetResult()); | 308 EXPECT_TRUE(result_holder.GetResult()); |
304 } | 309 } |
305 | 310 |
306 { | 311 { |
307 AsyncResultHolder result_holder; | 312 AsyncResultHolder result_holder; |
308 AddAccessRequest(url, &result_holder); | 313 AddURLAccessRequest(url, &result_holder); |
309 ASSERT_EQ(1u, creator->requested_urls().size()); | 314 ASSERT_EQ(1u, creator->requested_urls().size()); |
310 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); | 315 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); |
311 | 316 |
312 creator->AnswerRequest(0, false); | 317 creator->AnswerRequest(0, false); |
313 EXPECT_FALSE(result_holder.GetResult()); | 318 EXPECT_FALSE(result_holder.GetResult()); |
314 } | 319 } |
315 | 320 |
316 // Add a second permission request creator. | 321 // Add a second permission request creator. |
317 MockPermissionRequestCreator* creator_2 = new MockPermissionRequestCreator; | 322 MockPermissionRequestCreator* creator_2 = new MockPermissionRequestCreator; |
318 creator_2->set_enabled(true); | 323 creator_2->set_enabled(true); |
319 supervised_user_service_->AddPermissionRequestCreator( | 324 supervised_user_service_->AddPermissionRequestCreator( |
320 make_scoped_ptr(creator_2)); | 325 make_scoped_ptr(creator_2)); |
321 | 326 |
322 { | 327 { |
323 AsyncResultHolder result_holder; | 328 AsyncResultHolder result_holder; |
324 AddAccessRequest(url, &result_holder); | 329 AddURLAccessRequest(url, &result_holder); |
325 ASSERT_EQ(1u, creator->requested_urls().size()); | 330 ASSERT_EQ(1u, creator->requested_urls().size()); |
326 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); | 331 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); |
327 | 332 |
328 // Make the first creator succeed. This should make the whole thing succeed. | 333 // Make the first creator succeed. This should make the whole thing succeed. |
329 creator->AnswerRequest(0, true); | 334 creator->AnswerRequest(0, true); |
330 EXPECT_TRUE(result_holder.GetResult()); | 335 EXPECT_TRUE(result_holder.GetResult()); |
331 } | 336 } |
332 | 337 |
333 { | 338 { |
334 AsyncResultHolder result_holder; | 339 AsyncResultHolder result_holder; |
335 AddAccessRequest(url, &result_holder); | 340 AddURLAccessRequest(url, &result_holder); |
336 ASSERT_EQ(1u, creator->requested_urls().size()); | 341 ASSERT_EQ(1u, creator->requested_urls().size()); |
337 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); | 342 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); |
338 | 343 |
339 // Make the first creator fail. This should fall back to the second one. | 344 // Make the first creator fail. This should fall back to the second one. |
340 creator->AnswerRequest(0, false); | 345 creator->AnswerRequest(0, false); |
341 ASSERT_EQ(1u, creator_2->requested_urls().size()); | 346 ASSERT_EQ(1u, creator_2->requested_urls().size()); |
342 EXPECT_EQ(url.spec(), creator_2->requested_urls()[0].spec()); | 347 EXPECT_EQ(url.spec(), creator_2->requested_urls()[0].spec()); |
343 | 348 |
344 // Make the second creator succeed, which will make the whole thing succeed. | 349 // Make the second creator succeed, which will make the whole thing succeed. |
345 creator_2->AnswerRequest(0, true); | 350 creator_2->AnswerRequest(0, true); |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
571 ASSERT_EQ(1u, site_list_observer_.sites().size()); | 576 ASSERT_EQ(1u, site_list_observer_.sites().size()); |
572 EXPECT_EQ(base::ASCIIToUTF16("Moose"), site_list_observer_.sites()[0].name); | 577 EXPECT_EQ(base::ASCIIToUTF16("Moose"), site_list_observer_.sites()[0].name); |
573 | 578 |
574 url_filter_observer_.Wait(); | 579 url_filter_observer_.Wait(); |
575 EXPECT_EQ(SupervisedUserURLFilter::WARN, | 580 EXPECT_EQ(SupervisedUserURLFilter::WARN, |
576 url_filter->GetFilteringBehaviorForURL(example_url)); | 581 url_filter->GetFilteringBehaviorForURL(example_url)); |
577 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, | 582 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, |
578 url_filter->GetFilteringBehaviorForURL(moose_url)); | 583 url_filter->GetFilteringBehaviorForURL(moose_url)); |
579 } | 584 } |
580 #endif // defined(ENABLE_EXTENSIONS) | 585 #endif // defined(ENABLE_EXTENSIONS) |
OLD | NEW |