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

Side by Side Diff: chrome/browser/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: Fixed failing tests ToolbarActionsBarBubbleViewsTest.TestClickLearnMoreLink and TestBubbleLayoutAct… Created 4 years, 2 months 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.
Devlin 2016/09/26 20:13:09 test files should (normally) be near the files the
catmullings 2016/10/06 18:24:19 Done.
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
35 namespace {
36
37 std::unique_ptr<KeyedService> BuildOverrideRegistrar(
38 content::BrowserContext* context) {
39 return base::MakeUnique<extensions::ExtensionWebUIOverrideRegistrar>(context);
40 }
41
42 std::unique_ptr<KeyedService> BuildToolbarModel(
43 content::BrowserContext* context) {
44 return base::MakeUnique<ToolbarActionsModel>(
45 Profile::FromBrowserContext(context),
46 extensions::ExtensionPrefs::Get(context));
47 }
48
49 } // namespace
50
51 namespace extensions {
Devlin 2016/09/26 20:13:09 nit: \n
catmullings 2016/10/06 18:24:19 Done.
52 class ExtensionMessageBubbleBridgeUnitTest
53 : public ExtensionServiceTestWithInstall {
54 public:
55 ExtensionMessageBubbleBridgeUnitTest() {}
56 ~ExtensionMessageBubbleBridgeUnitTest() override {}
57 Browser* browser() { return browser_.get(); }
58
59 // test_data/extensions.
60 base::FilePath test_data_dir_;
Devlin 2016/09/26 20:13:09 Why do we need this instead of ExtensionServiceTes
catmullings 2016/10/06 18:24:19 Cool. Didn't know that ExtensionServiceTestBase::d
61
62 private:
63 void SetUp() override {
64 ExtensionServiceTestWithInstall::SetUp();
65 InitializeEmptyExtensionService();
66
67 browser_window_.reset(new TestBrowserWindow());
68 Browser::CreateParams params(profile());
69 params.type = Browser::TYPE_TABBED;
70 params.window = browser_window_.get();
71 browser_.reset(new Browser(params));
72
73 extensions::ExtensionWebUIOverrideRegistrar::GetFactoryInstance()
Devlin 2016/09/26 20:13:09 no need for extensions:: prefix
catmullings 2016/10/06 18:24:19 How do you know that the extensions:: prefix can b
Devlin 2016/10/10 15:27:28 As a rule of thumb, you don't need to use the exte
catmullings 2016/10/12 18:58:58 My guess would be that ExtensionWebUIOverrideRegis
catmullings 2016/10/12 18:58:58 Done.
74 ->SetTestingFactory(browser()->profile(), &BuildOverrideRegistrar);
75 extensions::ExtensionWebUIOverrideRegistrar::GetFactoryInstance()->Get(
76 browser()->profile());
77 ToolbarActionsModelFactory::GetInstance()->SetTestingFactory(
78 browser()->profile(), &BuildToolbarModel);
79
80 PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir_);
81 test_data_dir_ = test_data_dir_.AppendASCII("extensions");
82 }
83
84 void TearDown() override {
85 browser_.reset();
86 browser_window_.reset();
87 ExtensionServiceTestWithInstall::TearDown();
88 }
89
90 std::unique_ptr<TestBrowserWindow> browser_window_;
91 std::unique_ptr<Browser> browser_;
92
93 DISALLOW_COPY_AND_ASSIGN(ExtensionMessageBubbleBridgeUnitTest);
94 };
95
96 TEST_F(ExtensionMessageBubbleBridgeUnitTest,
97 TestGetExtraViewInfoMethodWithNormalSettingsOverrideExtension) {
98 base::FilePath fp(test_data_dir_.AppendASCII("api_test/override/newtab/"));
99 EXPECT_NE(nullptr, PackAndInstallCRX(fp, INSTALL_NEW));
100
101 std::unique_ptr<ExtensionMessageBubbleController> ntp_bubble_controller(
102 new ExtensionMessageBubbleController(
103 new NtpOverriddenBubbleDelegate(browser()->profile()), browser()));
104
105 ASSERT_EQ(1U, ntp_bubble_controller->GetExtensionList().size());
106
107 std::unique_ptr<ToolbarActionsBarBubbleDelegate> bridge(
108 new ExtensionMessageBubbleBridge(std::move(ntp_bubble_controller)));
109
110 std::unique_ptr<ToolbarActionsBarBubbleDelegate::ExtraViewInfo>
111 extra_view_info = bridge->GetExtraViewInfo();
112
113 ASSERT_EQ(-1, extra_view_info->resource_id);
Devlin 2016/09/26 20:13:09 prefer EXPECT_EQ in cases like this where a failur
catmullings 2016/10/06 18:24:19 Done.
114 ASSERT_EQ(l10n_util::GetStringUTF16(IDS_LEARN_MORE), extra_view_info->text);
115 ASSERT_EQ(true, extra_view_info->is_text_linked);
116 }
117
118 TEST_F(ExtensionMessageBubbleBridgeUnitTest,
119 TestGetExtraViewInfoMethodWithPolicyInstalledSettingsOverrideExtension) {
120 base::FilePath fp(test_data_dir_.AppendASCII("api_test/override/newtab/"));
121 EXPECT_NE(nullptr, PackAndInstallCRXWithLocation(
122 fp, Manifest::EXTERNAL_POLICY, INSTALL_NEW));
123
124 std::unique_ptr<ExtensionMessageBubbleController> ntp_bubble_controller(
125 new ExtensionMessageBubbleController(
126 new NtpOverriddenBubbleDelegate(browser()->profile()), browser()));
127
128 ASSERT_EQ(1U, ntp_bubble_controller->GetExtensionList().size());
129
130 std::unique_ptr<ToolbarActionsBarBubbleDelegate> bridge(
131 new ExtensionMessageBubbleBridge(std::move(ntp_bubble_controller)));
132
133 std::unique_ptr<ToolbarActionsBarBubbleDelegate::ExtraViewInfo>
134 extra_view_info = bridge->GetExtraViewInfo();
135
136 extra_view_info = bridge->GetExtraViewInfo();
137
138 ASSERT_EQ(IDR_OMNIBOX_HTTPS_POLICY_WARNING, extra_view_info->resource_id);
139 ASSERT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSIONS_INSTALLED_BY_ADMIN),
140 extra_view_info->text);
141 ASSERT_EQ(false, extra_view_info->is_text_linked);
142 }
143
144 TEST_F(ExtensionMessageBubbleBridgeUnitTest,
145 TestGetActionButtonTextWithNormalSettingsOverrideExtension) {
146 base::FilePath fp(test_data_dir_.AppendASCII("api_test/override/newtab/"));
147 EXPECT_NE(nullptr, PackAndInstallCRX(fp, INSTALL_NEW));
148
149 std::unique_ptr<ExtensionMessageBubbleController> ntp_bubble_controller(
150 new ExtensionMessageBubbleController(
151 new NtpOverriddenBubbleDelegate(browser()->profile()), browser()));
152
153 ASSERT_EQ(1U, ntp_bubble_controller->GetExtensionList().size());
154
155 std::unique_ptr<ToolbarActionsBarBubbleDelegate> bridge(
156 new ExtensionMessageBubbleBridge(std::move(ntp_bubble_controller)));
157
158 ASSERT_EQ(
159 l10n_util::GetStringUTF16(IDS_EXTENSION_CONTROLLED_RESTORE_SETTINGS),
160 bridge->GetActionButtonText());
Devlin 2016/09/26 20:13:09 Given the only change between this and the first t
catmullings 2016/10/06 18:24:19 Done.
161 }
162
163 TEST_F(ExtensionMessageBubbleBridgeUnitTest,
164 TestGetActionButtonTextWithPolicyInstalledSettingsOverrideExtension) {
165 base::FilePath fp(test_data_dir_.AppendASCII("api_test/override/newtab/"));
166 EXPECT_NE(nullptr, PackAndInstallCRXWithLocation(
167 fp, Manifest::EXTERNAL_POLICY, INSTALL_NEW));
168
169 std::unique_ptr<ExtensionMessageBubbleController> ntp_bubble_controller(
170 new ExtensionMessageBubbleController(
171 new NtpOverriddenBubbleDelegate(browser()->profile()), browser()));
172
173 ASSERT_EQ(1U, ntp_bubble_controller->GetExtensionList().size());
174
175 std::unique_ptr<ToolbarActionsBarBubbleDelegate> bridge(
176 new ExtensionMessageBubbleBridge(std::move(ntp_bubble_controller)));
177
178 ASSERT_EQ(base::string16(), bridge->GetActionButtonText());
179 }
180 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698