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

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

Issue 9694038: OBSOLETE REVIEW. See http://codereview.chromium.org/10382149/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 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/extensions/extension_management_apitest.cc
===================================================================
--- chrome/browser/extensions/extension_management_apitest.cc (revision 136836)
+++ chrome/browser/extensions/extension_management_apitest.cc (working copy)
@@ -1,10 +1,11 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/extensions/extension_apitest.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_test_message_listener.h"
+#include "chrome/browser/extensions/test_extension_management_policy.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_list.h"
@@ -64,6 +65,28 @@
ASSERT_TRUE(launched_app.WaitUntilSatisfied());
}
+
+ // Returns the extension ID of the first extension found with the given |name|
+ // (from its manifest), or an empty string if no match was found. Includes
+ // both enabled and disabled extensions.
+ std::string GetExtensionIdByName(const ExtensionService* service,
+ const std::string& name) {
+ for (ExtensionSet::const_iterator iter = service->extensions()->begin();
+ iter != service->extensions()->end(); ++iter) {
+ const Extension* extension = (*iter);
+ if (extension->name() == name)
+ return extension->id();
+ }
+ for (ExtensionSet::const_iterator iter =
+ service->disabled_extensions()->begin();
+ iter != service->disabled_extensions()->end();
+ ++iter) {
+ const Extension* extension = (*iter);
+ if (extension->name() == name)
+ return extension->id();
+ }
+ return "";
+ }
};
IN_PROC_BROWSER_TEST_F(ExtensionManagementApiTest, Basics) {
@@ -76,6 +99,37 @@
ASSERT_TRUE(RunExtensionSubtest("management/test", "uninstall.html"));
}
+IN_PROC_BROWSER_TEST_F(ExtensionManagementApiTest, ManagementPolicyAllowed) {
+ InstallExtensions();
+ ExtensionService* service = browser()->profile()->GetExtensionService();
+ std::string id = GetExtensionIdByName(service, "enabled_extension");
+ EXPECT_NE("", id);
+
+ // Ensure that all actions are allowed.
+ service->extension_management_policy()->UnregisterAllDelegates();
+
+ ASSERT_TRUE(RunExtensionSubtest("management/management_policy",
+ "allowed.html"));
+ // The last thing the test does is uninstall the "enabled_extension".
+ id = GetExtensionIdByName(service, "enabled_extension");
+ EXPECT_EQ("", id);
+}
+
+IN_PROC_BROWSER_TEST_F(ExtensionManagementApiTest, ManagementPolicyProhibited) {
+ InstallExtensions();
+ ExtensionService* service = browser()->profile()->GetExtensionService();
+ std::string id = GetExtensionIdByName(service, "enabled_extension");
+ EXPECT_NE("", id);
+
+ // Prohibit status changes.
+ service->extension_management_policy()->UnregisterAllDelegates();
+ TestExtensionManagementPolicyDelegate management_policy(
+ TestExtensionManagementPolicyDelegate::PROHIBIT_MODIFY_STATUS);
+ service->extension_management_policy()->RegisterDelegate(&management_policy);
+ ASSERT_TRUE(RunExtensionSubtest("management/management_policy",
+ "prohibited.html"));
+}
+
IN_PROC_BROWSER_TEST_F(ExtensionManagementApiTest, LaunchPanelApp) {
ExtensionService* service = browser()->profile()->GetExtensionService();

Powered by Google App Engine
This is Rietveld 408576698