Chromium Code Reviews| Index: chrome/browser/extensions/api/management/management_api_browsertest.cc |
| diff --git a/chrome/browser/extensions/api/management/management_api_browsertest.cc b/chrome/browser/extensions/api/management/management_api_browsertest.cc |
| index 26d7a197dca05105b0a7687250b51a02d59cd8d9..c91fcff2fa30f4c9fbe68d64adbe543be353e567 100644 |
| --- a/chrome/browser/extensions/api/management/management_api_browsertest.cc |
| +++ b/chrome/browser/extensions/api/management/management_api_browsertest.cc |
| @@ -8,7 +8,6 @@ |
| #include "base/strings/stringprintf.h" |
| #include "chrome/browser/extensions/extension_browsertest.h" |
| #include "chrome/browser/extensions/extension_function_test_utils.h" |
| -#include "chrome/browser/extensions/extension_install_prompt.h" |
| #include "chrome/browser/extensions/extension_service.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/ui/browser.h" |
| @@ -19,6 +18,7 @@ |
| #include "content/public/test/test_utils.h" |
| #include "extensions/browser/api/management/management_api.h" |
| #include "extensions/browser/api/management/management_api_constants.h" |
| +#include "extensions/browser/extension_dialog_auto_confirm.h" |
| #include "extensions/browser/extension_host.h" |
| #include "extensions/browser/extension_prefs.h" |
| #include "extensions/browser/extension_system.h" |
| @@ -110,51 +110,6 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementApiBrowserTest, |
| } |
| IN_PROC_BROWSER_TEST_F(ExtensionManagementApiBrowserTest, |
| - UninstallWithConfirmDialog) { |
|
Devlin
2015/05/29 15:29:20
This test is fully covered by the similar unittest
|
| - ExtensionService* service = ExtensionSystem::Get(browser()->profile())-> |
| - extension_service(); |
| - |
| - // Install an extension. |
| - const Extension* extension = InstallExtension( |
| - test_data_dir_.AppendASCII("api_test/management/enabled_extension"), 1); |
| - ASSERT_TRUE(extension); |
| - |
| - const std::string id = extension->id(); |
| - |
| - scoped_refptr<Extension> empty_extension(test_util::CreateEmptyExtension()); |
| - // Uninstall, then cancel via the confirm dialog. |
| - scoped_refptr<ManagementUninstallFunction> uninstall_function( |
| - new ManagementUninstallFunction()); |
| - uninstall_function->set_extension(empty_extension.get()); |
| - uninstall_function->set_user_gesture(true); |
| - ManagementUninstallFunction::SetAutoConfirmForTest(false); |
| - |
| - EXPECT_TRUE(MatchPattern( |
| - util::RunFunctionAndReturnError( |
| - uninstall_function.get(), |
| - base::StringPrintf("[\"%s\", {\"showConfirmDialog\": true}]", |
| - id.c_str()), |
| - browser()), |
| - keys::kUninstallCanceledError)); |
| - |
| - // Make sure the extension wasn't uninstalled. |
| - EXPECT_TRUE(service->GetExtensionById(id, false) != NULL); |
| - |
| - // Uninstall, then accept via the confirm dialog. |
| - uninstall_function = new ManagementUninstallFunction(); |
| - uninstall_function->set_extension(empty_extension.get()); |
| - ManagementUninstallFunction::SetAutoConfirmForTest(true); |
| - uninstall_function->set_user_gesture(true); |
| - util::RunFunctionAndReturnSingleResult( |
| - uninstall_function.get(), |
| - base::StringPrintf("[\"%s\", {\"showConfirmDialog\": true}]", id.c_str()), |
| - browser()); |
| - |
| - // Make sure the extension was uninstalled. |
| - EXPECT_TRUE(service->GetExtensionById(id, false) == NULL); |
| -} |
| - |
| -IN_PROC_BROWSER_TEST_F(ExtensionManagementApiBrowserTest, |
| CreateAppShortcutConfirmDialog) { |
| const Extension* app = InstallExtension( |
| test_data_dir_.AppendASCII("api_test/management/packaged_app"), 1); |
| @@ -299,31 +254,39 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementApiEscalationTest, |
| // Expect an error about no gesture. |
| SetEnabled(true, false, keys::kGestureNeededForEscalationError); |
| - // Expect an error that user cancelled the dialog. |
| - ExtensionInstallPrompt::g_auto_confirm_for_tests = |
| - ExtensionInstallPrompt::CANCEL; |
| - SetEnabled(true, true, keys::kUserDidNotReEnableError); |
| - |
| - // This should succeed when user accepts dialog. We must wait for the process |
| - // to connect *and* for the channel to finish initializing before trying to |
| - // crash it. (NOTIFICATION_RENDERER_PROCESS_CREATED does not wait for the |
| - // latter and can cause KillProcess to fail on Windows.) |
| - content::WindowedNotificationObserver observer( |
| - extensions::NOTIFICATION_EXTENSION_HOST_CREATED, |
| - content::NotificationService::AllSources()); |
| - ExtensionInstallPrompt::g_auto_confirm_for_tests = |
| - ExtensionInstallPrompt::ACCEPT; |
| - SetEnabled(true, true, std::string()); |
| - observer.Wait(); |
| - |
| - // Crash the extension. Mock a reload by disabling and then enabling. The |
| - // extension should be reloaded and enabled. |
| - ASSERT_TRUE(CrashEnabledExtension(kId)); |
| - SetEnabled(false, true, std::string()); |
| - SetEnabled(true, true, std::string()); |
| - const Extension* extension = ExtensionSystem::Get(browser()->profile()) |
| - ->extension_service()->GetExtensionById(kId, false); |
| - EXPECT_TRUE(extension); |
| + { |
| + // Expect an error that user cancelled the dialog. |
| + ScopedExtensionDialogAutoConfirm auto_confirm( |
| + &g_auto_confirm_install_for_testing, AUTO_CONFIRM_CANCEL); |
| + SetEnabled(true, true, keys::kUserDidNotReEnableError); |
| + } |
| + |
| + { |
| + // This should succeed when user accepts dialog. We must wait for the |
| + // process to connect *and* for the channel to finish initializing before |
| + // trying to crash it. (NOTIFICATION_RENDERER_PROCESS_CREATED does not wait |
| + // for the latter and can cause KillProcess to fail on Windows.) |
| + content::WindowedNotificationObserver observer( |
| + extensions::NOTIFICATION_EXTENSION_HOST_CREATED, |
| + content::NotificationService::AllSources()); |
| + ScopedExtensionDialogAutoConfirm auto_confirm( |
| + &g_auto_confirm_install_for_testing, AUTO_CONFIRM_ACCEPT); |
| + SetEnabled(true, true, std::string()); |
| + observer.Wait(); |
| + } |
| + |
| + { |
| + // Crash the extension. Mock a reload by disabling and then enabling. The |
| + // extension should be reloaded and enabled. |
| + ScopedExtensionDialogAutoConfirm auto_confirm( |
| + &g_auto_confirm_install_for_testing, AUTO_CONFIRM_ACCEPT); |
| + ASSERT_TRUE(CrashEnabledExtension(kId)); |
| + SetEnabled(false, true, std::string()); |
| + SetEnabled(true, true, std::string()); |
| + const Extension* extension = ExtensionSystem::Get(browser()->profile()) |
| + ->extension_service()->GetExtensionById(kId, false); |
| + EXPECT_TRUE(extension); |
| + } |
| } |
| } // namespace extensions |