Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / management / management_browsertest.cc
index f0036ff..1407b57 100644 (file)
@@ -12,7 +12,6 @@
 #include "chrome/browser/extensions/extension_browsertest.h"
 #include "chrome/browser/extensions/extension_host.h"
 #include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/extensions/extension_system.h"
 #include "chrome/browser/extensions/extension_test_message_listener.h"
 #include "chrome/browser/extensions/external_policy_loader.h"
 #include "chrome/browser/extensions/updater/extension_downloader.h"
 #include "content/public/browser/render_view_host.h"
 #include "content/public/test/browser_test_utils.h"
 #include "content/test/net/url_request_prepackaged_interceptor.h"
+#include "extensions/browser/extension_registry.h"
+#include "extensions/browser/extension_system.h"
+#include "extensions/browser/pref_names.h"
 #include "net/url_request/url_fetcher.h"
 
 using extensions::Extension;
+using extensions::ExtensionRegistry;
 using extensions::Manifest;
 
 class ExtensionManagementTest : public ExtensionBrowserTest {
@@ -46,7 +49,7 @@ class ExtensionManagementTest : public ExtensionBrowserTest {
     // Test that the extension's version from the manifest and reported by the
     // background page is correct.  This is to ensure that the processes are in
     // sync with the Extension.
-    ExtensionProcessManager* manager =
+    extensions::ProcessManager* manager =
         extensions::ExtensionSystem::Get(browser()->profile())->
             process_manager();
     extensions::ExtensionHost* ext_host =
@@ -138,11 +141,10 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, MAYBE_InstallRequiresConfirm) {
 
 // Tests that disabling and re-enabling an extension works.
 IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, DisableEnable) {
-  ExtensionProcessManager* manager =
+  extensions::ProcessManager* manager =
       extensions::ExtensionSystem::Get(browser()->profile())->process_manager();
-  ExtensionService* service = extensions::ExtensionSystem::Get(
-      browser()->profile())->extension_service();
-  const size_t size_before = service->extensions()->size();
+  ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile());
+  const size_t size_before = registry->enabled_extensions().size();
 
   // Load an extension, expect the background page to be available.
   std::string extension_id = "bjafgdebaacbbbecmhlhpofkepfkgcpa";
@@ -150,20 +152,20 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, DisableEnable) {
       test_data_dir_.AppendASCII("good").AppendASCII("Extensions")
                     .AppendASCII(extension_id)
                     .AppendASCII("1.0")));
-  ASSERT_EQ(size_before + 1, service->extensions()->size());
-  EXPECT_EQ(0u, service->disabled_extensions()->size());
+  ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
+  EXPECT_EQ(0u, registry->disabled_extensions().size());
   EXPECT_TRUE(manager->GetBackgroundHostForExtension(extension_id));
 
   // After disabling, the background page should go away.
   DisableExtension(extension_id);
-  EXPECT_EQ(size_before, service->extensions()->size());
-  EXPECT_EQ(1u, service->disabled_extensions()->size());
+  EXPECT_EQ(size_before, registry->enabled_extensions().size());
+  EXPECT_EQ(1u, registry->disabled_extensions().size());
   EXPECT_FALSE(manager->GetBackgroundHostForExtension(extension_id));
 
   // And bring it back.
   EnableExtension(extension_id);
-  EXPECT_EQ(size_before + 1, service->extensions()->size());
-  EXPECT_EQ(0u, service->disabled_extensions()->size());
+  EXPECT_EQ(size_before + 1, registry->enabled_extensions().size());
+  EXPECT_EQ(0u, registry->disabled_extensions().size());
   EXPECT_TRUE(manager->GetBackgroundHostForExtension(extension_id));
 }
 
@@ -263,13 +265,14 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, MAYBE_AutoUpdate) {
   ExtensionTestMessageListener listener1("v1 installed", false);
   ExtensionService* service = extensions::ExtensionSystem::Get(
       browser()->profile())->extension_service();
-  const size_t size_before = service->extensions()->size();
-  ASSERT_TRUE(service->disabled_extensions()->is_empty());
+  ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile());
+  const size_t size_before = registry->enabled_extensions().size();
+  ASSERT_TRUE(registry->disabled_extensions().is_empty());
   const Extension* extension =
       InstallExtension(basedir.AppendASCII("v1.crx"), 1);
   ASSERT_TRUE(extension);
   listener1.WaitUntilSatisfied();
-  ASSERT_EQ(size_before + 1, service->extensions()->size());
+  ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
   ASSERT_EQ("ogjcoiohnmldgjemafoockdghcjciccf", extension->id());
   ASSERT_EQ("1.0", extension->VersionString());
 
@@ -283,7 +286,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, MAYBE_AutoUpdate) {
   service->updater()->CheckNow(params);
   ASSERT_TRUE(WaitForExtensionInstall());
   listener2.WaitUntilSatisfied();
-  ASSERT_EQ(size_before + 1, service->extensions()->size());
+  ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
   extension = service->GetExtensionById(
       "ogjcoiohnmldgjemafoockdghcjciccf", false);
   ASSERT_TRUE(extension);
@@ -310,7 +313,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, MAYBE_AutoUpdate) {
                           "ogjcoiohnmldgjemafoockdghcjciccf"));
 
   // Make sure the extension state is the same as before.
-  ASSERT_EQ(size_before + 1, service->extensions()->size());
+  ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
   extension = service->GetExtensionById(
       "ogjcoiohnmldgjemafoockdghcjciccf", false);
   ASSERT_TRUE(extension);
@@ -347,15 +350,16 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest,
   ExtensionTestMessageListener listener1("v1 installed", false);
   ExtensionService* service = extensions::ExtensionSystem::Get(
       browser()->profile())->extension_service();
-  const size_t enabled_size_before = service->extensions()->size();
-  const size_t disabled_size_before = service->disabled_extensions()->size();
+  ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile());
+  const size_t enabled_size_before = registry->enabled_extensions().size();
+  const size_t disabled_size_before = registry->disabled_extensions().size();
   const Extension* extension =
       InstallExtension(basedir.AppendASCII("v1.crx"), 1);
   ASSERT_TRUE(extension);
   listener1.WaitUntilSatisfied();
   DisableExtension(extension->id());
-  ASSERT_EQ(disabled_size_before + 1, service->disabled_extensions()->size());
-  ASSERT_EQ(enabled_size_before, service->extensions()->size());
+  ASSERT_EQ(disabled_size_before + 1, registry->disabled_extensions().size());
+  ASSERT_EQ(enabled_size_before, registry->enabled_extensions().size());
   ASSERT_EQ("ogjcoiohnmldgjemafoockdghcjciccf", extension->id());
   ASSERT_EQ("1.0", extension->VersionString());
 
@@ -369,8 +373,8 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest,
   // is still disabled.
   service->updater()->CheckNow(params);
   ASSERT_TRUE(WaitForExtensionInstall());
-  ASSERT_EQ(disabled_size_before + 1, service->disabled_extensions()->size());
-  ASSERT_EQ(enabled_size_before, service->extensions()->size());
+  ASSERT_EQ(disabled_size_before + 1, registry->disabled_extensions().size());
+  ASSERT_EQ(enabled_size_before, registry->enabled_extensions().size());
   extension = service->GetExtensionById(
       "ogjcoiohnmldgjemafoockdghcjciccf", true);
   ASSERT_TRUE(extension);
@@ -390,14 +394,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest,
   notification_listener.Reset();
 }
 
-// TODO(linux_aura) http://crbug.com/163931
-#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_AURA)
-#define MAYBE_ExternalUrlUpdate DISABLED_ExternalUrlUpdate
-#else
-#define MAYBE_ExternalUrlUpdate ExternalUrlUpdate
-#endif
-
-IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, MAYBE_ExternalUrlUpdate) {
+IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, ExternalUrlUpdate) {
   ExtensionService* service = extensions::ExtensionSystem::Get(
       browser()->profile())->extension_service();
   const char* kExtensionId = "ogjcoiohnmldgjemafoockdghcjciccf";
@@ -415,8 +412,9 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, MAYBE_ExternalUrlUpdate) {
   interceptor.SetResponseIgnoreQuery(GURL("http://localhost/autoupdate/v2.crx"),
                                      basedir.AppendASCII("v2.crx"));
 
-  const size_t size_before = service->extensions()->size();
-  ASSERT_TRUE(service->disabled_extensions()->is_empty());
+  ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile());
+  const size_t size_before = registry->enabled_extensions().size();
+  ASSERT_TRUE(registry->disabled_extensions().is_empty());
 
   extensions::PendingExtensionManager* pending_extension_manager =
       service->pending_extension_manager();
@@ -433,7 +431,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, MAYBE_ExternalUrlUpdate) {
   // Run autoupdate and make sure version 2 of the extension was installed.
   service->updater()->CheckNow(params);
   ASSERT_TRUE(WaitForExtensionInstall());
-  ASSERT_EQ(size_before + 1, service->extensions()->size());
+  ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
   const Extension* extension = service->GetExtensionById(kExtensionId, false);
   ASSERT_TRUE(extension);
   ASSERT_EQ("2.0", extension->VersionString());
@@ -498,17 +496,19 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, ExternalPolicyRefresh) {
   interceptor.SetResponseIgnoreQuery(GURL("http://localhost/autoupdate/v2.crx"),
                                      basedir.AppendASCII("v2.crx"));
 
-  const size_t size_before = service->extensions()->size();
-  ASSERT_TRUE(service->disabled_extensions()->is_empty());
+  ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile());
+  const size_t size_before = registry->enabled_extensions().size();
+  ASSERT_TRUE(registry->disabled_extensions().is_empty());
 
   PrefService* prefs = browser()->profile()->GetPrefs();
   const base::DictionaryValue* forcelist =
-      prefs->GetDictionary(prefs::kExtensionInstallForceList);
+      prefs->GetDictionary(extensions::pref_names::kInstallForceList);
   ASSERT_TRUE(forcelist->empty()) << kForceInstallNotEmptyHelp;
 
   {
     // Set the policy as a user preference and fire notification observers.
-    DictionaryPrefUpdate pref_update(prefs, prefs::kExtensionInstallForceList);
+    DictionaryPrefUpdate pref_update(prefs,
+                                     extensions::pref_names::kInstallForceList);
     base::DictionaryValue* forcelist = pref_update.Get();
     extensions::ExternalPolicyLoader::AddExtension(
         forcelist, kExtensionId, "http://localhost/autoupdate/manifest");
@@ -516,7 +516,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, ExternalPolicyRefresh) {
 
   // Check if the extension got installed.
   ASSERT_TRUE(WaitForExtensionInstall());
-  ASSERT_EQ(size_before + 1, service->extensions()->size());
+  ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
   const Extension* extension = service->GetExtensionById(kExtensionId, false);
   ASSERT_TRUE(extension);
   ASSERT_EQ("2.0", extension->VersionString());
@@ -524,23 +524,23 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, ExternalPolicyRefresh) {
 
   // Try to disable and uninstall the extension which should fail.
   DisableExtension(kExtensionId);
-  EXPECT_EQ(size_before + 1, service->extensions()->size());
-  EXPECT_EQ(0u, service->disabled_extensions()->size());
+  EXPECT_EQ(size_before + 1, registry->enabled_extensions().size());
+  EXPECT_EQ(0u, registry->disabled_extensions().size());
   UninstallExtension(kExtensionId);
-  EXPECT_EQ(size_before + 1, service->extensions()->size());
-  EXPECT_EQ(0u, service->disabled_extensions()->size());
+  EXPECT_EQ(size_before + 1, registry->enabled_extensions().size());
+  EXPECT_EQ(0u, registry->disabled_extensions().size());
 
   // Now try to disable it through the management api, again failing.
   ExtensionTestMessageListener listener1("ready", false);
   ASSERT_TRUE(LoadExtension(
       test_data_dir_.AppendASCII("management/uninstall_extension")));
   ASSERT_TRUE(listener1.WaitUntilSatisfied());
-  EXPECT_EQ(size_before + 2, service->extensions()->size());
-  EXPECT_EQ(0u, service->disabled_extensions()->size());
+  EXPECT_EQ(size_before + 2, registry->enabled_extensions().size());
+  EXPECT_EQ(0u, registry->disabled_extensions().size());
 
   // Check that emptying the list triggers uninstall.
-  prefs->ClearPref(prefs::kExtensionInstallForceList);
-  EXPECT_EQ(size_before + 1, service->extensions()->size());
+  prefs->ClearPref(extensions::pref_names::kInstallForceList);
+  EXPECT_EQ(size_before + 1, registry->enabled_extensions().size());
   EXPECT_FALSE(service->GetExtensionById(kExtensionId, true));
 }
 
@@ -555,12 +555,13 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest,
                        MAYBE_PolicyOverridesUserInstall) {
   ExtensionService* service = extensions::ExtensionSystem::Get(
       browser()->profile())->extension_service();
+  ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile());
   const char* kExtensionId = "ogjcoiohnmldgjemafoockdghcjciccf";
   extensions::ExtensionUpdater::CheckParams params;
   service->updater()->set_default_check_params(params);
-  const size_t size_before = service->extensions()->size();
+  const size_t size_before = registry->enabled_extensions().size();
   base::FilePath basedir = test_data_dir_.AppendASCII("autoupdate");
-  ASSERT_TRUE(service->disabled_extensions()->is_empty());
+  ASSERT_TRUE(registry->disabled_extensions().is_empty());
 
   // Note: This interceptor gets requests on the IO thread.
   content::URLLocalHostRequestPrepackagedInterceptor interceptor;
@@ -575,12 +576,12 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest,
   // Check that the policy is initially empty.
   PrefService* prefs = browser()->profile()->GetPrefs();
   const base::DictionaryValue* forcelist =
-      prefs->GetDictionary(prefs::kExtensionInstallForceList);
+      prefs->GetDictionary(extensions::pref_names::kInstallForceList);
   ASSERT_TRUE(forcelist->empty()) << kForceInstallNotEmptyHelp;
 
   // User install of the extension.
   ASSERT_TRUE(InstallExtension(basedir.AppendASCII("v2.crx"), 1));
-  ASSERT_EQ(size_before + 1, service->extensions()->size());
+  ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
   const Extension* extension = service->GetExtensionById(kExtensionId, false);
   ASSERT_TRUE(extension);
   EXPECT_EQ(Manifest::INTERNAL, extension->location());
@@ -588,13 +589,14 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest,
 
   // Setup the force install policy. It should override the location.
   {
-    DictionaryPrefUpdate pref_update(prefs, prefs::kExtensionInstallForceList);
+    DictionaryPrefUpdate pref_update(prefs,
+                                     extensions::pref_names::kInstallForceList);
     extensions::ExternalPolicyLoader::AddExtension(
         pref_update.Get(), kExtensionId,
         "http://localhost/autoupdate/manifest");
   }
   ASSERT_TRUE(WaitForExtensionInstall());
-  ASSERT_EQ(size_before + 1, service->extensions()->size());
+  ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
   extension = service->GetExtensionById(kExtensionId, false);
   ASSERT_TRUE(extension);
   EXPECT_EQ(Manifest::EXTERNAL_POLICY_DOWNLOAD, extension->location());
@@ -604,22 +606,22 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest,
   // TODO(joaodasilva): it would be nicer if the extension was kept instead,
   // and reverted location to INTERNAL or whatever it was before the policy
   // was applied.
-  prefs->ClearPref(prefs::kExtensionInstallForceList);
-  ASSERT_EQ(size_before, service->extensions()->size());
+  prefs->ClearPref(extensions::pref_names::kInstallForceList);
+  ASSERT_EQ(size_before, registry->enabled_extensions().size());
   extension = service->GetExtensionById(kExtensionId, true);
   EXPECT_FALSE(extension);
 
   // User install again, but have it disabled too before setting the policy.
   ASSERT_TRUE(InstallExtension(basedir.AppendASCII("v2.crx"), 1));
-  ASSERT_EQ(size_before + 1, service->extensions()->size());
+  ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
   extension = service->GetExtensionById(kExtensionId, false);
   ASSERT_TRUE(extension);
   EXPECT_EQ(Manifest::INTERNAL, extension->location());
   EXPECT_TRUE(service->IsExtensionEnabled(kExtensionId));
-  EXPECT_TRUE(service->disabled_extensions()->is_empty());
+  EXPECT_TRUE(registry->disabled_extensions().is_empty());
 
   DisableExtension(kExtensionId);
-  EXPECT_EQ(1u, service->disabled_extensions()->size());
+  EXPECT_EQ(1u, registry->disabled_extensions().size());
   extension = service->GetExtensionById(kExtensionId, true);
   EXPECT_TRUE(extension);
   EXPECT_FALSE(service->IsExtensionEnabled(kExtensionId));
@@ -627,16 +629,17 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest,
   // Install the policy again. It should overwrite the extension's location,
   // and force enable it too.
   {
-    DictionaryPrefUpdate pref_update(prefs, prefs::kExtensionInstallForceList);
+    DictionaryPrefUpdate pref_update(prefs,
+                                     extensions::pref_names::kInstallForceList);
     base::DictionaryValue* forcelist = pref_update.Get();
     extensions::ExternalPolicyLoader::AddExtension(
         forcelist, kExtensionId, "http://localhost/autoupdate/manifest");
   }
   ASSERT_TRUE(WaitForExtensionInstall());
-  ASSERT_EQ(size_before + 1, service->extensions()->size());
+  ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
   extension = service->GetExtensionById(kExtensionId, false);
   ASSERT_TRUE(extension);
   EXPECT_EQ(Manifest::EXTERNAL_POLICY_DOWNLOAD, extension->location());
   EXPECT_TRUE(service->IsExtensionEnabled(kExtensionId));
-  EXPECT_TRUE(service->disabled_extensions()->is_empty());
+  EXPECT_TRUE(registry->disabled_extensions().is_empty());
 }