| 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 |