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

Unified Diff: chrome/browser/extensions/extension_service_unittest.cc

Issue 1078713002: Supervised users: Re-check ManagementPolicy when ProfileIsSupervised changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: shaving the yak Created 5 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/profiles/avatar_menu.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/extension_service_unittest.cc
diff --git a/chrome/browser/extensions/extension_service_unittest.cc b/chrome/browser/extensions/extension_service_unittest.cc
index ba02841a42b11295310c78fbba2a9a1595008ce3..43f31540123650ee5ce98f0ee71c82bc0de8361b 100644
--- a/chrome/browser/extensions/extension_service_unittest.cc
+++ b/chrome/browser/extensions/extension_service_unittest.cc
@@ -135,6 +135,7 @@
#if defined(ENABLE_SUPERVISED_USERS)
#include "chrome/browser/supervised_user/permission_request_creator.h"
+#include "chrome/browser/supervised_user/supervised_user_constants.h"
#include "chrome/browser/supervised_user/supervised_user_service.h"
#include "chrome/browser/supervised_user/supervised_user_service_factory.h"
#endif
@@ -6629,6 +6630,24 @@ TEST_F(ExtensionServiceTest, ProcessSyncDataNotInstalled) {
}
#if defined(ENABLE_SUPERVISED_USERS)
+class ScopedSupervisedUserServiceDelegate
+ : public SupervisedUserService::Delegate {
+ public:
+ explicit ScopedSupervisedUserServiceDelegate(SupervisedUserService* service)
+ : service_(service) {
+ service_->SetDelegate(this);
+ }
+ ~ScopedSupervisedUserServiceDelegate() override {
+ service_->SetDelegate(nullptr);
+ }
+
+ // This prevents the legacy supervised user init code from running.
+ bool SetActive(bool active) override { return true; }
+
+ private:
+ SupervisedUserService* service_;
+};
+
class MockPermissionRequestCreator : public PermissionRequestCreator {
public:
MockPermissionRequestCreator() {}
@@ -6656,7 +6675,8 @@ TEST_F(ExtensionServiceTest, SupervisedUser_InstallOnlyAllowedByCustodian) {
SupervisedUserService* supervised_user_service =
SupervisedUserServiceFactory::GetForProfile(profile());
- GetManagementPolicy()->RegisterProvider(supervised_user_service);
+ ScopedSupervisedUserServiceDelegate delegate(supervised_user_service);
+ supervised_user_service->Init();
base::FilePath path1 = data_dir().AppendASCII("good.crx");
base::FilePath path2 = data_dir().AppendASCII("good2048.crx");
@@ -6672,6 +6692,29 @@ TEST_F(ExtensionServiceTest, SupervisedUser_InstallOnlyAllowedByCustodian) {
EXPECT_TRUE(registry()->enabled_extensions().Contains(extensions[1]->id()));
}
+TEST_F(ExtensionServiceTest, SupervisedUser_PreinstalledExtension) {
+ ExtensionServiceInitParams params = CreateDefaultInitParams();
+ // Do *not* set the profile to supervised here!
+ InitializeExtensionService(params);
+
+ SupervisedUserService* supervised_user_service =
+ SupervisedUserServiceFactory::GetForProfile(profile());
+ ScopedSupervisedUserServiceDelegate delegate(supervised_user_service);
+ supervised_user_service->Init();
+
+ // Install an extension.
+ base::FilePath path = data_dir().AppendASCII("good.crx");
+ const Extension* extension = InstallCRX(path, INSTALL_NEW);
+ std::string id = extension->id();
+
+ // Now make the profile supervised.
+ profile()->AsTestingProfile()->SetSupervisedUserId(
+ supervised_users::kChildAccountSUID);
+
+ // The extension should not be enabled anymore.
+ EXPECT_FALSE(registry()->enabled_extensions().Contains(id));
+}
+
TEST_F(ExtensionServiceTest, SupervisedUser_UpdateWithoutPermissionIncrease) {
ExtensionServiceInitParams params = CreateDefaultInitParams();
params.profile_is_supervised = true;
@@ -6679,7 +6722,8 @@ TEST_F(ExtensionServiceTest, SupervisedUser_UpdateWithoutPermissionIncrease) {
SupervisedUserService* supervised_user_service =
SupervisedUserServiceFactory::GetForProfile(profile());
- GetManagementPolicy()->RegisterProvider(supervised_user_service);
+ ScopedSupervisedUserServiceDelegate delegate(supervised_user_service);
+ supervised_user_service->Init();
base::FilePath base_path = data_dir().AppendASCII("autoupdate");
base::FilePath pem_path = base_path.AppendASCII("key.pem");
@@ -6715,7 +6759,8 @@ TEST_F(ExtensionServiceTest, SupervisedUser_UpdateWithPermissionIncrease) {
SupervisedUserService* supervised_user_service =
SupervisedUserServiceFactory::GetForProfile(profile());
- GetManagementPolicy()->RegisterProvider(supervised_user_service);
+ ScopedSupervisedUserServiceDelegate delegate(supervised_user_service);
+ supervised_user_service->Init();
MockPermissionRequestCreator* creator = new MockPermissionRequestCreator;
supervised_user_service->AddPermissionRequestCreator(
make_scoped_ptr(creator));
« no previous file with comments | « no previous file | chrome/browser/profiles/avatar_menu.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698