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 @@
#include "chrome/browser/ui/startup/startup_browser_creator.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_model.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
#include "components/omnibox/browser/omnibox_edit_model.h"
......@@ -30,15 +31,14 @@
#include "extensions/test/extension_test_message_listener.h"
#include "extensions/test/test_extension_dir.h"
ExtensionMessageBubbleBrowserTest::ExtensionMessageBubbleBrowserTest() {
}
ExtensionMessageBubbleBrowserTest::~ExtensionMessageBubbleBrowserTest() {
}
ExtensionMessageBubbleBrowserTest::ExtensionMessageBubbleBrowserTest() =
default;
ExtensionMessageBubbleBrowserTest::~ExtensionMessageBubbleBrowserTest() =
default;
void ExtensionMessageBubbleBrowserTest::SetUpCommandLine(
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
// our testing purposes.
dev_mode_bubble_override_.reset(
......@@ -48,12 +48,20 @@ void ExtensionMessageBubbleBrowserTest::SetUpCommandLine(
ExtensionMessageBubbleFactory::set_override_for_tests(
ExtensionMessageBubbleFactory::OVERRIDE_ENABLED);
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() {
ExtensionMessageBubbleFactory::set_override_for_tests(
ExtensionMessageBubbleFactory::NO_OVERRIDE);
BrowserActionsBarBrowserTest::TearDownOnMainThread();
ToolbarActionsBar::disable_animations_for_testing_ = false;
ExtensionBrowserTest::TearDownOnMainThread();
}
void ExtensionMessageBubbleBrowserTest::AddSettingsOverrideExtension(
......
......@@ -9,14 +9,16 @@
#include "base/macros.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 {
class TestExtensionDir;
}
class ToolbarActionsModel;
class ExtensionMessageBubbleBrowserTest
: public BrowserActionsBarBrowserTest {
: public extensions::ExtensionBrowserTest {
public:
enum AnchorPosition {
ANCHOR_BROWSER_ACTION,
......@@ -26,8 +28,9 @@ class ExtensionMessageBubbleBrowserTest
ExtensionMessageBubbleBrowserTest();
~ExtensionMessageBubbleBrowserTest() override;
// BrowserActionsBarBrowserTest:
// extensions::ExtensionBrowserTest:
void SetUpCommandLine(base::CommandLine* command_line) override;
void SetUpOnMainThread() override;
void TearDownOnMainThread() override;
// Checks the position of the bubble present in the given |browser|, when the
......@@ -134,6 +137,8 @@ class ExtensionMessageBubbleBrowserTest
void TestClickingActionButton();
void TestClickingDismissButton();
ToolbarActionsModel* toolbar_model() { return toolbar_model_; }
private:
std::unique_ptr<extensions::FeatureSwitch::ScopedOverride>
dev_mode_bubble_override_;
......@@ -142,6 +147,8 @@ class ExtensionMessageBubbleBrowserTest
// no custom extension is loaded.
std::unique_ptr<extensions::TestExtensionDir> custom_extension_dir_;
ToolbarActionsModel* toolbar_model_ = nullptr;
DISALLOW_COPY_AND_ASSIGN(ExtensionMessageBubbleBrowserTest);
};
......
......@@ -100,7 +100,9 @@ void BrowserActionsBarBrowserTest::SetUpCommandLine(
base::CommandLine* command_line) {
// Note: The ScopedFeatureList needs to be instantiated before the rest of
// 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);
ToolbarActionsBar::disable_animations_for_testing_ = true;
......@@ -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.
IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, Basic) {
// Load an extension with no browser action.
......
......@@ -39,9 +39,6 @@ class BrowserActionsBarBrowserTest : public extensions::ExtensionBrowserTest {
// extension_[a|b|c]().
void LoadExtensions();
// Returns a list of features to disable.
virtual std::vector<base::Feature> GetFeaturesToDisable();
const extensions::Extension* extension_a() const {
return extension_a_.get();
}
......
......@@ -2,8 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <vector>
#include "base/auto_reset.h"
#include "base/macros.h"
#include "base/test/scoped_feature_list.h"
#include "build/build_config.h"
#include "chrome/browser/ui/extensions/extension_message_bubble_browsertest.h"
#include "chrome/browser/ui/extensions/settings_api_bubble_helpers.h"
......@@ -91,9 +94,14 @@ class ExtensionMessageBubbleViewBrowserTest
ExtensionMessageBubbleViewBrowserTest() {}
~ExtensionMessageBubbleViewBrowserTest() override {}
void SetUpCommandLine(base::CommandLine* command_line) override;
// TestBrowserDialog:
void ShowUi(const std::string& name) override;
// Returns a list of features to disable.
virtual std::vector<base::Feature> GetFeaturesToDisable();
private:
// ExtensionMessageBubbleBrowserTest:
void CheckBubbleNative(Browser* browser, AnchorPosition anchor) override;
......@@ -104,6 +112,8 @@ class ExtensionMessageBubbleViewBrowserTest
void ClickActionButton(Browser* browser) override;
void ClickDismissButton(Browser* browser) override;
base::test::ScopedFeatureList feature_list_;
// Whether to ignore requests from ExtensionMessageBubbleBrowserTest to
// CloseBubble().
bool block_close_ = false;
......@@ -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(
Browser* browser,
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