Commit 376fa417 authored by treib@chromium.org's avatar treib@chromium.org

Apps&Extensions for supervised users: Add test for WAS_INSTALLED_BY_CUSTODIAN flag.

This CL adds a test which checks that the flag introduced in https://codereview.chromium.org/353493002/ is interpreted correctly by the SupervisedUserService's implementation of ManagementPolicy::Provider.

BUG=390520

Review URL: https://codereview.chromium.org/401643002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284058 0039d316-1c4b-4281-b951-d872f2087c98
parent c451c2e0
...@@ -201,14 +201,17 @@ class SupervisedUserServiceExtensionTestBase ...@@ -201,14 +201,17 @@ class SupervisedUserServiceExtensionTestBase
return extension; return extension;
} }
scoped_refptr<extensions::Extension> MakeExtension() { scoped_refptr<extensions::Extension> MakeExtension(bool by_custodian) {
scoped_ptr<base::DictionaryValue> manifest = extensions::DictionaryBuilder() scoped_ptr<base::DictionaryValue> manifest = extensions::DictionaryBuilder()
.Set(extensions::manifest_keys::kName, "Extension") .Set(extensions::manifest_keys::kName, "Extension")
.Set(extensions::manifest_keys::kVersion, "1.0") .Set(extensions::manifest_keys::kVersion, "1.0")
.Build(); .Build();
int creation_flags = extensions::Extension::NO_FLAGS;
if (by_custodian)
creation_flags |= extensions::Extension::WAS_INSTALLED_BY_CUSTODIAN;
extensions::ExtensionBuilder builder; extensions::ExtensionBuilder builder;
scoped_refptr<extensions::Extension> extension = scoped_refptr<extensions::Extension> extension =
builder.SetManifest(manifest.Pass()).Build(); builder.SetManifest(manifest.Pass()).AddFlags(creation_flags).Build();
return extension; return extension;
} }
...@@ -236,7 +239,7 @@ TEST_F(SupervisedUserServiceExtensionTestUnsupervised, ...@@ -236,7 +239,7 @@ TEST_F(SupervisedUserServiceExtensionTestUnsupervised,
SupervisedUserServiceFactory::GetForProfile(profile_.get()); SupervisedUserServiceFactory::GetForProfile(profile_.get());
EXPECT_FALSE(profile_->IsSupervised()); EXPECT_FALSE(profile_->IsSupervised());
scoped_refptr<extensions::Extension> extension = MakeExtension(); scoped_refptr<extensions::Extension> extension = MakeExtension(false);
base::string16 error_1; base::string16 error_1;
EXPECT_TRUE(supervised_user_service->UserMayLoad(extension.get(), &error_1)); EXPECT_TRUE(supervised_user_service->UserMayLoad(extension.get(), &error_1));
EXPECT_EQ(base::string16(), error_1); EXPECT_EQ(base::string16(), error_1);
...@@ -267,16 +270,29 @@ TEST_F(SupervisedUserServiceExtensionTest, ExtensionManagementPolicyProvider) { ...@@ -267,16 +270,29 @@ TEST_F(SupervisedUserServiceExtensionTest, ExtensionManagementPolicyProvider) {
EXPECT_TRUE(error_1.empty()); EXPECT_TRUE(error_1.empty());
// Now check a different kind of extension. // Now check a different kind of extension.
scoped_refptr<extensions::Extension> extension = MakeExtension(); scoped_refptr<extensions::Extension> extension = MakeExtension(false);
EXPECT_FALSE(supervised_user_service->UserMayLoad(extension.get(), &error_1)); EXPECT_FALSE(supervised_user_service->UserMayLoad(extension.get(), &error_1));
EXPECT_FALSE(error_1.empty()); EXPECT_FALSE(error_1.empty());
base::string16 error_2; base::string16 error_2;
EXPECT_FALSE( EXPECT_FALSE(supervised_user_service->UserMayModifySettings(extension.get(),
supervised_user_service->UserMayModifySettings(extension.get(), &error_2));
&error_2));
EXPECT_FALSE(error_2.empty()); EXPECT_FALSE(error_2.empty());
// Check that an extension that was installed by the custodian may be loaded.
base::string16 error_3;
scoped_refptr<extensions::Extension> extension_2 = MakeExtension(true);
EXPECT_TRUE(supervised_user_service->UserMayLoad(extension_2.get(),
&error_3));
EXPECT_TRUE(error_3.empty());
// The supervised user should still not be able to uninstall or disable the
// extension.
base::string16 error_4;
EXPECT_FALSE(supervised_user_service->UserMayModifySettings(extension_2.get(),
&error_4));
EXPECT_FALSE(error_4.empty());
#ifndef NDEBUG #ifndef NDEBUG
EXPECT_FALSE(supervised_user_service->GetDebugPolicyProviderName().empty()); EXPECT_FALSE(supervised_user_service->GetDebugPolicyProviderName().empty());
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment