| 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..16cc98fa60ca2d5f9d8ba837c916e12e4597166f 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,27 @@ 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::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")));
|
| +}
|
| +
|
| +void ExtensionSettingsUIBrowserTest::InstallPackagedApp() {
|
| + EXPECT_TRUE(InstallUnpackedExtension(
|
| + test_data_dir_.AppendASCII("packaged_app")));
|
| }
|
|
|
| void ExtensionSettingsUIBrowserTest::AddManagedPolicyProvider() {
|
| @@ -81,6 +86,10 @@ void ExtensionSettingsUIBrowserTest::AddManagedPolicyProvider() {
|
| extension_service->management_policy()->RegisterProvider(&policy_provider_);
|
| }
|
|
|
| +void ExtensionSettingsUIBrowserTest::SetAutoConfirmUninstall() {
|
| + extensions::ManagementUninstallFunctionBase::SetAutoConfirmForTest(true);
|
| +}
|
| +
|
| class MockAutoConfirmExtensionInstallPrompt : public ExtensionInstallPrompt {
|
| public:
|
| explicit MockAutoConfirmExtensionInstallPrompt(
|
| @@ -96,7 +105,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 +115,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();
|
| + } 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(
|
|
|