| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/path_service.h" | 5 #include "base/path_service.h" |
| 6 #include "base/prefs/pref_service.h" | 6 #include "base/prefs/pref_service.h" |
| 7 #include "base/prefs/scoped_user_pref_update.h" | 7 #include "base/prefs/scoped_user_pref_update.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/browser/chrome_notification_types.h" | 9 #include "chrome/browser/chrome_notification_types.h" |
| 10 #include "chrome/browser/extensions/extension_service_unittest.h" | 10 #include "chrome/browser/extensions/extension_service_unittest.h" |
| 11 #include "chrome/browser/extensions/unpacked_installer.h" | 11 #include "chrome/browser/extensions/unpacked_installer.h" |
| 12 #include "chrome/browser/managed_mode/custodian_profile_downloader_service.h" | 12 #include "chrome/browser/managed_mode/custodian_profile_downloader_service.h" |
| 13 #include "chrome/browser/managed_mode/custodian_profile_downloader_service_facto
ry.h" | 13 #include "chrome/browser/managed_mode/custodian_profile_downloader_service_facto
ry.h" |
| 14 #include "chrome/browser/managed_mode/managed_user_service.h" | 14 #include "chrome/browser/managed_mode/managed_user_service.h" |
| 15 #include "chrome/browser/managed_mode/managed_user_service_factory.h" | 15 #include "chrome/browser/managed_mode/managed_user_service_factory.h" |
| 16 #include "chrome/browser/profiles/profile.h" | 16 #include "chrome/browser/profiles/profile.h" |
| 17 #include "chrome/browser/signin/fake_profile_oauth2_token_service.h" |
| 18 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" |
| 17 #include "chrome/browser/ui/browser_list.h" | 19 #include "chrome/browser/ui/browser_list.h" |
| 18 #include "chrome/common/chrome_paths.h" | 20 #include "chrome/common/chrome_paths.h" |
| 19 #include "chrome/common/extensions/extension.h" | 21 #include "chrome/common/extensions/extension.h" |
| 20 #include "chrome/common/extensions/features/feature_channel.h" | 22 #include "chrome/common/extensions/features/feature_channel.h" |
| 21 #include "chrome/common/pref_names.h" | 23 #include "chrome/common/pref_names.h" |
| 22 #include "chrome/test/base/testing_profile.h" | 24 #include "chrome/test/base/testing_profile.h" |
| 23 #include "content/public/test/test_browser_thread_bundle.h" | 25 #include "content/public/test/test_browser_thread_bundle.h" |
| 24 #include "content/public/test/test_utils.h" | 26 #include "content/public/test/test_utils.h" |
| 25 #include "extensions/common/extension_builder.h" | 27 #include "extensions/common/extension_builder.h" |
| 26 #include "extensions/common/manifest_constants.h" | 28 #include "extensions/common/manifest_constants.h" |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 void Reset() { | 62 void Reset() { |
| 61 message_loop_runner_ = new MessageLoopRunner; | 63 message_loop_runner_ = new MessageLoopRunner; |
| 62 } | 64 } |
| 63 | 65 |
| 64 ManagedModeURLFilter* url_filter_; | 66 ManagedModeURLFilter* url_filter_; |
| 65 scoped_refptr<MessageLoopRunner> message_loop_runner_; | 67 scoped_refptr<MessageLoopRunner> message_loop_runner_; |
| 66 }; | 68 }; |
| 67 | 69 |
| 68 class ManagedUserServiceTest : public ::testing::Test { | 70 class ManagedUserServiceTest : public ::testing::Test { |
| 69 public: | 71 public: |
| 70 ManagedUserServiceTest() { | 72 ManagedUserServiceTest() {} |
| 71 managed_user_service_ = ManagedUserServiceFactory::GetForProfile(&profile_); | 73 |
| 74 virtual void SetUp() OVERRIDE { |
| 75 TestingProfile::Builder builder; |
| 76 builder.AddTestingFactory(ProfileOAuth2TokenServiceFactory::GetInstance(), |
| 77 FakeProfileOAuth2TokenService::Build); |
| 78 profile_ = builder.Build(); |
| 79 managed_user_service_ = |
| 80 ManagedUserServiceFactory::GetForProfile(profile_.get()); |
| 81 } |
| 82 |
| 83 virtual void TearDown() OVERRIDE { |
| 84 profile_.reset(); |
| 72 } | 85 } |
| 73 | 86 |
| 74 virtual ~ManagedUserServiceTest() {} | 87 virtual ~ManagedUserServiceTest() {} |
| 75 | 88 |
| 76 protected: | 89 protected: |
| 77 content::TestBrowserThreadBundle thread_bundle_; | 90 content::TestBrowserThreadBundle thread_bundle_; |
| 78 TestingProfile profile_; | 91 scoped_ptr<TestingProfile> profile_; |
| 79 ManagedUserService* managed_user_service_; | 92 ManagedUserService* managed_user_service_; |
| 80 }; | 93 }; |
| 81 | 94 |
| 82 } // namespace | 95 } // namespace |
| 83 | 96 |
| 84 TEST_F(ManagedUserServiceTest, GetManualExceptionsForHost) { | 97 TEST_F(ManagedUserServiceTest, GetManualExceptionsForHost) { |
| 85 GURL kExampleFooURL("http://www.example.com/foo"); | 98 GURL kExampleFooURL("http://www.example.com/foo"); |
| 86 GURL kExampleBarURL("http://www.example.com/bar"); | 99 GURL kExampleBarURL("http://www.example.com/bar"); |
| 87 GURL kExampleFooNoWWWURL("http://example.com/foo"); | 100 GURL kExampleFooNoWWWURL("http://example.com/foo"); |
| 88 GURL kBlurpURL("http://blurp.net/bla"); | 101 GURL kBlurpURL("http://blurp.net/bla"); |
| 89 GURL kMooseURL("http://moose.org/baz"); | 102 GURL kMooseURL("http://moose.org/baz"); |
| 90 { | 103 { |
| 91 DictionaryPrefUpdate update(profile_.GetPrefs(), | 104 DictionaryPrefUpdate update(profile_->GetPrefs(), |
| 92 prefs::kManagedModeManualURLs); | 105 prefs::kManagedModeManualURLs); |
| 93 base::DictionaryValue* dict = update.Get(); | 106 base::DictionaryValue* dict = update.Get(); |
| 94 dict->SetBooleanWithoutPathExpansion(kExampleFooURL.spec(), true); | 107 dict->SetBooleanWithoutPathExpansion(kExampleFooURL.spec(), true); |
| 95 dict->SetBooleanWithoutPathExpansion(kExampleBarURL.spec(), false); | 108 dict->SetBooleanWithoutPathExpansion(kExampleBarURL.spec(), false); |
| 96 dict->SetBooleanWithoutPathExpansion(kExampleFooNoWWWURL.spec(), true); | 109 dict->SetBooleanWithoutPathExpansion(kExampleFooNoWWWURL.spec(), true); |
| 97 dict->SetBooleanWithoutPathExpansion(kBlurpURL.spec(), true); | 110 dict->SetBooleanWithoutPathExpansion(kBlurpURL.spec(), true); |
| 98 } | 111 } |
| 99 | 112 |
| 100 EXPECT_EQ(ManagedUserService::MANUAL_ALLOW, | 113 EXPECT_EQ(ManagedUserService::MANUAL_ALLOW, |
| 101 managed_user_service_->GetManualBehaviorForURL(kExampleFooURL)); | 114 managed_user_service_->GetManualBehaviorForURL(kExampleFooURL)); |
| 102 EXPECT_EQ(ManagedUserService::MANUAL_BLOCK, | 115 EXPECT_EQ(ManagedUserService::MANUAL_BLOCK, |
| 103 managed_user_service_->GetManualBehaviorForURL(kExampleBarURL)); | 116 managed_user_service_->GetManualBehaviorForURL(kExampleBarURL)); |
| 104 EXPECT_EQ(ManagedUserService::MANUAL_ALLOW, | 117 EXPECT_EQ(ManagedUserService::MANUAL_ALLOW, |
| 105 managed_user_service_->GetManualBehaviorForURL( | 118 managed_user_service_->GetManualBehaviorForURL( |
| 106 kExampleFooNoWWWURL)); | 119 kExampleFooNoWWWURL)); |
| 107 EXPECT_EQ(ManagedUserService::MANUAL_ALLOW, | 120 EXPECT_EQ(ManagedUserService::MANUAL_ALLOW, |
| 108 managed_user_service_->GetManualBehaviorForURL(kBlurpURL)); | 121 managed_user_service_->GetManualBehaviorForURL(kBlurpURL)); |
| 109 EXPECT_EQ(ManagedUserService::MANUAL_NONE, | 122 EXPECT_EQ(ManagedUserService::MANUAL_NONE, |
| 110 managed_user_service_->GetManualBehaviorForURL(kMooseURL)); | 123 managed_user_service_->GetManualBehaviorForURL(kMooseURL)); |
| 111 std::vector<GURL> exceptions; | 124 std::vector<GURL> exceptions; |
| 112 managed_user_service_->GetManualExceptionsForHost("www.example.com", | 125 managed_user_service_->GetManualExceptionsForHost("www.example.com", |
| 113 &exceptions); | 126 &exceptions); |
| 114 ASSERT_EQ(2u, exceptions.size()); | 127 ASSERT_EQ(2u, exceptions.size()); |
| 115 EXPECT_EQ(kExampleBarURL, exceptions[0]); | 128 EXPECT_EQ(kExampleBarURL, exceptions[0]); |
| 116 EXPECT_EQ(kExampleFooURL, exceptions[1]); | 129 EXPECT_EQ(kExampleFooURL, exceptions[1]); |
| 117 | 130 |
| 118 { | 131 { |
| 119 DictionaryPrefUpdate update(profile_.GetPrefs(), | 132 DictionaryPrefUpdate update(profile_->GetPrefs(), |
| 120 prefs::kManagedModeManualURLs); | 133 prefs::kManagedModeManualURLs); |
| 121 base::DictionaryValue* dict = update.Get(); | 134 base::DictionaryValue* dict = update.Get(); |
| 122 for (std::vector<GURL>::iterator it = exceptions.begin(); | 135 for (std::vector<GURL>::iterator it = exceptions.begin(); |
| 123 it != exceptions.end(); ++it) { | 136 it != exceptions.end(); ++it) { |
| 124 dict->RemoveWithoutPathExpansion(it->spec(), NULL); | 137 dict->RemoveWithoutPathExpansion(it->spec(), NULL); |
| 125 } | 138 } |
| 126 } | 139 } |
| 127 | 140 |
| 128 EXPECT_EQ(ManagedUserService::MANUAL_NONE, | 141 EXPECT_EQ(ManagedUserService::MANUAL_NONE, |
| 129 managed_user_service_->GetManualBehaviorForURL(kExampleFooURL)); | 142 managed_user_service_->GetManualBehaviorForURL(kExampleFooURL)); |
| 130 EXPECT_EQ(ManagedUserService::MANUAL_NONE, | 143 EXPECT_EQ(ManagedUserService::MANUAL_NONE, |
| 131 managed_user_service_->GetManualBehaviorForURL(kExampleBarURL)); | 144 managed_user_service_->GetManualBehaviorForURL(kExampleBarURL)); |
| 132 EXPECT_EQ(ManagedUserService::MANUAL_ALLOW, | 145 EXPECT_EQ(ManagedUserService::MANUAL_ALLOW, |
| 133 managed_user_service_->GetManualBehaviorForURL( | 146 managed_user_service_->GetManualBehaviorForURL( |
| 134 kExampleFooNoWWWURL)); | 147 kExampleFooNoWWWURL)); |
| 135 EXPECT_EQ(ManagedUserService::MANUAL_ALLOW, | 148 EXPECT_EQ(ManagedUserService::MANUAL_ALLOW, |
| 136 managed_user_service_->GetManualBehaviorForURL(kBlurpURL)); | 149 managed_user_service_->GetManualBehaviorForURL(kBlurpURL)); |
| 137 EXPECT_EQ(ManagedUserService::MANUAL_NONE, | 150 EXPECT_EQ(ManagedUserService::MANUAL_NONE, |
| 138 managed_user_service_->GetManualBehaviorForURL(kMooseURL)); | 151 managed_user_service_->GetManualBehaviorForURL(kMooseURL)); |
| 139 } | 152 } |
| 140 | 153 |
| 141 // Ensure that the CustodianProfileDownloaderService shuts down cleanly. If no | 154 // Ensure that the CustodianProfileDownloaderService shuts down cleanly. If no |
| 142 // DCHECK is hit when the service is destroyed, this test passed. | 155 // DCHECK is hit when the service is destroyed, this test passed. |
| 143 TEST_F(ManagedUserServiceTest, ShutDownCustodianProfileDownloader) { | 156 TEST_F(ManagedUserServiceTest, ShutDownCustodianProfileDownloader) { |
| 144 CustodianProfileDownloaderService* downloader_service = | 157 CustodianProfileDownloaderService* downloader_service = |
| 145 CustodianProfileDownloaderServiceFactory::GetForProfile( | 158 CustodianProfileDownloaderServiceFactory::GetForProfile(profile_.get()); |
| 146 &profile_); | |
| 147 | 159 |
| 148 // Emulate being logged in, then start to download a profile so a | 160 // Emulate being logged in, then start to download a profile so a |
| 149 // ProfileDownloader gets created. | 161 // ProfileDownloader gets created. |
| 150 profile_.GetPrefs()->SetString(prefs::kGoogleServicesUsername, "Logged In"); | 162 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "Logged In"); |
| 151 downloader_service->DownloadProfile(base::Bind(&OnProfileDownloadedFail)); | 163 downloader_service->DownloadProfile(base::Bind(&OnProfileDownloadedFail)); |
| 152 } | 164 } |
| 153 | 165 |
| 166 #if !defined(OS_ANDROID) |
| 154 class ManagedUserServiceExtensionTestBase : public ExtensionServiceTestBase { | 167 class ManagedUserServiceExtensionTestBase : public ExtensionServiceTestBase { |
| 155 public: | 168 public: |
| 156 explicit ManagedUserServiceExtensionTestBase(bool is_managed) | 169 explicit ManagedUserServiceExtensionTestBase(bool is_managed) |
| 157 : is_managed_(is_managed), | 170 : is_managed_(is_managed), |
| 158 channel_(chrome::VersionInfo::CHANNEL_DEV) {} | 171 channel_(chrome::VersionInfo::CHANNEL_DEV) {} |
| 159 virtual ~ManagedUserServiceExtensionTestBase() {} | 172 virtual ~ManagedUserServiceExtensionTestBase() {} |
| 160 | 173 |
| 161 virtual void SetUp() OVERRIDE { | 174 virtual void SetUp() OVERRIDE { |
| 162 ExtensionServiceTestBase::SetUp(); | 175 ExtensionServiceTestBase::SetUp(); |
| 163 ExtensionServiceTestBase::ExtensionServiceInitParams params = | 176 ExtensionServiceTestBase::ExtensionServiceInitParams params = |
| (...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 sites.clear(); | 389 sites.clear(); |
| 377 site_lists[0]->GetSites(&sites); | 390 site_lists[0]->GetSites(&sites); |
| 378 ASSERT_EQ(1u, sites.size()); | 391 ASSERT_EQ(1u, sites.size()); |
| 379 EXPECT_EQ(ASCIIToUTF16("Moose"), sites[0].name); | 392 EXPECT_EQ(ASCIIToUTF16("Moose"), sites[0].name); |
| 380 | 393 |
| 381 EXPECT_EQ(ManagedModeURLFilter::WARN, | 394 EXPECT_EQ(ManagedModeURLFilter::WARN, |
| 382 url_filter->GetFilteringBehaviorForURL(example_url)); | 395 url_filter->GetFilteringBehaviorForURL(example_url)); |
| 383 EXPECT_EQ(ManagedModeURLFilter::ALLOW, | 396 EXPECT_EQ(ManagedModeURLFilter::ALLOW, |
| 384 url_filter->GetFilteringBehaviorForURL(moose_url)); | 397 url_filter->GetFilteringBehaviorForURL(moose_url)); |
| 385 } | 398 } |
| 399 #endif // !defined(OS_ANDROID) |
| OLD | NEW |