// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_UI_WEBUI_EXTENSIONS_EXTENSION_SETTINGS_BROWSERTEST_H_ #define CHROME_BROWSER_UI_WEBUI_EXTENSIONS_EXTENSION_SETTINGS_BROWSERTEST_H_ #include "base/macros.h" #include "chrome/browser/extensions/extension_test_notification_observer.h" #include "chrome/common/extensions/features/feature_channel.h" #include "chrome/test/base/web_ui_browser_test.h" #include "extensions/browser/extension_dialog_auto_confirm.h" #include "extensions/browser/test_management_policy.h" #include "extensions/common/extension.h" #include "extensions/common/feature_switch.h" class Profile; // C++ test fixture used by extension_settings_browsertest.js. class ExtensionSettingsUIBrowserTest : public WebUIBrowserTest { public: ExtensionSettingsUIBrowserTest(); ~ExtensionSettingsUIBrowserTest() override; protected: // Get the profile to use. Profile* GetProfile(); const std::string& last_loaded_extension_id() { return observer_->last_loaded_extension_id(); } void SetUpOnMainThread() override; void InstallGoodExtension(); void InstallErrorsExtension(); void InstallSharedModule(); void InstallPackagedApp(); void InstallHostedApp(); void InstallPlatformApp(); void AddManagedPolicyProvider(); void SetAutoConfirmUninstall(); // Enables the error console so errors are displayed in the extensions page. void EnableErrorConsole(); // Shrinks the web contents view in order to ensure vertical overflow. void ShrinkWebContentsView(); private: bool WaitForExtensionViewsToLoad(); const extensions::Extension* InstallUnpackedExtension( const base::FilePath& path); const extensions::Extension* InstallExtension(const base::FilePath& path); scoped_ptr observer_; // The default profile to be used. Profile* profile_; // Used to simulate managed extensions (by being registered as a provider). extensions::TestManagementPolicyProvider policy_provider_; base::FilePath test_data_dir_; // Used to enable the error console. scoped_ptr error_console_override_; scoped_ptr uninstall_auto_confirm_; DISALLOW_COPY_AND_ASSIGN(ExtensionSettingsUIBrowserTest); }; #endif // CHROME_BROWSER_UI_WEBUI_EXTENSIONS_EXTENSION_SETTINGS_BROWSERTEST_H_