Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: chrome/browser/managed_mode/managed_user_service_unittest.cc

Issue 23868042: Mark supervised profiles as such immediately when they're created. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "chrome/browser/chrome_notification_types.h" 8 #include "chrome/browser/chrome_notification_types.h"
9 #include "chrome/browser/extensions/extension_service_unittest.h" 9 #include "chrome/browser/extensions/extension_service_unittest.h"
10 #include "chrome/browser/extensions/unpacked_installer.h" 10 #include "chrome/browser/extensions/unpacked_installer.h"
11 #include "chrome/browser/managed_mode/custodian_profile_downloader_service.h" 11 #include "chrome/browser/managed_mode/custodian_profile_downloader_service.h"
12 #include "chrome/browser/managed_mode/custodian_profile_downloader_service_facto ry.h" 12 #include "chrome/browser/managed_mode/custodian_profile_downloader_service_facto ry.h"
13 #include "chrome/browser/managed_mode/managed_user_service.h" 13 #include "chrome/browser/managed_mode/managed_user_service.h"
14 #include "chrome/browser/managed_mode/managed_user_service_factory.h" 14 #include "chrome/browser/managed_mode/managed_user_service_factory.h"
15 #include "chrome/browser/prefs/scoped_user_pref_update.h" 15 #include "chrome/browser/prefs/scoped_user_pref_update.h"
16 #include "chrome/browser/profiles/profile.h" 16 #include "chrome/browser/profiles/profile.h"
17 #include "chrome/browser/ui/browser_list.h" 17 #include "chrome/browser/ui/browser_list.h"
18 #include "chrome/common/chrome_paths.h" 18 #include "chrome/common/chrome_paths.h"
19 #include "chrome/common/extensions/extension.h" 19 #include "chrome/common/extensions/extension.h"
20 #include "chrome/common/extensions/extension_builder.h" 20 #include "chrome/common/extensions/extension_builder.h"
21 #include "chrome/common/pref_names.h" 21 #include "chrome/common/pref_names.h"
22 #include "chrome/test/base/testing_profile.h" 22 #include "chrome/test/base/testing_profile.h"
23 #include "content/public/test/test_browser_thread.h" 23 #include "content/public/test/test_browser_thread_bundle.h"
24 #include "content/public/test/test_utils.h" 24 #include "content/public/test/test_utils.h"
25 #include "extensions/common/manifest_constants.h" 25 #include "extensions/common/manifest_constants.h"
26 #include "testing/gtest/include/gtest/gtest.h" 26 #include "testing/gtest/include/gtest/gtest.h"
27 27
28 using content::MessageLoopRunner; 28 using content::MessageLoopRunner;
29 29
30 namespace { 30 namespace {
31 31
32 void OnProfileDownloadedFail(const string16& full_name) { 32 void OnProfileDownloadedFail(const string16& full_name) {
33 ASSERT_TRUE(false) << "Profile download should not have succeeded."; 33 ASSERT_TRUE(false) << "Profile download should not have succeeded.";
(...skipping 25 matching lines...) Expand all
59 void Reset() { 59 void Reset() {
60 message_loop_runner_ = new MessageLoopRunner; 60 message_loop_runner_ = new MessageLoopRunner;
61 } 61 }
62 62
63 ManagedModeURLFilter* url_filter_; 63 ManagedModeURLFilter* url_filter_;
64 scoped_refptr<MessageLoopRunner> message_loop_runner_; 64 scoped_refptr<MessageLoopRunner> message_loop_runner_;
65 }; 65 };
66 66
67 class ManagedUserServiceTest : public ::testing::Test { 67 class ManagedUserServiceTest : public ::testing::Test {
68 public: 68 public:
69 ManagedUserServiceTest() : ui_thread_(content::BrowserThread::UI, 69 ManagedUserServiceTest() {
70 &message_loop_) {
71 managed_user_service_ = ManagedUserServiceFactory::GetForProfile(&profile_); 70 managed_user_service_ = ManagedUserServiceFactory::GetForProfile(&profile_);
72 } 71 }
73 72
74 virtual ~ManagedUserServiceTest() {} 73 virtual ~ManagedUserServiceTest() {}
75 74
76 protected: 75 protected:
77 base::MessageLoop message_loop_; 76 content::TestBrowserThreadBundle thread_bundle_;
78 content::TestBrowserThread ui_thread_;
79 TestingProfile profile_; 77 TestingProfile profile_;
80 ManagedUserService* managed_user_service_; 78 ManagedUserService* managed_user_service_;
81 }; 79 };
82 80
83 } // namespace 81 } // namespace
84 82
85 TEST_F(ManagedUserServiceTest, GetManualExceptionsForHost) { 83 TEST_F(ManagedUserServiceTest, GetManualExceptionsForHost) {
86 GURL kExampleFooURL("http://www.example.com/foo"); 84 GURL kExampleFooURL("http://www.example.com/foo");
87 GURL kExampleBarURL("http://www.example.com/bar"); 85 GURL kExampleBarURL("http://www.example.com/bar");
88 GURL kExampleFooNoWWWURL("http://example.com/foo"); 86 GURL kExampleFooNoWWWURL("http://example.com/foo");
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 CustodianProfileDownloaderService* downloader_service = 143 CustodianProfileDownloaderService* downloader_service =
146 CustodianProfileDownloaderServiceFactory::GetForProfile( 144 CustodianProfileDownloaderServiceFactory::GetForProfile(
147 &profile_); 145 &profile_);
148 146
149 // Emulate being logged in, then start to download a profile so a 147 // Emulate being logged in, then start to download a profile so a
150 // ProfileDownloader gets created. 148 // ProfileDownloader gets created.
151 profile_.GetPrefs()->SetString(prefs::kGoogleServicesUsername, "Logged In"); 149 profile_.GetPrefs()->SetString(prefs::kGoogleServicesUsername, "Logged In");
152 downloader_service->DownloadProfile(base::Bind(&OnProfileDownloadedFail)); 150 downloader_service->DownloadProfile(base::Bind(&OnProfileDownloadedFail));
153 } 151 }
154 152
155 class ManagedUserServiceExtensionTest : public ExtensionServiceTestBase { 153 class ManagedUserServiceExtensionTestBase : public ExtensionServiceTestBase {
156 public: 154 public:
157 ManagedUserServiceExtensionTest() {} 155 explicit ManagedUserServiceExtensionTestBase(bool is_managed)
158 virtual ~ManagedUserServiceExtensionTest() {} 156 : is_managed_(is_managed) {}
157 virtual ~ManagedUserServiceExtensionTestBase() {}
159 158
160 virtual void SetUp() OVERRIDE { 159 virtual void SetUp() OVERRIDE {
161 ExtensionServiceTestBase::SetUp(); 160 ExtensionServiceTestBase::SetUp();
162 InitializeEmptyExtensionService(); 161 ExtensionServiceTestBase::ExtensionServiceInitParams params =
163 } 162 CreateDefaultInitParams();
164 163 params.profile_is_managed = is_managed_;
165 virtual void TearDown() OVERRIDE { 164 InitializeExtensionService(params);
166 ExtensionServiceTestBase::TearDown(); 165 ManagedUserServiceFactory::GetForProfile(profile_.get())->Init();
167 } 166 }
168 167
169 protected: 168 protected:
170 ScopedVector<ManagedModeSiteList> GetActiveSiteLists( 169 ScopedVector<ManagedModeSiteList> GetActiveSiteLists(
171 ManagedUserService* managed_user_service) { 170 ManagedUserService* managed_user_service) {
172 return managed_user_service->GetActiveSiteLists(); 171 return managed_user_service->GetActiveSiteLists();
173 } 172 }
174 173
175 scoped_refptr<extensions::Extension> MakeThemeExtension() { 174 scoped_refptr<extensions::Extension> MakeThemeExtension() {
176 scoped_ptr<DictionaryValue> source(new DictionaryValue()); 175 scoped_ptr<DictionaryValue> source(new DictionaryValue());
177 source->SetString(extensions::manifest_keys::kName, "Theme"); 176 source->SetString(extensions::manifest_keys::kName, "Theme");
178 source->Set(extensions::manifest_keys::kTheme, new DictionaryValue()); 177 source->Set(extensions::manifest_keys::kTheme, new DictionaryValue());
179 source->SetString(extensions::manifest_keys::kVersion, "1.0"); 178 source->SetString(extensions::manifest_keys::kVersion, "1.0");
180 extensions::ExtensionBuilder builder; 179 extensions::ExtensionBuilder builder;
181 scoped_refptr<extensions::Extension> extension = 180 scoped_refptr<extensions::Extension> extension =
182 builder.SetManifest(source.Pass()).Build(); 181 builder.SetManifest(source.Pass()).Build();
183 return extension; 182 return extension;
184 } 183 }
185 184
186 scoped_refptr<extensions::Extension> MakeExtension() { 185 scoped_refptr<extensions::Extension> MakeExtension() {
187 scoped_ptr<DictionaryValue> manifest = extensions::DictionaryBuilder() 186 scoped_ptr<DictionaryValue> manifest = extensions::DictionaryBuilder()
188 .Set(extensions::manifest_keys::kName, "Extension") 187 .Set(extensions::manifest_keys::kName, "Extension")
189 .Set(extensions::manifest_keys::kVersion, "1.0") 188 .Set(extensions::manifest_keys::kVersion, "1.0")
190 .Build(); 189 .Build();
191 extensions::ExtensionBuilder builder; 190 extensions::ExtensionBuilder builder;
192 scoped_refptr<extensions::Extension> extension = 191 scoped_refptr<extensions::Extension> extension =
193 builder.SetManifest(manifest.Pass()).Build(); 192 builder.SetManifest(manifest.Pass()).Build();
194 return extension; 193 return extension;
195 } 194 }
195
196 bool is_managed_;
196 }; 197 };
197 198
198 TEST_F(ManagedUserServiceExtensionTest, 199 class ManagedUserServiceExtensionTestUnmanaged
199 ExtensionManagementPolicyProviderUnmanaged) { 200 : public ManagedUserServiceExtensionTestBase {
201 public:
202 ManagedUserServiceExtensionTestUnmanaged()
203 : ManagedUserServiceExtensionTestBase(false) {}
204 };
205
206 class ManagedUserServiceExtensionTest
207 : public ManagedUserServiceExtensionTestBase {
208 public:
209 ManagedUserServiceExtensionTest()
210 : ManagedUserServiceExtensionTestBase(true) {}
211 };
212
213 TEST_F(ManagedUserServiceExtensionTestUnmanaged,
214 ExtensionManagementPolicyProvider) {
200 ManagedUserService* managed_user_service = 215 ManagedUserService* managed_user_service =
201 ManagedUserServiceFactory::GetForProfile(profile_.get()); 216 ManagedUserServiceFactory::GetForProfile(profile_.get());
202 EXPECT_FALSE(profile_->IsManaged()); 217 EXPECT_FALSE(profile_->IsManaged());
203 218
204 scoped_refptr<extensions::Extension> extension = MakeExtension(); 219 scoped_refptr<extensions::Extension> extension = MakeExtension();
205 string16 error_1; 220 string16 error_1;
206 EXPECT_TRUE(managed_user_service->UserMayLoad(extension.get(), &error_1)); 221 EXPECT_TRUE(managed_user_service->UserMayLoad(extension.get(), &error_1));
207 EXPECT_EQ(string16(), error_1); 222 EXPECT_EQ(string16(), error_1);
208 223
209 string16 error_2; 224 string16 error_2;
210 EXPECT_TRUE( 225 EXPECT_TRUE(
211 managed_user_service->UserMayModifySettings(extension.get(), &error_2)); 226 managed_user_service->UserMayModifySettings(extension.get(), &error_2));
212 EXPECT_EQ(string16(), error_2); 227 EXPECT_EQ(string16(), error_2);
213 } 228 }
214 229
215 TEST_F(ManagedUserServiceExtensionTest, 230 TEST_F(ManagedUserServiceExtensionTest, ExtensionManagementPolicyProvider) {
216 ExtensionManagementPolicyProviderManaged) {
217 ManagedUserService* managed_user_service = 231 ManagedUserService* managed_user_service =
218 ManagedUserServiceFactory::GetForProfile(profile_.get()); 232 ManagedUserServiceFactory::GetForProfile(profile_.get());
219 managed_user_service->InitForTesting();
220 ManagedModeURLFilterObserver observer( 233 ManagedModeURLFilterObserver observer(
221 managed_user_service->GetURLFilterForUIThread()); 234 managed_user_service->GetURLFilterForUIThread());
222 EXPECT_TRUE(profile_->IsManaged()); 235 ASSERT_TRUE(profile_->IsManaged());
223 // Wait for the initial update to finish (otherwise we'll get leaks). 236 // Wait for the initial update to finish (otherwise we'll get leaks).
224 observer.Wait(); 237 observer.Wait();
225 238
226 // Check that a supervised user can install a theme. 239 // Check that a supervised user can install a theme.
227 scoped_refptr<extensions::Extension> theme = MakeThemeExtension(); 240 scoped_refptr<extensions::Extension> theme = MakeThemeExtension();
228 string16 error_1; 241 string16 error_1;
229 EXPECT_TRUE(managed_user_service->UserMayLoad(theme.get(), &error_1)); 242 EXPECT_TRUE(managed_user_service->UserMayLoad(theme.get(), &error_1));
230 EXPECT_TRUE(error_1.empty()); 243 EXPECT_TRUE(error_1.empty());
231 EXPECT_TRUE( 244 EXPECT_TRUE(
232 managed_user_service->UserMayModifySettings(theme.get(), &error_1)); 245 managed_user_service->UserMayModifySettings(theme.get(), &error_1));
233 EXPECT_TRUE(error_1.empty()); 246 EXPECT_TRUE(error_1.empty());
234 247
235 // Now check a different kind of extension. 248 // Now check a different kind of extension.
236 scoped_refptr<extensions::Extension> extension = MakeExtension(); 249 scoped_refptr<extensions::Extension> extension = MakeExtension();
237 EXPECT_FALSE(managed_user_service->UserMayLoad(extension.get(), &error_1)); 250 EXPECT_FALSE(managed_user_service->UserMayLoad(extension.get(), &error_1));
238 EXPECT_FALSE(error_1.empty()); 251 EXPECT_FALSE(error_1.empty());
239 252
240 string16 error_2; 253 string16 error_2;
241 EXPECT_FALSE( 254 EXPECT_FALSE(
242 managed_user_service->UserMayModifySettings(extension.get(), &error_2)); 255 managed_user_service->UserMayModifySettings(extension.get(), &error_2));
243 EXPECT_FALSE(error_2.empty()); 256 EXPECT_FALSE(error_2.empty());
244 257
245 #ifndef NDEBUG 258 #ifndef NDEBUG
246 EXPECT_FALSE(managed_user_service->GetDebugPolicyProviderName().empty()); 259 EXPECT_FALSE(managed_user_service->GetDebugPolicyProviderName().empty());
247 #endif 260 #endif
248 } 261 }
249 262
250
251 TEST_F(ManagedUserServiceExtensionTest, NoContentPacks) { 263 TEST_F(ManagedUserServiceExtensionTest, NoContentPacks) {
252 ManagedUserService* managed_user_service = 264 ManagedUserService* managed_user_service =
253 ManagedUserServiceFactory::GetForProfile(profile_.get()); 265 ManagedUserServiceFactory::GetForProfile(profile_.get());
254 managed_user_service->Init();
255 ManagedModeURLFilter* url_filter = 266 ManagedModeURLFilter* url_filter =
256 managed_user_service->GetURLFilterForUIThread(); 267 managed_user_service->GetURLFilterForUIThread();
257 268
258 GURL url("http://youtube.com"); 269 GURL url("http://youtube.com");
259 ScopedVector<ManagedModeSiteList> site_lists = 270 ScopedVector<ManagedModeSiteList> site_lists =
260 GetActiveSiteLists(managed_user_service); 271 GetActiveSiteLists(managed_user_service);
261 ASSERT_EQ(0u, site_lists.size()); 272 ASSERT_EQ(0u, site_lists.size());
262 EXPECT_EQ(ManagedModeURLFilter::ALLOW, 273 EXPECT_EQ(ManagedModeURLFilter::ALLOW,
263 url_filter->GetFilteringBehaviorForURL(url)); 274 url_filter->GetFilteringBehaviorForURL(url));
264 } 275 }
265 276
266 TEST_F(ManagedUserServiceExtensionTest, InstallContentPacks) { 277 TEST_F(ManagedUserServiceExtensionTest, InstallContentPacks) {
267 ManagedUserService* managed_user_service = 278 ManagedUserService* managed_user_service =
268 ManagedUserServiceFactory::GetForProfile(profile_.get()); 279 ManagedUserServiceFactory::GetForProfile(profile_.get());
269 managed_user_service->InitForTesting();
270 ManagedModeURLFilter* url_filter = 280 ManagedModeURLFilter* url_filter =
271 managed_user_service->GetURLFilterForUIThread(); 281 managed_user_service->GetURLFilterForUIThread();
272 ManagedModeURLFilterObserver observer(url_filter); 282 ManagedModeURLFilterObserver observer(url_filter);
273 observer.Wait(); 283 observer.Wait();
274 284
275 GURL example_url("http://example.com"); 285 GURL example_url("http://example.com");
276 GURL moose_url("http://moose.org"); 286 GURL moose_url("http://moose.org");
277 EXPECT_EQ(ManagedModeURLFilter::ALLOW, 287 EXPECT_EQ(ManagedModeURLFilter::ALLOW,
278 url_filter->GetFilteringBehaviorForURL(example_url)); 288 url_filter->GetFilteringBehaviorForURL(example_url));
279 289
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 sites.clear(); 373 sites.clear();
364 site_lists[0]->GetSites(&sites); 374 site_lists[0]->GetSites(&sites);
365 ASSERT_EQ(1u, sites.size()); 375 ASSERT_EQ(1u, sites.size());
366 EXPECT_EQ(ASCIIToUTF16("Moose"), sites[0].name); 376 EXPECT_EQ(ASCIIToUTF16("Moose"), sites[0].name);
367 377
368 EXPECT_EQ(ManagedModeURLFilter::WARN, 378 EXPECT_EQ(ManagedModeURLFilter::WARN,
369 url_filter->GetFilteringBehaviorForURL(example_url)); 379 url_filter->GetFilteringBehaviorForURL(example_url));
370 EXPECT_EQ(ManagedModeURLFilter::ALLOW, 380 EXPECT_EQ(ManagedModeURLFilter::ALLOW,
371 url_filter->GetFilteringBehaviorForURL(moose_url)); 381 url_filter->GetFilteringBehaviorForURL(moose_url));
372 } 382 }
OLDNEW
« no previous file with comments | « chrome/browser/managed_mode/managed_user_service_browsertest.cc ('k') | chrome/browser/profiles/profile_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698