| 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 "chrome/browser/supervised_user/supervised_user_service.h" | 5 #include "chrome/browser/supervised_user/supervised_user_service.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 |
| 9 #include <memory> |
| 8 #include <utility> | 10 #include <utility> |
| 9 | 11 |
| 10 #include "base/macros.h" | 12 #include "base/macros.h" |
| 11 #include "base/memory/scoped_ptr.h" | 13 #include "base/memory/ptr_util.h" |
| 12 #include "base/path_service.h" | 14 #include "base/path_service.h" |
| 13 #include "base/strings/utf_string_conversions.h" | 15 #include "base/strings/utf_string_conversions.h" |
| 14 #include "base/thread_task_runner_handle.h" | 16 #include "base/thread_task_runner_handle.h" |
| 15 #include "build/build_config.h" | 17 #include "build/build_config.h" |
| 16 #include "chrome/browser/chrome_notification_types.h" | 18 #include "chrome/browser/chrome_notification_types.h" |
| 17 #include "chrome/browser/profiles/profile.h" | 19 #include "chrome/browser/profiles/profile.h" |
| 18 #include "chrome/browser/signin/fake_profile_oauth2_token_service_builder.h" | 20 #include "chrome/browser/signin/fake_profile_oauth2_token_service_builder.h" |
| 19 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" | 21 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" |
| 20 #include "chrome/browser/signin/signin_manager_factory.h" | 22 #include "chrome/browser/signin/signin_manager_factory.h" |
| 21 #include "chrome/browser/supervised_user/legacy/custodian_profile_downloader_ser
vice.h" | 23 #include "chrome/browser/supervised_user/legacy/custodian_profile_downloader_ser
vice.h" |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 quit_called_ = true; | 84 quit_called_ = true; |
| 83 run_loop_->Quit(); | 85 run_loop_->Quit(); |
| 84 } | 86 } |
| 85 | 87 |
| 86 private: | 88 private: |
| 87 void Reset() { | 89 void Reset() { |
| 88 quit_called_ = false; | 90 quit_called_ = false; |
| 89 run_loop_.reset(new base::RunLoop); | 91 run_loop_.reset(new base::RunLoop); |
| 90 } | 92 } |
| 91 | 93 |
| 92 scoped_ptr<base::RunLoop> run_loop_; | 94 std::unique_ptr<base::RunLoop> run_loop_; |
| 93 bool quit_called_; | 95 bool quit_called_; |
| 94 | 96 |
| 95 DISALLOW_COPY_AND_ASSIGN(AsyncTestHelper); | 97 DISALLOW_COPY_AND_ASSIGN(AsyncTestHelper); |
| 96 }; | 98 }; |
| 97 | 99 |
| 98 class SupervisedUserURLFilterObserver | 100 class SupervisedUserURLFilterObserver |
| 99 : public AsyncTestHelper, | 101 : public AsyncTestHelper, |
| 100 public SupervisedUserURLFilter::Observer { | 102 public SupervisedUserURLFilter::Observer { |
| 101 public: | 103 public: |
| 102 SupervisedUserURLFilterObserver() : scoped_observer_(this) {} | 104 SupervisedUserURLFilterObserver() : scoped_observer_(this) {} |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 ~SupervisedUserServiceTest() override {} | 191 ~SupervisedUserServiceTest() override {} |
| 190 | 192 |
| 191 protected: | 193 protected: |
| 192 void AddURLAccessRequest(const GURL& url, AsyncResultHolder* result_holder) { | 194 void AddURLAccessRequest(const GURL& url, AsyncResultHolder* result_holder) { |
| 193 supervised_user_service_->AddURLAccessRequest( | 195 supervised_user_service_->AddURLAccessRequest( |
| 194 url, base::Bind(&AsyncResultHolder::SetResult, | 196 url, base::Bind(&AsyncResultHolder::SetResult, |
| 195 base::Unretained(result_holder))); | 197 base::Unretained(result_holder))); |
| 196 } | 198 } |
| 197 | 199 |
| 198 content::TestBrowserThreadBundle thread_bundle_; | 200 content::TestBrowserThreadBundle thread_bundle_; |
| 199 scoped_ptr<TestingProfile> profile_; | 201 std::unique_ptr<TestingProfile> profile_; |
| 200 SupervisedUserService* supervised_user_service_; | 202 SupervisedUserService* supervised_user_service_; |
| 201 }; | 203 }; |
| 202 | 204 |
| 203 } // namespace | 205 } // namespace |
| 204 | 206 |
| 205 TEST_F(SupervisedUserServiceTest, ChangesIncludedSessionOnChangedSettings) { | 207 TEST_F(SupervisedUserServiceTest, ChangesIncludedSessionOnChangedSettings) { |
| 206 supervised_user_service_->Init(); | 208 supervised_user_service_->Init(); |
| 207 EXPECT_TRUE(supervised_user_service_->IncludesSyncSessionsType()); | 209 EXPECT_TRUE(supervised_user_service_->IncludesSyncSessionsType()); |
| 208 profile_->GetPrefs()->SetBoolean(prefs::kRecordHistory, false); | 210 profile_->GetPrefs()->SetBoolean(prefs::kRecordHistory, false); |
| 209 EXPECT_FALSE(supervised_user_service_->IncludesSyncSessionsType()); | 211 EXPECT_FALSE(supervised_user_service_->IncludesSyncSessionsType()); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled()); | 281 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled()); |
| 280 { | 282 { |
| 281 AsyncResultHolder result_holder; | 283 AsyncResultHolder result_holder; |
| 282 AddURLAccessRequest(url, &result_holder); | 284 AddURLAccessRequest(url, &result_holder); |
| 283 EXPECT_FALSE(result_holder.GetResult()); | 285 EXPECT_FALSE(result_holder.GetResult()); |
| 284 } | 286 } |
| 285 | 287 |
| 286 // Add a disabled permission request creator. This should not change anything. | 288 // Add a disabled permission request creator. This should not change anything. |
| 287 MockPermissionRequestCreator* creator = new MockPermissionRequestCreator; | 289 MockPermissionRequestCreator* creator = new MockPermissionRequestCreator; |
| 288 supervised_user_service_->AddPermissionRequestCreator( | 290 supervised_user_service_->AddPermissionRequestCreator( |
| 289 make_scoped_ptr(creator)); | 291 base::WrapUnique(creator)); |
| 290 | 292 |
| 291 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled()); | 293 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled()); |
| 292 { | 294 { |
| 293 AsyncResultHolder result_holder; | 295 AsyncResultHolder result_holder; |
| 294 AddURLAccessRequest(url, &result_holder); | 296 AddURLAccessRequest(url, &result_holder); |
| 295 EXPECT_FALSE(result_holder.GetResult()); | 297 EXPECT_FALSE(result_holder.GetResult()); |
| 296 } | 298 } |
| 297 | 299 |
| 298 // Enable the permission request creator. This should enable permission | 300 // Enable the permission request creator. This should enable permission |
| 299 // requests and queue them up. | 301 // requests and queue them up. |
| (...skipping 16 matching lines...) Expand all Loading... |
| 316 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); | 318 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); |
| 317 | 319 |
| 318 creator->AnswerRequest(0, false); | 320 creator->AnswerRequest(0, false); |
| 319 EXPECT_FALSE(result_holder.GetResult()); | 321 EXPECT_FALSE(result_holder.GetResult()); |
| 320 } | 322 } |
| 321 | 323 |
| 322 // Add a second permission request creator. | 324 // Add a second permission request creator. |
| 323 MockPermissionRequestCreator* creator_2 = new MockPermissionRequestCreator; | 325 MockPermissionRequestCreator* creator_2 = new MockPermissionRequestCreator; |
| 324 creator_2->set_enabled(true); | 326 creator_2->set_enabled(true); |
| 325 supervised_user_service_->AddPermissionRequestCreator( | 327 supervised_user_service_->AddPermissionRequestCreator( |
| 326 make_scoped_ptr(creator_2)); | 328 base::WrapUnique(creator_2)); |
| 327 | 329 |
| 328 { | 330 { |
| 329 AsyncResultHolder result_holder; | 331 AsyncResultHolder result_holder; |
| 330 AddURLAccessRequest(url, &result_holder); | 332 AddURLAccessRequest(url, &result_holder); |
| 331 ASSERT_EQ(1u, creator->requested_urls().size()); | 333 ASSERT_EQ(1u, creator->requested_urls().size()); |
| 332 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); | 334 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); |
| 333 | 335 |
| 334 // Make the first creator succeed. This should make the whole thing succeed. | 336 // Make the first creator succeed. This should make the whole thing succeed. |
| 335 creator->AnswerRequest(0, true); | 337 creator->AnswerRequest(0, true); |
| 336 EXPECT_TRUE(result_holder.GetResult()); | 338 EXPECT_TRUE(result_holder.GetResult()); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 url_filter_observer_.Wait(); | 384 url_filter_observer_.Wait(); |
| 383 } | 385 } |
| 384 | 386 |
| 385 void TearDown() override { | 387 void TearDown() override { |
| 386 // Flush the message loop, to ensure all posted tasks run. | 388 // Flush the message loop, to ensure all posted tasks run. |
| 387 base::RunLoop().RunUntilIdle(); | 389 base::RunLoop().RunUntilIdle(); |
| 388 } | 390 } |
| 389 | 391 |
| 390 protected: | 392 protected: |
| 391 scoped_refptr<extensions::Extension> MakeThemeExtension() { | 393 scoped_refptr<extensions::Extension> MakeThemeExtension() { |
| 392 scoped_ptr<base::DictionaryValue> source(new base::DictionaryValue()); | 394 std::unique_ptr<base::DictionaryValue> source(new base::DictionaryValue()); |
| 393 source->SetString(extensions::manifest_keys::kName, "Theme"); | 395 source->SetString(extensions::manifest_keys::kName, "Theme"); |
| 394 source->Set(extensions::manifest_keys::kTheme, new base::DictionaryValue()); | 396 source->Set(extensions::manifest_keys::kTheme, new base::DictionaryValue()); |
| 395 source->SetString(extensions::manifest_keys::kVersion, "1.0"); | 397 source->SetString(extensions::manifest_keys::kVersion, "1.0"); |
| 396 extensions::ExtensionBuilder builder; | 398 extensions::ExtensionBuilder builder; |
| 397 scoped_refptr<extensions::Extension> extension = | 399 scoped_refptr<extensions::Extension> extension = |
| 398 builder.SetManifest(std::move(source)).Build(); | 400 builder.SetManifest(std::move(source)).Build(); |
| 399 return extension; | 401 return extension; |
| 400 } | 402 } |
| 401 | 403 |
| 402 scoped_refptr<extensions::Extension> MakeExtension(bool by_custodian) { | 404 scoped_refptr<extensions::Extension> MakeExtension(bool by_custodian) { |
| 403 scoped_ptr<base::DictionaryValue> manifest = extensions::DictionaryBuilder() | 405 std::unique_ptr<base::DictionaryValue> manifest = |
| 404 .Set(extensions::manifest_keys::kName, "Extension") | 406 extensions::DictionaryBuilder() |
| 405 .Set(extensions::manifest_keys::kVersion, "1.0") | 407 .Set(extensions::manifest_keys::kName, "Extension") |
| 406 .Build(); | 408 .Set(extensions::manifest_keys::kVersion, "1.0") |
| 409 .Build(); |
| 407 int creation_flags = extensions::Extension::NO_FLAGS; | 410 int creation_flags = extensions::Extension::NO_FLAGS; |
| 408 if (by_custodian) | 411 if (by_custodian) |
| 409 creation_flags |= extensions::Extension::WAS_INSTALLED_BY_CUSTODIAN; | 412 creation_flags |= extensions::Extension::WAS_INSTALLED_BY_CUSTODIAN; |
| 410 extensions::ExtensionBuilder builder; | 413 extensions::ExtensionBuilder builder; |
| 411 scoped_refptr<extensions::Extension> extension = | 414 scoped_refptr<extensions::Extension> extension = |
| 412 builder.SetManifest(std::move(manifest)) | 415 builder.SetManifest(std::move(manifest)) |
| 413 .AddFlags(creation_flags) | 416 .AddFlags(creation_flags) |
| 414 .Build(); | 417 .Build(); |
| 415 return extension; | 418 return extension; |
| 416 } | 419 } |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 579 EXPECT_EQ(title2, site_list_observer_.site_lists()[0]->title()); | 582 EXPECT_EQ(title2, site_list_observer_.site_lists()[0]->title()); |
| 580 EXPECT_TRUE(site_list_observer_.site_lists()[0]->entry_point().is_empty()); | 583 EXPECT_TRUE(site_list_observer_.site_lists()[0]->entry_point().is_empty()); |
| 581 | 584 |
| 582 url_filter_observer_.Wait(); | 585 url_filter_observer_.Wait(); |
| 583 EXPECT_EQ(SupervisedUserURLFilter::WARN, | 586 EXPECT_EQ(SupervisedUserURLFilter::WARN, |
| 584 url_filter->GetFilteringBehaviorForURL(youtube_url)); | 587 url_filter->GetFilteringBehaviorForURL(youtube_url)); |
| 585 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, | 588 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, |
| 586 url_filter->GetFilteringBehaviorForURL(moose_url)); | 589 url_filter->GetFilteringBehaviorForURL(moose_url)); |
| 587 } | 590 } |
| 588 #endif // defined(ENABLE_EXTENSIONS) | 591 #endif // defined(ENABLE_EXTENSIONS) |
| OLD | NEW |