Chromium Code Reviews| 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 { | |
|
Bernhard Bauer
2015/03/02 16:41:56
Add a FAIL()?
Marc Treib
2015/03/02 18:26:00
Done.
| |
| 261 } | |
| 262 | |
| 259 bool enabled_; | 263 bool enabled_; |
| 260 std::vector<GURL> requested_urls_; | 264 std::vector<GURL> requested_urls_; |
| 261 std::vector<SuccessCallback> callbacks_; | 265 std::vector<SuccessCallback> callbacks_; |
| 262 | 266 |
| 263 DISALLOW_COPY_AND_ASSIGN(MockPermissionRequestCreator); | 267 DISALLOW_COPY_AND_ASSIGN(MockPermissionRequestCreator); |
| 264 }; | 268 }; |
| 265 | 269 |
| 266 } // namespace | 270 } // namespace |
| 267 | 271 |
| 268 TEST_F(SupervisedUserServiceTest, CreatePermissionRequest) { | 272 TEST_F(SupervisedUserServiceTest, CreatePermissionRequest) { |
| 269 GURL url("http://www.example.com"); | 273 GURL url("http://www.example.com"); |
| 270 | 274 |
| 271 // Without any permission request creators, it should be disabled, and any | 275 // Without any permission request creators, it should be disabled, and any |
| 272 // AddAccessRequest() calls should fail. | 276 // AddURLAccessRequest() calls should fail. |
| 273 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled()); | 277 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled()); |
| 274 { | 278 { |
| 275 AsyncResultHolder result_holder; | 279 AsyncResultHolder result_holder; |
| 276 AddAccessRequest(url, &result_holder); | 280 AddURLAccessRequest(url, &result_holder); |
| 277 EXPECT_FALSE(result_holder.GetResult()); | 281 EXPECT_FALSE(result_holder.GetResult()); |
| 278 } | 282 } |
| 279 | 283 |
| 280 // Add a disabled permission request creator. This should not change anything. | 284 // Add a disabled permission request creator. This should not change anything. |
| 281 MockPermissionRequestCreator* creator = new MockPermissionRequestCreator; | 285 MockPermissionRequestCreator* creator = new MockPermissionRequestCreator; |
| 282 supervised_user_service_->AddPermissionRequestCreator( | 286 supervised_user_service_->AddPermissionRequestCreator( |
| 283 make_scoped_ptr(creator)); | 287 make_scoped_ptr(creator)); |
| 284 | 288 |
| 285 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled()); | 289 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled()); |
| 286 { | 290 { |
| 287 AsyncResultHolder result_holder; | 291 AsyncResultHolder result_holder; |
| 288 AddAccessRequest(url, &result_holder); | 292 AddURLAccessRequest(url, &result_holder); |
| 289 EXPECT_FALSE(result_holder.GetResult()); | 293 EXPECT_FALSE(result_holder.GetResult()); |
| 290 } | 294 } |
| 291 | 295 |
| 292 // Enable the permission request creator. This should enable permission | 296 // Enable the permission request creator. This should enable permission |
| 293 // requests and queue them up. | 297 // requests and queue them up. |
| 294 creator->set_enabled(true); | 298 creator->set_enabled(true); |
| 295 EXPECT_TRUE(supervised_user_service_->AccessRequestsEnabled()); | 299 EXPECT_TRUE(supervised_user_service_->AccessRequestsEnabled()); |
| 296 { | 300 { |
| 297 AsyncResultHolder result_holder; | 301 AsyncResultHolder result_holder; |
| 298 AddAccessRequest(url, &result_holder); | 302 AddURLAccessRequest(url, &result_holder); |
| 299 ASSERT_EQ(1u, creator->requested_urls().size()); | 303 ASSERT_EQ(1u, creator->requested_urls().size()); |
| 300 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); | 304 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); |
| 301 | 305 |
| 302 creator->AnswerRequest(0, true); | 306 creator->AnswerRequest(0, true); |
| 303 EXPECT_TRUE(result_holder.GetResult()); | 307 EXPECT_TRUE(result_holder.GetResult()); |
| 304 } | 308 } |
| 305 | 309 |
| 306 { | 310 { |
| 307 AsyncResultHolder result_holder; | 311 AsyncResultHolder result_holder; |
| 308 AddAccessRequest(url, &result_holder); | 312 AddURLAccessRequest(url, &result_holder); |
| 309 ASSERT_EQ(1u, creator->requested_urls().size()); | 313 ASSERT_EQ(1u, creator->requested_urls().size()); |
| 310 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); | 314 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); |
| 311 | 315 |
| 312 creator->AnswerRequest(0, false); | 316 creator->AnswerRequest(0, false); |
| 313 EXPECT_FALSE(result_holder.GetResult()); | 317 EXPECT_FALSE(result_holder.GetResult()); |
| 314 } | 318 } |
| 315 | 319 |
| 316 // Add a second permission request creator. | 320 // Add a second permission request creator. |
| 317 MockPermissionRequestCreator* creator_2 = new MockPermissionRequestCreator; | 321 MockPermissionRequestCreator* creator_2 = new MockPermissionRequestCreator; |
| 318 creator_2->set_enabled(true); | 322 creator_2->set_enabled(true); |
| 319 supervised_user_service_->AddPermissionRequestCreator( | 323 supervised_user_service_->AddPermissionRequestCreator( |
| 320 make_scoped_ptr(creator_2)); | 324 make_scoped_ptr(creator_2)); |
| 321 | 325 |
| 322 { | 326 { |
| 323 AsyncResultHolder result_holder; | 327 AsyncResultHolder result_holder; |
| 324 AddAccessRequest(url, &result_holder); | 328 AddURLAccessRequest(url, &result_holder); |
| 325 ASSERT_EQ(1u, creator->requested_urls().size()); | 329 ASSERT_EQ(1u, creator->requested_urls().size()); |
| 326 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); | 330 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); |
| 327 | 331 |
| 328 // Make the first creator succeed. This should make the whole thing succeed. | 332 // Make the first creator succeed. This should make the whole thing succeed. |
| 329 creator->AnswerRequest(0, true); | 333 creator->AnswerRequest(0, true); |
| 330 EXPECT_TRUE(result_holder.GetResult()); | 334 EXPECT_TRUE(result_holder.GetResult()); |
| 331 } | 335 } |
| 332 | 336 |
| 333 { | 337 { |
| 334 AsyncResultHolder result_holder; | 338 AsyncResultHolder result_holder; |
| 335 AddAccessRequest(url, &result_holder); | 339 AddURLAccessRequest(url, &result_holder); |
| 336 ASSERT_EQ(1u, creator->requested_urls().size()); | 340 ASSERT_EQ(1u, creator->requested_urls().size()); |
| 337 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); | 341 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); |
| 338 | 342 |
| 339 // Make the first creator fail. This should fall back to the second one. | 343 // Make the first creator fail. This should fall back to the second one. |
| 340 creator->AnswerRequest(0, false); | 344 creator->AnswerRequest(0, false); |
| 341 ASSERT_EQ(1u, creator_2->requested_urls().size()); | 345 ASSERT_EQ(1u, creator_2->requested_urls().size()); |
| 342 EXPECT_EQ(url.spec(), creator_2->requested_urls()[0].spec()); | 346 EXPECT_EQ(url.spec(), creator_2->requested_urls()[0].spec()); |
| 343 | 347 |
| 344 // Make the second creator succeed, which will make the whole thing succeed. | 348 // Make the second creator succeed, which will make the whole thing succeed. |
| 345 creator_2->AnswerRequest(0, true); | 349 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()); | 575 ASSERT_EQ(1u, site_list_observer_.sites().size()); |
| 572 EXPECT_EQ(base::ASCIIToUTF16("Moose"), site_list_observer_.sites()[0].name); | 576 EXPECT_EQ(base::ASCIIToUTF16("Moose"), site_list_observer_.sites()[0].name); |
| 573 | 577 |
| 574 url_filter_observer_.Wait(); | 578 url_filter_observer_.Wait(); |
| 575 EXPECT_EQ(SupervisedUserURLFilter::WARN, | 579 EXPECT_EQ(SupervisedUserURLFilter::WARN, |
| 576 url_filter->GetFilteringBehaviorForURL(example_url)); | 580 url_filter->GetFilteringBehaviorForURL(example_url)); |
| 577 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, | 581 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, |
| 578 url_filter->GetFilteringBehaviorForURL(moose_url)); | 582 url_filter->GetFilteringBehaviorForURL(moose_url)); |
| 579 } | 583 } |
| 580 #endif // defined(ENABLE_EXTENSIONS) | 584 #endif // defined(ENABLE_EXTENSIONS) |
| OLD | NEW |