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

Unified Diff: chrome/browser/extensions/api/management/management_api_browsertest.cc

Issue 1148323007: [Extensions] Introduce a ScopedExtensionDialogAutoConfirm (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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/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

Powered by Google App Engine
This is Rietveld 408576698