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

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: Fixing the build again! Created 4 years, 6 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 3bf196811302f04ecaba9c41f0c4cca789ff5d28..ac4e24eafe79e9c5c1ec972620a1b8efb57cc501 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"
@@ -47,6 +48,8 @@
#include "extensions/common/extension.h"
#include "extensions/common/extension_builder.h"
#include "extensions/common/manifest_constants.h"
+
+using extensions::Extension;
#endif
using content::MessageLoopRunner;
@@ -260,6 +263,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();
@@ -437,14 +445,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,
+ ExtensionManagementPolicyProviderWithoutSUInitiatedInstalls) {
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();
@@ -490,6 +514,75 @@ TEST_F(SupervisedUserServiceExtensionTest, ExtensionManagementPolicyProvider) {
#endif
}
+TEST_F(SupervisedUserServiceExtensionTest,
+ ExtensionManagementPolicyProviderWithSUInitiatedInstalls) {
+ 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());
+
+ base::string16 error_3;
+ Extension::DisableReason reason = Extension::DISABLE_NONE;
+ EXPECT_TRUE(supervised_user_service->MustRemainDisabled(extension.get(),
+ &reason,
+ &error_3));
+ EXPECT_EQ(Extension::DISABLE_CUSTODIAN_APPROVAL_REQUIRED, reason);
+ EXPECT_FALSE(error_3.empty());
+
+ base::string16 error_4;
+ EXPECT_TRUE(supervised_user_service->UserMayModifySettings(extension.get(),
+ &error_4));
+ EXPECT_TRUE(error_4.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(),
+ &error_2));
+ EXPECT_FALSE(error_2.empty());
+
+ base::string16 error_3;
+ Extension::DisableReason reason = Extension::DISABLE_NONE;
+ EXPECT_FALSE(supervised_user_service->MustRemainDisabled(extension.get(),
+ &reason,
+ &error_3));
+ EXPECT_EQ(Extension::DISABLE_NONE, reason);
+ EXPECT_TRUE(error_3.empty());
+
+ base::string16 error_4;
+ EXPECT_FALSE(supervised_user_service->UserMayModifySettings(extension.get(),
+ &error_4));
+ EXPECT_FALSE(error_4.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