Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(112)

Side by Side Diff: chrome/browser/ui/extensions/extension_message_bubble_bridge_unittest.cc

Issue 2206693002: Improve settings override bubble to indicate policy installed extensions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/command_line.h"
6 #include "base/logging.h"
7 #include "base/path_service.h"
8 #include "base/values.h"
9 #include "chrome/browser/extensions/extension_service.h"
10 #include "chrome/browser/extensions/extension_service_test_with_install.h"
11 #include "chrome/browser/extensions/extension_web_ui_override_registrar.h"
12 #include "chrome/browser/extensions/ntp_overridden_bubble_delegate.h"
13 #include "chrome/browser/ui/browser.h"
14 #include "chrome/browser/ui/extensions/extension_message_bubble_bridge.h"
15 #include "chrome/browser/ui/toolbar/test_toolbar_actions_bar_bubble_delegate.h"
16 #include "chrome/browser/ui/toolbar/toolbar_actions_bar_bubble_delegate.h"
17 #include "chrome/browser/ui/toolbar/toolbar_actions_model.h"
18 #include "chrome/browser/ui/toolbar/toolbar_actions_model_factory.h"
19 #include "chrome/common/chrome_paths.h"
20 #include "chrome/grit/generated_resources.h"
21 #include "chrome/test/base/test_browser_window.h"
22 #include "chrome/test/base/testing_profile.h"
23 #include "components/grit/components_scaled_resources.h"
24 #include "components/keyed_service/core/keyed_service.h"
25 #include "components/strings/grit/components_strings.h"
26 #include "content/public/browser/browser_context.h"
27 #include "extensions/browser/extension_registry.h"
28 #include "extensions/browser/extension_system.h"
29 #include "extensions/common/extension_builder.h"
30 #include "extensions/common/manifest.h"
31 #include "extensions/common/value_builder.h"
32 #include "testing/gtest/include/gtest/gtest.h"
33 #include "ui/base/l10n/l10n_util.h"
34 #include "ui/gfx/vector_icons_public.h"
35
36 namespace {
37
38 std::unique_ptr<KeyedService> BuildOverrideRegistrar(
39 content::BrowserContext* context) {
40 return base::MakeUnique<extensions::ExtensionWebUIOverrideRegistrar>(context);
41 }
42
43 std::unique_ptr<KeyedService> BuildToolbarModel(
44 content::BrowserContext* context) {
45 return base::MakeUnique<ToolbarActionsModel>(
46 Profile::FromBrowserContext(context),
47 extensions::ExtensionPrefs::Get(context));
48 }
49
50 } // namespace
51
52 class ExtensionMessageBubbleBridgeUnitTest
53 : public extensions::ExtensionServiceTestWithInstall {
54 public:
55 ExtensionMessageBubbleBridgeUnitTest() {}
56 ~ExtensionMessageBubbleBridgeUnitTest() override {}
57 Browser* browser() { return browser_.get(); }
58
59 private:
60 void SetUp() override {
61 ExtensionServiceTestWithInstall::SetUp();
62 InitializeEmptyExtensionService();
63
64 browser_window_.reset(new TestBrowserWindow());
65 Browser::CreateParams params(profile());
66 params.type = Browser::TYPE_TABBED;
67 params.window = browser_window_.get();
68 browser_.reset(new Browser(params));
69
70 extensions::ExtensionWebUIOverrideRegistrar::GetFactoryInstance()
71 ->SetTestingFactory(browser()->profile(), &BuildOverrideRegistrar);
72 extensions::ExtensionWebUIOverrideRegistrar::GetFactoryInstance()->Get(
73 browser()->profile());
74 ToolbarActionsModelFactory::GetInstance()->SetTestingFactory(
75 browser()->profile(), &BuildToolbarModel);
76 }
77
78 void TearDown() override {
79 browser_.reset();
80 browser_window_.reset();
81 ExtensionServiceTestWithInstall::TearDown();
82 }
83
84 std::unique_ptr<TestBrowserWindow> browser_window_;
85 std::unique_ptr<Browser> browser_;
86
87 DISALLOW_COPY_AND_ASSIGN(ExtensionMessageBubbleBridgeUnitTest);
88 };
89
90 TEST_F(ExtensionMessageBubbleBridgeUnitTest,
91 TestGetExtraViewInfoMethodWithNormalSettingsOverrideExtension) {
92 base::FilePath path(data_dir().AppendASCII("api_test/override/newtab/"));
93 EXPECT_NE(nullptr, PackAndInstallCRX(path, INSTALL_NEW));
94
95 std::unique_ptr<extensions::ExtensionMessageBubbleController>
96 ntp_bubble_controller(new extensions::ExtensionMessageBubbleController(
97 new extensions::NtpOverriddenBubbleDelegate(browser()->profile()),
98 browser()));
99
100 ASSERT_EQ(1U, ntp_bubble_controller->GetExtensionList().size());
101
102 std::unique_ptr<ToolbarActionsBarBubbleDelegate> bridge(
103 new ExtensionMessageBubbleBridge(std::move(ntp_bubble_controller)));
104
105 std::unique_ptr<ToolbarActionsBarBubbleDelegate::ExtraViewInfo>
106 extra_view_info = bridge->GetExtraViewInfo();
107
108 EXPECT_EQ(gfx::VectorIconId::VECTOR_ICON_NONE, extra_view_info->resource_id);
109 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_LEARN_MORE), extra_view_info->text);
110 EXPECT_EQ(true, extra_view_info->is_text_linked);
111
112 EXPECT_EQ(
113 l10n_util::GetStringUTF16(IDS_EXTENSION_CONTROLLED_RESTORE_SETTINGS),
114 bridge->GetActionButtonText());
115 }
116
117 TEST_F(ExtensionMessageBubbleBridgeUnitTest,
118 TestGetExtraViewInfoMethodWithPolicyInstalledSettingsOverrideExtension) {
119 base::FilePath path(data_dir().AppendASCII("api_test/override/newtab/"));
120 EXPECT_NE(nullptr,
121 PackAndInstallCRX(path, extensions::Manifest::EXTERNAL_POLICY,
122 INSTALL_NEW));
123
124 std::unique_ptr<extensions::ExtensionMessageBubbleController>
125 ntp_bubble_controller(new extensions::ExtensionMessageBubbleController(
126 new extensions::NtpOverriddenBubbleDelegate(browser()->profile()),
127 browser()));
128
129 ASSERT_EQ(1U, ntp_bubble_controller->GetExtensionList().size());
130
131 std::unique_ptr<ToolbarActionsBarBubbleDelegate> bridge(
132 new ExtensionMessageBubbleBridge(std::move(ntp_bubble_controller)));
133
134 std::unique_ptr<ToolbarActionsBarBubbleDelegate::ExtraViewInfo>
135 extra_view_info = bridge->GetExtraViewInfo();
136
137 extra_view_info = bridge->GetExtraViewInfo();
138
139 EXPECT_EQ(gfx::VectorIconId::BUSINESS, extra_view_info->resource_id);
140 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSIONS_INSTALLED_BY_ADMIN),
141 extra_view_info->text);
142 EXPECT_EQ(false, extra_view_info->is_text_linked);
143
144 EXPECT_EQ(base::string16(), bridge->GetActionButtonText());
145 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698