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

Side by Side Diff: chrome/browser/extensions/extension_install_prompt_unittest.cc

Issue 1534123002: [Extensions] Migrate ExtensionInstallPrompt::Delegate to be a callback (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h> 5 #include <stddef.h>
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 22 matching lines...) Expand all
33 #include "ui/gfx/skia_util.h" 33 #include "ui/gfx/skia_util.h"
34 34
35 namespace extensions { 35 namespace extensions {
36 36
37 namespace { 37 namespace {
38 38
39 void VerifyPromptIconCallback( 39 void VerifyPromptIconCallback(
40 const base::Closure& quit_closure, 40 const base::Closure& quit_closure,
41 const SkBitmap& expected_bitmap, 41 const SkBitmap& expected_bitmap,
42 ExtensionInstallPromptShowParams* params, 42 ExtensionInstallPromptShowParams* params,
43 ExtensionInstallPrompt::Delegate* delegate, 43 const ExtensionInstallPrompt::DoneCallback& done_callback,
44 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt) { 44 scoped_ptr<ExtensionInstallPrompt::Prompt> prompt) {
45 EXPECT_TRUE(gfx::BitmapsAreEqual(prompt->icon().AsBitmap(), expected_bitmap)); 45 EXPECT_TRUE(gfx::BitmapsAreEqual(prompt->icon().AsBitmap(), expected_bitmap));
46 quit_closure.Run(); 46 quit_closure.Run();
47 } 47 }
48 48
49 void VerifyPromptPermissionsCallback( 49 void VerifyPromptPermissionsCallback(
50 const base::Closure& quit_closure, 50 const base::Closure& quit_closure,
51 size_t regular_permissions_count, 51 size_t regular_permissions_count,
52 size_t withheld_permissions_count, 52 size_t withheld_permissions_count,
53 ExtensionInstallPromptShowParams* params, 53 ExtensionInstallPromptShowParams* params,
54 ExtensionInstallPrompt::Delegate* delegate, 54 const ExtensionInstallPrompt::DoneCallback& done_callback,
55 scoped_ptr<ExtensionInstallPrompt::Prompt> install_prompt) { 55 scoped_ptr<ExtensionInstallPrompt::Prompt> install_prompt) {
56 ASSERT_TRUE(install_prompt.get()); 56 ASSERT_TRUE(install_prompt.get());
57 EXPECT_EQ(regular_permissions_count, 57 EXPECT_EQ(regular_permissions_count,
58 install_prompt->GetPermissionCount( 58 install_prompt->GetPermissionCount(
59 ExtensionInstallPrompt::REGULAR_PERMISSIONS)); 59 ExtensionInstallPrompt::REGULAR_PERMISSIONS));
60 EXPECT_EQ(withheld_permissions_count, 60 EXPECT_EQ(withheld_permissions_count,
61 install_prompt->GetPermissionCount( 61 install_prompt->GetPermissionCount(
62 ExtensionInstallPrompt::WITHHELD_PERMISSIONS)); 62 ExtensionInstallPrompt::WITHHELD_PERMISSIONS));
63 quit_closure.Run(); 63 quit_closure.Run();
64 } 64 }
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 .Set("name", "foo") 106 .Set("name", "foo")
107 .Set("version", "1.0") 107 .Set("version", "1.0")
108 .Set("manifest_version", 2) 108 .Set("manifest_version", 2)
109 .Set("description", "Random Ext"))) 109 .Set("description", "Random Ext")))
110 .Build(); 110 .Build();
111 111
112 content::TestWebContentsFactory factory; 112 content::TestWebContentsFactory factory;
113 ExtensionInstallPrompt prompt(factory.CreateWebContents(profile())); 113 ExtensionInstallPrompt prompt(factory.CreateWebContents(profile()));
114 base::RunLoop run_loop; 114 base::RunLoop run_loop;
115 prompt.ShowDialog( 115 prompt.ShowDialog(
116 nullptr, // no delegate 116 ExtensionInstallPrompt::DoneCallback(), extension.get(), nullptr,
117 extension.get(), nullptr,
118 make_scoped_ptr(new ExtensionInstallPrompt::Prompt( 117 make_scoped_ptr(new ExtensionInstallPrompt::Prompt(
119 ExtensionInstallPrompt::PERMISSIONS_PROMPT)), 118 ExtensionInstallPrompt::PERMISSIONS_PROMPT)),
120 std::move(permission_set), 119 std::move(permission_set),
121 base::Bind(&VerifyPromptPermissionsCallback, run_loop.QuitClosure(), 120 base::Bind(&VerifyPromptPermissionsCallback, run_loop.QuitClosure(),
122 1u, // |regular_permissions_count|. 121 1u, // |regular_permissions_count|.
123 0u)); // |withheld_permissions_count|. 122 0u)); // |withheld_permissions_count|.
124 run_loop.Run(); 123 run_loop.Run();
125 } 124 }
126 125
127 TEST_F(ExtensionInstallPromptUnitTest, PromptShowsWithheldPermissions) { 126 TEST_F(ExtensionInstallPromptUnitTest, PromptShowsWithheldPermissions) {
(...skipping 16 matching lines...) Expand all
144 .Append("tabs"))))) 143 .Append("tabs")))))
145 .Build(); 144 .Build();
146 145
147 content::TestWebContentsFactory factory; 146 content::TestWebContentsFactory factory;
148 ExtensionInstallPrompt prompt(factory.CreateWebContents(profile())); 147 ExtensionInstallPrompt prompt(factory.CreateWebContents(profile()));
149 base::RunLoop run_loop; 148 base::RunLoop run_loop;
150 149
151 // We expect <all_hosts> to be withheld, but http://www.google.com/ and tabs 150 // We expect <all_hosts> to be withheld, but http://www.google.com/ and tabs
152 // permissions should be granted as regular permissions. 151 // permissions should be granted as regular permissions.
153 prompt.ShowDialog( 152 prompt.ShowDialog(
154 nullptr, extension.get(), nullptr, 153 ExtensionInstallPrompt::DoneCallback(), extension.get(), nullptr,
155 base::Bind(&VerifyPromptPermissionsCallback, run_loop.QuitClosure(), 154 base::Bind(&VerifyPromptPermissionsCallback, run_loop.QuitClosure(),
156 2u, // |regular_permissions_count|. 155 2u, // |regular_permissions_count|.
157 1u)); // |withheld_permissions_count|. 156 1u)); // |withheld_permissions_count|.
158 run_loop.Run(); 157 run_loop.Run();
159 } 158 }
160 159
161 TEST_F(ExtensionInstallPromptUnitTest, 160 TEST_F(ExtensionInstallPromptUnitTest,
162 DelegatedPromptShowsOptionalPermissions) { 161 DelegatedPromptShowsOptionalPermissions) {
163 scoped_refptr<const Extension> extension = 162 scoped_refptr<const Extension> extension =
164 ExtensionBuilder() 163 ExtensionBuilder()
(...skipping 11 matching lines...) Expand all
176 175
177 content::TestWebContentsFactory factory; 176 content::TestWebContentsFactory factory;
178 ExtensionInstallPrompt prompt(factory.CreateWebContents(profile())); 177 ExtensionInstallPrompt prompt(factory.CreateWebContents(profile()));
179 base::RunLoop run_loop; 178 base::RunLoop run_loop;
180 179
181 scoped_ptr<ExtensionInstallPrompt::Prompt> sub_prompt( 180 scoped_ptr<ExtensionInstallPrompt::Prompt> sub_prompt(
182 new ExtensionInstallPrompt::Prompt( 181 new ExtensionInstallPrompt::Prompt(
183 ExtensionInstallPrompt::DELEGATED_PERMISSIONS_PROMPT)); 182 ExtensionInstallPrompt::DELEGATED_PERMISSIONS_PROMPT));
184 sub_prompt->set_delegated_username("Username"); 183 sub_prompt->set_delegated_username("Username");
185 prompt.ShowDialog( 184 prompt.ShowDialog(
186 nullptr, // no delegate 185 ExtensionInstallPrompt::DoneCallback(), extension.get(), nullptr,
187 extension.get(), nullptr, std::move(sub_prompt), 186 std::move(sub_prompt),
188 base::Bind(&VerifyPromptPermissionsCallback, run_loop.QuitClosure(), 187 base::Bind(&VerifyPromptPermissionsCallback, run_loop.QuitClosure(),
189 2u, // |regular_permissions_count|. 188 2u, // |regular_permissions_count|.
190 0u)); // |withheld_permissions_count|. 189 0u)); // |withheld_permissions_count|.
191 run_loop.Run(); 190 run_loop.Run();
192 } 191 }
193 192
194 using ExtensionInstallPromptTestWithService = ExtensionServiceTestWithInstall; 193 using ExtensionInstallPromptTestWithService = ExtensionServiceTestWithInstall;
195 194
196 TEST_F(ExtensionInstallPromptTestWithService, ExtensionInstallPromptIconsTest) { 195 TEST_F(ExtensionInstallPromptTestWithService, ExtensionInstallPromptIconsTest) {
197 InitializeEmptyExtensionService(); 196 InitializeEmptyExtensionService();
(...skipping 16 matching lines...) Expand all
214 extension, image_rep, 213 extension, image_rep,
215 base::Bind(&SetImage, &image, image_loop.QuitClosure())); 214 base::Bind(&SetImage, &image, image_loop.QuitClosure()));
216 image_loop.Run(); 215 image_loop.Run();
217 ASSERT_FALSE(image.IsEmpty()); 216 ASSERT_FALSE(image.IsEmpty());
218 content::TestWebContentsFactory factory; 217 content::TestWebContentsFactory factory;
219 content::WebContents* web_contents = 218 content::WebContents* web_contents =
220 factory.CreateWebContents(browser_context()); 219 factory.CreateWebContents(browser_context());
221 { 220 {
222 ExtensionInstallPrompt prompt(web_contents); 221 ExtensionInstallPrompt prompt(web_contents);
223 base::RunLoop run_loop; 222 base::RunLoop run_loop;
224 prompt.ShowDialog(nullptr, // No delegate. 223 prompt.ShowDialog(ExtensionInstallPrompt::DoneCallback(),
225 extension, 224 extension,
226 nullptr, // Force an icon fetch. 225 nullptr, // Force an icon fetch.
227 base::Bind(&VerifyPromptIconCallback, 226 base::Bind(&VerifyPromptIconCallback,
228 run_loop.QuitClosure(), image.AsBitmap())); 227 run_loop.QuitClosure(), image.AsBitmap()));
229 run_loop.Run(); 228 run_loop.Run();
230 } 229 }
231 230
232 { 231 {
233 ExtensionInstallPrompt prompt(web_contents); 232 ExtensionInstallPrompt prompt(web_contents);
234 base::RunLoop run_loop; 233 base::RunLoop run_loop;
235 gfx::ImageSkia app_icon = util::GetDefaultAppIcon(); 234 gfx::ImageSkia app_icon = util::GetDefaultAppIcon();
236 prompt.ShowDialog(nullptr, // No delegate. 235 prompt.ShowDialog(ExtensionInstallPrompt::DoneCallback(),
237 extension, 236 extension,
238 app_icon.bitmap(), // Use a different icon. 237 app_icon.bitmap(), // Use a different icon.
239 base::Bind(&VerifyPromptIconCallback, 238 base::Bind(&VerifyPromptIconCallback,
240 run_loop.QuitClosure(), *app_icon.bitmap())); 239 run_loop.QuitClosure(), *app_icon.bitmap()));
241 run_loop.Run(); 240 run_loop.Run();
242 } 241 }
243 } 242 }
244 243
245 } // namespace extensions 244 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_install_prompt_test_helper.cc ('k') | chrome/browser/extensions/extension_reenabler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698