Chromium Code Reviews| Index: chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc |
| diff --git a/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc b/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc |
| index 0da4bdc6f27f3ef3ad47d065beda98f71ec05e71..3914f5e80551a255f3fa07a38e6c844a323debce 100644 |
| --- a/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc |
| +++ b/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc |
| @@ -24,6 +24,7 @@ |
| #include "content/public/browser/render_view_host.h" |
| #include "content/public/test/browser_test_utils.h" |
| #include "content/public/test/test_utils.h" |
| +#include "extensions/browser/api/management/management_api.h" |
| #include "extensions/browser/extension_registry.h" |
| #include "extensions/browser/extension_system.h" |
| #include "extensions/browser/test_extension_registry_observer.h" |
| @@ -36,7 +37,10 @@ ExtensionSettingsUIBrowserTest::ExtensionSettingsUIBrowserTest() |
| : profile_(NULL), |
| policy_provider_(TestManagementPolicyProvider::PROHIBIT_MODIFY_STATUS | |
| TestManagementPolicyProvider::MUST_REMAIN_ENABLED | |
| - TestManagementPolicyProvider::MUST_REMAIN_INSTALLED) {} |
| + TestManagementPolicyProvider::MUST_REMAIN_INSTALLED) { |
| + CHECK(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir_)); |
| + test_data_dir_ = test_data_dir_.AppendASCII("extensions"); |
| +} |
| ExtensionSettingsUIBrowserTest::~ExtensionSettingsUIBrowserTest() {} |
| @@ -54,26 +58,13 @@ void ExtensionSettingsUIBrowserTest::SetUpOnMainThread() { |
| } |
| void ExtensionSettingsUIBrowserTest::InstallGoodExtension() { |
| - base::FilePath test_data_dir; |
| - if (!PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir)) { |
| - ADD_FAILURE(); |
| - return; |
| - } |
| - base::FilePath extensions_data_dir = test_data_dir.AppendASCII("extensions"); |
| - EXPECT_TRUE(InstallExtension(extensions_data_dir.AppendASCII("good.crx"))); |
| + EXPECT_TRUE(InstallExtension(test_data_dir_.AppendASCII("good.crx"))); |
| } |
| void ExtensionSettingsUIBrowserTest::InstallErrorsExtension() { |
| - base::FilePath test_data_dir; |
| - if (!PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir)) { |
| - ADD_FAILURE(); |
| - return; |
| - } |
| - base::FilePath extensions_data_dir = test_data_dir.AppendASCII("extensions"); |
| - extensions_data_dir = extensions_data_dir.AppendASCII("error_console"); |
| EXPECT_TRUE(InstallUnpackedExtension( |
| - extensions_data_dir.AppendASCII("runtime_and_manifest_errors"), |
| - "pdlpifnclfacjobnmbpngemkalkjamnf")); |
| + test_data_dir_.AppendASCII("error_console") |
| + .AppendASCII("runtime_and_manifest_errors"))); |
| } |
| void ExtensionSettingsUIBrowserTest::AddManagedPolicyProvider() { |
| @@ -81,6 +72,19 @@ void ExtensionSettingsUIBrowserTest::AddManagedPolicyProvider() { |
| extension_service->management_policy()->RegisterProvider(&policy_provider_); |
| } |
| +void ExtensionSettingsUIBrowserTest::SetAutoConfirmUninstall() { |
| + extensions::ManagementUninstallFunctionBase::SetAutoConfirmForTest(true); |
| +} |
| + |
| +void ExtensionSettingsUIBrowserTest::InstallSharedModule() { |
| + base::FilePath shared_module_path = |
| + test_data_dir_.AppendASCII("api_test").AppendASCII("shared_module"); |
| + EXPECT_TRUE(InstallUnpackedExtension( |
| + shared_module_path.AppendASCII("shared"))); |
| + EXPECT_TRUE(InstallUnpackedExtension( |
| + shared_module_path.AppendASCII("import_pass"))); |
| +} |
| + |
| class MockAutoConfirmExtensionInstallPrompt : public ExtensionInstallPrompt { |
| public: |
| explicit MockAutoConfirmExtensionInstallPrompt( |
| @@ -96,7 +100,7 @@ class MockAutoConfirmExtensionInstallPrompt : public ExtensionInstallPrompt { |
| }; |
| const Extension* ExtensionSettingsUIBrowserTest::InstallUnpackedExtension( |
| - const base::FilePath& path, const char* id) { |
| + const base::FilePath& path) { |
| if (path.empty()) |
| return NULL; |
| @@ -106,13 +110,15 @@ const Extension* ExtensionSettingsUIBrowserTest::InstallUnpackedExtension( |
| service->set_show_extensions_prompts(false); |
| extensions::ExtensionRegistry* registry = |
| extensions::ExtensionRegistry::Get(profile); |
| - extensions::TestExtensionRegistryObserver observer(registry, id); |
| - |
| + extensions::TestExtensionRegistryObserver observer(registry); |
| extensions::UnpackedInstaller::Create(service)->Load(path); |
| + base::FilePath extension_path = base::MakeAbsoluteFilePath(path); |
| + const Extension* extension = nullptr; |
| + do { |
| + extension = observer.WaitForExtensionLoaded(); |
|
Dan Beam
2015/04/01 23:12:04
can this return nullptr?
Devlin
2015/04/02 00:01:38
Nope.
|
| + } while (extension->path() != extension_path); |
| - // Test will timeout if extension is not loaded. |
| - observer.WaitForExtensionLoaded(); |
| - return service->GetExtensionById(last_loaded_extension_id(), false); |
| + return extension; |
| } |
| const Extension* ExtensionSettingsUIBrowserTest::InstallExtension( |