Commit ae095cf9 authored by Devlin Cronin's avatar Devlin Cronin Committed by Commit Bot

[Extensions UI] Don't use BrowserActionsBarBrowserTest in bubble tests

Currently, ExtensionMessageBubbleBrowserTest inherits from
BrowserActionsBarBrowserTest. Unfortunately, this means that none of
these tests run with the new Extensions Menu UI. Since the
BrowserActionsBar-related tests are going away, we need to migrate these
to be compatible with the new UI.

Instead of inheriting from BrowserActionsBarBrowserTest, inherit from
ExtensionBrowserTest directly. There were relatively few dependencies,
and this paves the way to having these tests run with the new UI.

Bug: 1100412
Change-Id: I43cd5852ddf2e04eaee7c55f1d0b4086e31c59fc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2392702
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: default avatarPeter Boström <pbos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#804491}
parent 2cc375f0
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "chrome/browser/ui/startup/startup_browser_creator.h" #include "chrome/browser/ui/startup/startup_browser_creator.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/toolbar/toolbar_actions_bar.h" #include "chrome/browser/ui/toolbar/toolbar_actions_bar.h"
#include "chrome/browser/ui/toolbar/toolbar_actions_model.h"
#include "chrome/common/pref_names.h" #include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h" #include "chrome/common/url_constants.h"
#include "components/omnibox/browser/omnibox_edit_model.h" #include "components/omnibox/browser/omnibox_edit_model.h"
...@@ -30,15 +31,14 @@ ...@@ -30,15 +31,14 @@
#include "extensions/test/extension_test_message_listener.h" #include "extensions/test/extension_test_message_listener.h"
#include "extensions/test/test_extension_dir.h" #include "extensions/test/test_extension_dir.h"
ExtensionMessageBubbleBrowserTest::ExtensionMessageBubbleBrowserTest() { ExtensionMessageBubbleBrowserTest::ExtensionMessageBubbleBrowserTest() =
} default;
ExtensionMessageBubbleBrowserTest::~ExtensionMessageBubbleBrowserTest() =
ExtensionMessageBubbleBrowserTest::~ExtensionMessageBubbleBrowserTest() { default;
}
void ExtensionMessageBubbleBrowserTest::SetUpCommandLine( void ExtensionMessageBubbleBrowserTest::SetUpCommandLine(
base::CommandLine* command_line) { base::CommandLine* command_line) {
BrowserActionsBarBrowserTest::SetUpCommandLine(command_line); ExtensionBrowserTest::SetUpCommandLine(command_line);
// The dev mode warning bubble is an easy one to trigger, so we use that for // The dev mode warning bubble is an easy one to trigger, so we use that for
// our testing purposes. // our testing purposes.
dev_mode_bubble_override_.reset( dev_mode_bubble_override_.reset(
...@@ -48,12 +48,20 @@ void ExtensionMessageBubbleBrowserTest::SetUpCommandLine( ...@@ -48,12 +48,20 @@ void ExtensionMessageBubbleBrowserTest::SetUpCommandLine(
ExtensionMessageBubbleFactory::set_override_for_tests( ExtensionMessageBubbleFactory::set_override_for_tests(
ExtensionMessageBubbleFactory::OVERRIDE_ENABLED); ExtensionMessageBubbleFactory::OVERRIDE_ENABLED);
ToolbarActionsBar::set_extension_bubble_appearance_wait_time_for_testing(0); ToolbarActionsBar::set_extension_bubble_appearance_wait_time_for_testing(0);
ToolbarActionsBar::disable_animations_for_testing_ = true;
}
void ExtensionMessageBubbleBrowserTest::SetUpOnMainThread() {
extensions::ExtensionBrowserTest::SetUpOnMainThread();
toolbar_model_ = ToolbarActionsModel::Get(profile());
} }
void ExtensionMessageBubbleBrowserTest::TearDownOnMainThread() { void ExtensionMessageBubbleBrowserTest::TearDownOnMainThread() {
ExtensionMessageBubbleFactory::set_override_for_tests( ExtensionMessageBubbleFactory::set_override_for_tests(
ExtensionMessageBubbleFactory::NO_OVERRIDE); ExtensionMessageBubbleFactory::NO_OVERRIDE);
BrowserActionsBarBrowserTest::TearDownOnMainThread(); ToolbarActionsBar::disable_animations_for_testing_ = false;
ExtensionBrowserTest::TearDownOnMainThread();
} }
void ExtensionMessageBubbleBrowserTest::AddSettingsOverrideExtension( void ExtensionMessageBubbleBrowserTest::AddSettingsOverrideExtension(
......
...@@ -9,14 +9,16 @@ ...@@ -9,14 +9,16 @@
#include "base/macros.h" #include "base/macros.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "chrome/browser/ui/toolbar/browser_actions_bar_browsertest.h" #include "chrome/browser/extensions/extension_browsertest.h"
namespace extensions { namespace extensions {
class TestExtensionDir; class TestExtensionDir;
} }
class ToolbarActionsModel;
class ExtensionMessageBubbleBrowserTest class ExtensionMessageBubbleBrowserTest
: public BrowserActionsBarBrowserTest { : public extensions::ExtensionBrowserTest {
public: public:
enum AnchorPosition { enum AnchorPosition {
ANCHOR_BROWSER_ACTION, ANCHOR_BROWSER_ACTION,
...@@ -26,8 +28,9 @@ class ExtensionMessageBubbleBrowserTest ...@@ -26,8 +28,9 @@ class ExtensionMessageBubbleBrowserTest
ExtensionMessageBubbleBrowserTest(); ExtensionMessageBubbleBrowserTest();
~ExtensionMessageBubbleBrowserTest() override; ~ExtensionMessageBubbleBrowserTest() override;
// BrowserActionsBarBrowserTest: // extensions::ExtensionBrowserTest:
void SetUpCommandLine(base::CommandLine* command_line) override; void SetUpCommandLine(base::CommandLine* command_line) override;
void SetUpOnMainThread() override;
void TearDownOnMainThread() override; void TearDownOnMainThread() override;
// Checks the position of the bubble present in the given |browser|, when the // Checks the position of the bubble present in the given |browser|, when the
...@@ -134,6 +137,8 @@ class ExtensionMessageBubbleBrowserTest ...@@ -134,6 +137,8 @@ class ExtensionMessageBubbleBrowserTest
void TestClickingActionButton(); void TestClickingActionButton();
void TestClickingDismissButton(); void TestClickingDismissButton();
ToolbarActionsModel* toolbar_model() { return toolbar_model_; }
private: private:
std::unique_ptr<extensions::FeatureSwitch::ScopedOverride> std::unique_ptr<extensions::FeatureSwitch::ScopedOverride>
dev_mode_bubble_override_; dev_mode_bubble_override_;
...@@ -142,6 +147,8 @@ class ExtensionMessageBubbleBrowserTest ...@@ -142,6 +147,8 @@ class ExtensionMessageBubbleBrowserTest
// no custom extension is loaded. // no custom extension is loaded.
std::unique_ptr<extensions::TestExtensionDir> custom_extension_dir_; std::unique_ptr<extensions::TestExtensionDir> custom_extension_dir_;
ToolbarActionsModel* toolbar_model_ = nullptr;
DISALLOW_COPY_AND_ASSIGN(ExtensionMessageBubbleBrowserTest); DISALLOW_COPY_AND_ASSIGN(ExtensionMessageBubbleBrowserTest);
}; };
......
...@@ -100,7 +100,9 @@ void BrowserActionsBarBrowserTest::SetUpCommandLine( ...@@ -100,7 +100,9 @@ void BrowserActionsBarBrowserTest::SetUpCommandLine(
base::CommandLine* command_line) { base::CommandLine* command_line) {
// Note: The ScopedFeatureList needs to be instantiated before the rest of // Note: The ScopedFeatureList needs to be instantiated before the rest of
// set up happens. // set up happens.
feature_list_.InitWithFeatures({}, GetFeaturesToDisable()); // This suite relies on behavior specific to ToolbarActionsBar. See
// ExtensionsMenuViewBrowserTest and ExtensionsMenuViewUnitTest for new tests.
feature_list_.InitAndDisableFeature(features::kExtensionsToolbarMenu);
extensions::ExtensionBrowserTest::SetUpCommandLine(command_line); extensions::ExtensionBrowserTest::SetUpCommandLine(command_line);
ToolbarActionsBar::disable_animations_for_testing_ = true; ToolbarActionsBar::disable_animations_for_testing_ = true;
...@@ -141,13 +143,6 @@ void BrowserActionsBarBrowserTest::LoadExtensions() { ...@@ -141,13 +143,6 @@ void BrowserActionsBarBrowserTest::LoadExtensions() {
} }
} }
std::vector<base::Feature>
BrowserActionsBarBrowserTest::GetFeaturesToDisable() {
// This suite relies on behavior specific to ToolbarActionsBar. See
// ExtensionsMenuViewBrowserTest and ExtensionsMenuViewUnitTest for new tests.
return {features::kExtensionsToolbarMenu};
}
// Test the basic functionality. // Test the basic functionality.
IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, Basic) { IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, Basic) {
// Load an extension with no browser action. // Load an extension with no browser action.
......
...@@ -39,9 +39,6 @@ class BrowserActionsBarBrowserTest : public extensions::ExtensionBrowserTest { ...@@ -39,9 +39,6 @@ class BrowserActionsBarBrowserTest : public extensions::ExtensionBrowserTest {
// extension_[a|b|c](). // extension_[a|b|c]().
void LoadExtensions(); void LoadExtensions();
// Returns a list of features to disable.
virtual std::vector<base::Feature> GetFeaturesToDisable();
const extensions::Extension* extension_a() const { const extensions::Extension* extension_a() const {
return extension_a_.get(); return extension_a_.get();
} }
......
...@@ -2,8 +2,11 @@ ...@@ -2,8 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include <vector>
#include "base/auto_reset.h" #include "base/auto_reset.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/test/scoped_feature_list.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "chrome/browser/ui/extensions/extension_message_bubble_browsertest.h" #include "chrome/browser/ui/extensions/extension_message_bubble_browsertest.h"
#include "chrome/browser/ui/extensions/settings_api_bubble_helpers.h" #include "chrome/browser/ui/extensions/settings_api_bubble_helpers.h"
...@@ -91,9 +94,14 @@ class ExtensionMessageBubbleViewBrowserTest ...@@ -91,9 +94,14 @@ class ExtensionMessageBubbleViewBrowserTest
ExtensionMessageBubbleViewBrowserTest() {} ExtensionMessageBubbleViewBrowserTest() {}
~ExtensionMessageBubbleViewBrowserTest() override {} ~ExtensionMessageBubbleViewBrowserTest() override {}
void SetUpCommandLine(base::CommandLine* command_line) override;
// TestBrowserDialog: // TestBrowserDialog:
void ShowUi(const std::string& name) override; void ShowUi(const std::string& name) override;
// Returns a list of features to disable.
virtual std::vector<base::Feature> GetFeaturesToDisable();
private: private:
// ExtensionMessageBubbleBrowserTest: // ExtensionMessageBubbleBrowserTest:
void CheckBubbleNative(Browser* browser, AnchorPosition anchor) override; void CheckBubbleNative(Browser* browser, AnchorPosition anchor) override;
...@@ -104,6 +112,8 @@ class ExtensionMessageBubbleViewBrowserTest ...@@ -104,6 +112,8 @@ class ExtensionMessageBubbleViewBrowserTest
void ClickActionButton(Browser* browser) override; void ClickActionButton(Browser* browser) override;
void ClickDismissButton(Browser* browser) override; void ClickDismissButton(Browser* browser) override;
base::test::ScopedFeatureList feature_list_;
// Whether to ignore requests from ExtensionMessageBubbleBrowserTest to // Whether to ignore requests from ExtensionMessageBubbleBrowserTest to
// CloseBubble(). // CloseBubble().
bool block_close_ = false; bool block_close_ = false;
...@@ -125,6 +135,22 @@ void ExtensionMessageBubbleViewBrowserTest::ShowUi(const std::string& name) { ...@@ -125,6 +135,22 @@ void ExtensionMessageBubbleViewBrowserTest::ShowUi(const std::string& name) {
} }
} }
void ExtensionMessageBubbleViewBrowserTest::SetUpCommandLine(
base::CommandLine* command_line) {
// Note: The ScopedFeatureList needs to be instantiated before the rest of
// set up happens.
feature_list_.InitWithFeatures({}, GetFeaturesToDisable());
ExtensionMessageBubbleBrowserTest::SetUpCommandLine(command_line);
}
std::vector<base::Feature>
ExtensionMessageBubbleViewBrowserTest::GetFeaturesToDisable() {
// This suite currently relies on behavior specific to ToolbarActionsBar.
// TODO(devlin): Change that. https://crbug.com/1100412.
return {features::kExtensionsToolbarMenu};
}
void ExtensionMessageBubbleViewBrowserTest::CheckBubbleNative( void ExtensionMessageBubbleViewBrowserTest::CheckBubbleNative(
Browser* browser, Browser* browser,
AnchorPosition anchor) { AnchorPosition anchor) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment