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

[Extensions Menu] Add some parameterized browser action API tests

Browser Action API tests exercise a fair amount of the "general"
behavior of the extensions menu, so it's good to have extra coverage.
Parameterize them (further) to run with and without the extensions
menu turned on.

Bug: None
Change-Id: I827a4ca4a66b4df185698a0fe68a71d80b28efac
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2020610Reviewed-by: default avatarPeter Boström <pbos@chromium.org>
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#735505}
parent 3051c63a
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/extensions/extension_action_test_helper.h" #include "chrome/browser/ui/extensions/extension_action_test_helper.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/ui_features.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 "chrome/test/base/ui_test_utils.h" #include "chrome/test/base/ui_test_utils.h"
...@@ -72,7 +73,6 @@ ...@@ -72,7 +73,6 @@
#include "ui/gfx/skia_util.h" #include "ui/gfx/skia_util.h"
using content::WebContents; using content::WebContents;
using ContextType = extensions::ExtensionBrowserTest::ContextType;
namespace extensions { namespace extensions {
namespace { namespace {
...@@ -163,29 +163,41 @@ class BrowserActionApiCanvasTest : public BrowserActionApiTest { ...@@ -163,29 +163,41 @@ class BrowserActionApiCanvasTest : public BrowserActionApiTest {
} }
}; };
class BrowserActionApiLazyTest enum TestFlags {
: public BrowserActionApiTest, kNone = 0,
public testing::WithParamInterface<ContextType> { kUseServiceWorker = 1,
kUseExtensionsMenuUi = 1 << 1,
};
class BrowserActionApiLazyTest : public BrowserActionApiTest,
public testing::WithParamInterface<int> {
public: public:
void SetUp() override { void SetUp() override {
BrowserActionApiTest::SetUp(); BrowserActionApiTest::SetUp();
// Service Workers are currently only available on certain channels, so set // Service Workers are currently only available on certain channels, so set
// the channel for those tests. // the channel for those tests.
if (GetParam() == ContextType::kServiceWorker) { if ((GetParam() & kUseServiceWorker) != 0) {
current_channel_ = current_channel_ =
std::make_unique<extensions::ScopedWorkerBasedExtensionsChannel>(); std::make_unique<extensions::ScopedWorkerBasedExtensionsChannel>();
} }
if ((GetParam() & kUseExtensionsMenuUi) != 0) {
feature_list_.InitAndEnableFeature(features::kExtensionsToolbarMenu);
} else {
feature_list_.InitAndDisableFeature(features::kExtensionsToolbarMenu);
}
} }
const extensions::Extension* LoadExtensionWithParamFlags( const extensions::Extension* LoadExtensionWithParamFlags(
const base::FilePath& path) { const base::FilePath& path) {
int flags = kFlagEnableFileAccess; int flags = kFlagEnableFileAccess;
if (GetParam() == ContextType::kServiceWorker) if ((GetParam() & kUseServiceWorker) != 0)
flags |= ExtensionBrowserTest::kFlagRunAsServiceWorkerBasedExtension; flags |= ExtensionBrowserTest::kFlagRunAsServiceWorkerBasedExtension;
return LoadExtensionWithFlags(path, flags); return LoadExtensionWithFlags(path, flags);
} }
private: private:
base::test::ScopedFeatureList feature_list_;
std::unique_ptr<extensions::ScopedWorkerBasedExtensionsChannel> std::unique_ptr<extensions::ScopedWorkerBasedExtensionsChannel>
current_channel_; current_channel_;
}; };
...@@ -268,12 +280,19 @@ IN_PROC_BROWSER_TEST_P(BrowserActionApiLazyTest, Update) { ...@@ -268,12 +280,19 @@ IN_PROC_BROWSER_TEST_P(BrowserActionApiLazyTest, Update) {
action->GetBadgeBackgroundColor(ExtensionAction::kDefaultTabId)); action->GetBadgeBackgroundColor(ExtensionAction::kDefaultTabId));
} }
INSTANTIATE_TEST_SUITE_P(EventPage, INSTANTIATE_TEST_SUITE_P(EventPageAndLegacyToolbar,
BrowserActionApiLazyTest,
::testing::Values(kNone));
INSTANTIATE_TEST_SUITE_P(EventPageAndExtensionsMenu,
BrowserActionApiLazyTest,
::testing::Values(kUseExtensionsMenuUi));
INSTANTIATE_TEST_SUITE_P(ServiceWorkerAndLegacyToolbar,
BrowserActionApiLazyTest, BrowserActionApiLazyTest,
::testing::Values(ContextType::kEventPage)); ::testing::Values(kUseServiceWorker));
INSTANTIATE_TEST_SUITE_P(ServiceWorker, INSTANTIATE_TEST_SUITE_P(ServiceWorkerAndExtensionsMenu,
BrowserActionApiLazyTest, BrowserActionApiLazyTest,
::testing::Values(ContextType::kServiceWorker)); ::testing::Values(kUseServiceWorker |
kUseExtensionsMenuUi));
IN_PROC_BROWSER_TEST_F(BrowserActionApiCanvasTest, DynamicBrowserAction) { IN_PROC_BROWSER_TEST_F(BrowserActionApiCanvasTest, DynamicBrowserAction) {
ASSERT_TRUE(RunExtensionTest("browser_action/no_icon")) << message_; ASSERT_TRUE(RunExtensionTest("browser_action/no_icon")) << message_;
...@@ -731,7 +750,7 @@ IN_PROC_BROWSER_TEST_P(BrowserActionApiLazyTest, IncognitoBasic) { ...@@ -731,7 +750,7 @@ IN_PROC_BROWSER_TEST_P(BrowserActionApiLazyTest, IncognitoBasic) {
IN_PROC_BROWSER_TEST_P(BrowserActionApiLazyTest, IncognitoUpdate) { IN_PROC_BROWSER_TEST_P(BrowserActionApiLazyTest, IncognitoUpdate) {
// TODO(crbug.com/1015136): Investigate flakiness WRT Service Workers and // TODO(crbug.com/1015136): Investigate flakiness WRT Service Workers and
// incognito mode. // incognito mode.
if (GetParam() == ContextType::kServiceWorker) if ((GetParam() & kUseServiceWorker) != 0)
return; return;
ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_TRUE(embedded_test_server()->Start());
const Extension* extension = LoadExtensionWithParamFlags( const Extension* extension = LoadExtensionWithParamFlags(
......
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