blob: eb545fdfc06e7a75f940f95cf4b2bb24d02607a2 [file] [log] [blame]
// Copyright 2018 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.
#include "chrome/browser/extensions/dev_mode_bubble_delegate.h"
#include "base/macros.h"
#include "base/test/scoped_feature_list.h"
#include "build/build_config.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_service_test_base.h"
#include "extensions/common/extension_builder.h"
#include "extensions/common/feature_switch.h"
#include "ui/base/material_design/material_design_controller.h"
#include "ui/base/ui_base_features.h"
namespace extensions {
class DevModeBubbleDelegateMdUiUnitTest
: public ExtensionServiceTestBase,
public testing::WithParamInterface<bool> {
public:
DevModeBubbleDelegateMdUiUnitTest() = default;
~DevModeBubbleDelegateMdUiUnitTest() override = default;
void SetUp() override {
ExtensionServiceTestBase::SetUp();
bool secondary_md_ui_enabled = GetParam();
if (secondary_md_ui_enabled)
scoped_feature_list_.InitAndEnableFeature(features::kSecondaryUiMd);
else
scoped_feature_list_.InitAndDisableFeature(features::kSecondaryUiMd);
}
private:
base::test::ScopedFeatureList scoped_feature_list_;
DISALLOW_COPY_AND_ASSIGN(DevModeBubbleDelegateMdUiUnitTest);
};
TEST_P(DevModeBubbleDelegateMdUiUnitTest, ExtensionServiceTestBase) {
FeatureSwitch::ScopedOverride dev_mode_highlighting(
FeatureSwitch::force_dev_mode_highlighting(), true);
InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension = ExtensionBuilder("test").Build();
service()->AddExtension(extension.get());
DevModeBubbleDelegate bubble_delegate(profile());
EXPECT_TRUE(bubble_delegate.ShouldIncludeExtension(extension.get()));
// The Cocoa version of the bubble doesn't have a dismiss 'x', so needs a
// dedicated 'cancel' button.
bool should_have_cancel_button =
#if defined(OS_MACOSX)
!ui::MaterialDesignController::IsSecondaryUiMaterial();
#else
false;
#endif
EXPECT_EQ(should_have_cancel_button,
!bubble_delegate.GetDismissButtonLabel().empty());
}
INSTANTIATE_TEST_CASE_P(, DevModeBubbleDelegateMdUiUnitTest, testing::Bool());
} // namespace extensions