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

Unified Diff: chrome/browser/supervised_user/supervised_user_service_unittest.cc

Issue 2004043002: Supervised Users Initiated Installs v2 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@kid_initiated_install
Patch Set: Style fix Created 4 years, 7 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
Index: chrome/browser/supervised_user/supervised_user_service_unittest.cc
diff --git a/chrome/browser/supervised_user/supervised_user_service_unittest.cc b/chrome/browser/supervised_user/supervised_user_service_unittest.cc
index 98460a4ab7830ae182e3fe83d81bc1f9d1d4524b..4cab1b8aaf6997b085c4405b0c78a475ebe01948 100644
--- a/chrome/browser/supervised_user/supervised_user_service_unittest.cc
+++ b/chrome/browser/supervised_user/supervised_user_service_unittest.cc
@@ -23,6 +23,7 @@
#include "chrome/browser/supervised_user/legacy/custodian_profile_downloader_service.h"
#include "chrome/browser/supervised_user/legacy/custodian_profile_downloader_service_factory.h"
#include "chrome/browser/supervised_user/permission_request_creator.h"
+#include "chrome/browser/supervised_user/supervised_user_features.h"
#include "chrome/browser/supervised_user/supervised_user_service_factory.h"
#include "chrome/browser/supervised_user/supervised_user_whitelist_service.h"
#include "chrome/browser/ui/browser_list.h"
@@ -259,6 +260,11 @@ class MockPermissionRequestCreator : public PermissionRequestCreator {
callbacks_.push_back(callback);
}
+ void CreateExtensionInstallRequest(const std::string& extension_id,
+ const SuccessCallback& callback) override {
+ FAIL();
+ }
+
void CreateExtensionUpdateRequest(const std::string& id,
const SuccessCallback& callback) override {
FAIL();
@@ -436,14 +442,30 @@ class SupervisedUserServiceExtensionTest
public:
SupervisedUserServiceExtensionTest()
: SupervisedUserServiceExtensionTestBase(true) {}
+
+ protected:
+ void InitSupervisedUserInitiatedExtensionInstallFeature(bool enabled) {
+ base::FeatureList::ClearInstanceForTesting();
+ std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList);
+ if (enabled) {
+ feature_list->InitializeFromCommandLine(
+ "SupervisedUserInitiatedExtensionInstall", std::string());
+ }
+ base::FeatureList::SetInstance(std::move(feature_list));
+ }
};
-TEST_F(SupervisedUserServiceExtensionTest, ExtensionManagementPolicyProvider) {
+TEST_F(SupervisedUserServiceExtensionTest,
+ ExtensionManagementPolicyProviderWithDisabledSUInitiatedInstalls) {
SupervisedUserService* supervised_user_service =
SupervisedUserServiceFactory::GetForProfile(profile_.get());
ASSERT_TRUE(profile_->IsSupervised());
- // Check that a supervised user can install and uninstall a theme.
+ // Disable supervised user initiated installs.
+ InitSupervisedUserInitiatedExtensionInstallFeature(false);
+
+ // Check that a supervised user can install and uninstall a theme even if
+ // they are not allowed to install extensions.
{
scoped_refptr<extensions::Extension> theme = MakeThemeExtension();
@@ -489,6 +511,49 @@ TEST_F(SupervisedUserServiceExtensionTest, ExtensionManagementPolicyProvider) {
#endif
}
+TEST_F(SupervisedUserServiceExtensionTest,
+ ExtensionManagementPolicyProviderWithEnabledSUInitiatedInstalls) {
+ SupervisedUserService* supervised_user_service =
+ SupervisedUserServiceFactory::GetForProfile(profile_.get());
+ ASSERT_TRUE(profile_->IsSupervised());
+
+ // Enable supervised user initiated installs.
+ InitSupervisedUserInitiatedExtensionInstallFeature(true);
+ // The supervised user should be able to load and uninstall the extensions
+ // they install.
+ {
+ scoped_refptr<extensions::Extension> extension = MakeExtension(false);
+
+ base::string16 error;
+ EXPECT_TRUE(supervised_user_service->UserMayLoad(extension.get(), &error));
+ EXPECT_TRUE(error.empty());
+
+ base::string16 error_2;
+ EXPECT_FALSE(supervised_user_service->MustRemainInstalled(extension.get(),
+ &error_2));
+ EXPECT_TRUE(error_2.empty());
+ }
+
+ {
+ // A custodian-installed extension may be loaded, but not uninstalled.
+ scoped_refptr<extensions::Extension> extension = MakeExtension(true);
+
+ base::string16 error_1;
+ EXPECT_TRUE(
+ supervised_user_service->UserMayLoad(extension.get(), &error_1));
+ EXPECT_TRUE(error_1.empty());
+
+ base::string16 error_2;
+ EXPECT_TRUE(supervised_user_service->MustRemainInstalled(extension.get(),
Marc Treib 2016/05/23 15:32:42 Add checks for MustRemainDisabled, and also for Us
mamir 2016/05/23 19:35:14 Done.
+ &error_2));
+ EXPECT_FALSE(error_2.empty());
+ }
+
+#ifndef NDEBUG
+ EXPECT_FALSE(supervised_user_service->GetDebugPolicyProviderName().empty());
+#endif
+}
+
TEST_F(SupervisedUserServiceExtensionTest, NoContentPacks) {
SupervisedUserService* supervised_user_service =
SupervisedUserServiceFactory::GetForProfile(profile_.get());

Powered by Google App Engine
This is Rietveld 408576698