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

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

Issue 486233002: Re-enabled a couple of ExtensionCrxInstallerTests: (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/at_exit.h" 5 #include "base/at_exit.h"
6 #include "base/memory/ref_counted.h" 6 #include "base/memory/ref_counted.h"
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "chrome/browser/download/download_crx_util.h" 8 #include "chrome/browser/download/download_crx_util.h"
9 #include "chrome/browser/extensions/browser_action_test_util.h" 9 #include "chrome/browser/extensions/browser_action_test_util.h"
10 #include "chrome/browser/extensions/crx_installer.h" 10 #include "chrome/browser/extensions/crx_installer.h"
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 mock_prompt->set_record_oauth2_grant(record_oauth2_grant); 224 mock_prompt->set_record_oauth2_grant(record_oauth2_grant);
225 InstallWithPrompt("browsertest/scopes", std::string(), mock_prompt); 225 InstallWithPrompt("browsertest/scopes", std::string(), mock_prompt);
226 226
227 scoped_refptr<PermissionSet> permissions = 227 scoped_refptr<PermissionSet> permissions =
228 ExtensionPrefs::Get(browser()->profile()) 228 ExtensionPrefs::Get(browser()->profile())
229 ->GetGrantedPermissions(mock_prompt->extension_id()); 229 ->GetGrantedPermissions(mock_prompt->extension_id());
230 ASSERT_TRUE(permissions.get()); 230 ASSERT_TRUE(permissions.get());
231 } 231 }
232 }; 232 };
233 233
234 #if defined(OS_CHROMEOS) 234 // This test is skipped on ChromeOS because it requires the NPAPI,
235 #define MAYBE_Whitelisting DISABLED_Whitelisting 235 // which is not available on that platform.
236 #else 236 #if !defined(OS_CHROMEOS)
237 #define MAYBE_Whitelisting Whitelisting
238 #endif
239 IN_PROC_BROWSER_TEST_F(ExtensionCrxInstallerTest, MAYBE_Whitelisting) { 237 IN_PROC_BROWSER_TEST_F(ExtensionCrxInstallerTest, MAYBE_Whitelisting) {
not at google - send to devlin 2014/08/19 14:22:55 Remove the MAYBE_?
Joao da Silva 2014/08/20 07:37:11 Done.
240 std::string id = "hdgllgikmikobbofgnabhfimcfoopgnd"; 238 std::string id = "hdgllgikmikobbofgnabhfimcfoopgnd";
241 ExtensionService* service = extensions::ExtensionSystem::Get( 239 ExtensionService* service = extensions::ExtensionSystem::Get(
242 browser()->profile())->extension_service(); 240 browser()->profile())->extension_service();
243 241
244 // Even whitelisted extensions with NPAPI should not prompt. 242 // Even whitelisted extensions with NPAPI should not prompt.
245 scoped_refptr<MockPromptProxy> mock_prompt = 243 scoped_refptr<MockPromptProxy> mock_prompt =
246 CreateMockPromptProxyForBrowser(browser()); 244 CreateMockPromptProxyForBrowser(browser());
247 InstallWithPrompt("uitest/plugins", id, mock_prompt); 245 InstallWithPrompt("uitest/plugins", id, mock_prompt);
248 EXPECT_FALSE(mock_prompt->confirmation_requested()); 246 EXPECT_FALSE(mock_prompt->confirmation_requested());
249 EXPECT_TRUE(service->GetExtensionById(id, false)); 247 EXPECT_TRUE(service->GetExtensionById(id, false));
250 } 248 }
249 #endif
251 250
252 IN_PROC_BROWSER_TEST_F(ExtensionCrxInstallerTest, 251 IN_PROC_BROWSER_TEST_F(ExtensionCrxInstallerTest,
253 GalleryInstallGetsExperimental) { 252 GalleryInstallGetsExperimental) {
254 // We must modify the command line temporarily in order to pack an extension 253 // We must modify the command line temporarily in order to pack an extension
255 // that requests the experimental permission. 254 // that requests the experimental permission.
256 CommandLine* command_line = CommandLine::ForCurrentProcess(); 255 CommandLine* command_line = CommandLine::ForCurrentProcess();
257 CommandLine old_command_line = *command_line; 256 CommandLine old_command_line = *command_line;
258 command_line->AppendSwitch(switches::kEnableExperimentalExtensionApis); 257 command_line->AppendSwitch(switches::kEnableExperimentalExtensionApis);
259 base::FilePath crx_path = PackExtension( 258 base::FilePath crx_path = PackExtension(
260 test_data_dir_.AppendASCII("experimental")); 259 test_data_dir_.AppendASCII("experimental"));
261 ASSERT_FALSE(crx_path.empty()); 260 ASSERT_FALSE(crx_path.empty());
262 261
263 // Now reset the command line so that we are testing specifically whether 262 // Now reset the command line so that we are testing specifically whether
264 // installing from webstore enables experimental permissions. 263 // installing from webstore enables experimental permissions.
265 *(CommandLine::ForCurrentProcess()) = old_command_line; 264 *(CommandLine::ForCurrentProcess()) = old_command_line;
266 265
267 EXPECT_FALSE(InstallExtension(crx_path, 0)); 266 EXPECT_FALSE(InstallExtension(crx_path, 0));
268 EXPECT_TRUE(InstallExtensionFromWebstore(crx_path, 1)); 267 EXPECT_TRUE(InstallExtensionFromWebstore(crx_path, 1));
269 } 268 }
270 269
271 IN_PROC_BROWSER_TEST_F(ExtensionCrxInstallerTest, PlatformAppCrx) { 270 IN_PROC_BROWSER_TEST_F(ExtensionCrxInstallerTest, PlatformAppCrx) {
272 CommandLine::ForCurrentProcess()->AppendSwitch( 271 CommandLine::ForCurrentProcess()->AppendSwitch(
273 switches::kEnableExperimentalExtensionApis); 272 switches::kEnableExperimentalExtensionApis);
274 EXPECT_TRUE(InstallExtension( 273 EXPECT_TRUE(InstallExtension(
275 test_data_dir_.AppendASCII("minimal_platform_app.crx"), 1)); 274 test_data_dir_.AppendASCII("minimal_platform_app.crx"), 1));
276 } 275 }
277 276
278 // http://crbug.com/136397 277 IN_PROC_BROWSER_TEST_F(ExtensionCrxInstallerTest, PackAndInstallExtension) {
279 #if defined(OS_CHROMEOS)
280 #define MAYBE_PackAndInstallExtension DISABLED_PackAndInstallExtension
281 #else
282 #define MAYBE_PackAndInstallExtension PackAndInstallExtension
283 #endif
284 IN_PROC_BROWSER_TEST_F(
285 ExtensionCrxInstallerTest, MAYBE_PackAndInstallExtension) {
286 if (!FeatureSwitch::easy_off_store_install()->IsEnabled()) 278 if (!FeatureSwitch::easy_off_store_install()->IsEnabled())
287 return; 279 return;
288 280
289 const int kNumDownloadsExpected = 1; 281 const int kNumDownloadsExpected = 1;
290 282
291 LOG(ERROR) << "PackAndInstallExtension: Packing extension"; 283 LOG(ERROR) << "PackAndInstallExtension: Packing extension";
292 base::FilePath crx_path = PackExtension( 284 base::FilePath crx_path = PackExtension(
293 test_data_dir_.AppendASCII("common/background_page")); 285 test_data_dir_.AppendASCII("common/background_page"));
294 ASSERT_FALSE(crx_path.empty()); 286 ASSERT_FALSE(crx_path.empty());
295 std::string crx_path_string(crx_path.value().begin(), crx_path.value().end()); 287 std::string crx_path_string(crx_path.value().begin(), crx_path.value().end());
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 IN_PROC_BROWSER_TEST_F(ExtensionCrxInstallerTest, MAYBE_GrantScopes) { 321 IN_PROC_BROWSER_TEST_F(ExtensionCrxInstallerTest, MAYBE_GrantScopes) {
330 EXPECT_NO_FATAL_FAILURE(CheckHasEmptyScopesAfterInstall("browsertest/scopes", 322 EXPECT_NO_FATAL_FAILURE(CheckHasEmptyScopesAfterInstall("browsertest/scopes",
331 true)); 323 true));
332 } 324 }
333 325
334 IN_PROC_BROWSER_TEST_F(ExtensionCrxInstallerTest, DoNotGrantScopes) { 326 IN_PROC_BROWSER_TEST_F(ExtensionCrxInstallerTest, DoNotGrantScopes) {
335 EXPECT_NO_FATAL_FAILURE(CheckHasEmptyScopesAfterInstall("browsertest/scopes", 327 EXPECT_NO_FATAL_FAILURE(CheckHasEmptyScopesAfterInstall("browsertest/scopes",
336 false)); 328 false));
337 } 329 }
338 330
339 // Off-store install cannot yet be disabled on Aura. 331 IN_PROC_BROWSER_TEST_F(ExtensionCrxInstallerTest, AllowOffStore) {
340 #if defined(USE_AURA)
341 #define MAYBE_AllowOffStore DISABLED_AllowOffStore
342 #else
343 #define MAYBE_AllowOffStore AllowOffStore
344 #endif
345 // Crashy: http://crbug.com/140893
346 IN_PROC_BROWSER_TEST_F(ExtensionCrxInstallerTest, DISABLED_AllowOffStore) {
347 ExtensionService* service = extensions::ExtensionSystem::Get( 332 ExtensionService* service = extensions::ExtensionSystem::Get(
348 browser()->profile())->extension_service(); 333 browser()->profile())->extension_service();
349 const bool kTestData[] = {false, true}; 334 const bool kTestData[] = {false, true};
350 335
351 for (size_t i = 0; i < arraysize(kTestData); ++i) { 336 for (size_t i = 0; i < arraysize(kTestData); ++i) {
352 scoped_refptr<MockPromptProxy> mock_prompt = 337 scoped_refptr<MockPromptProxy> mock_prompt =
353 CreateMockPromptProxyForBrowser(browser()); 338 CreateMockPromptProxyForBrowser(browser());
354 339
355 scoped_refptr<CrxInstaller> crx_installer( 340 scoped_refptr<CrxInstaller> crx_installer(
356 CrxInstaller::Create(service, mock_prompt->CreatePrompt())); 341 CrxInstaller::Create(service, mock_prompt->CreatePrompt()));
357 crx_installer->set_install_cause( 342 crx_installer->set_install_cause(
358 extension_misc::INSTALL_CAUSE_USER_DOWNLOAD); 343 extension_misc::INSTALL_CAUSE_USER_DOWNLOAD);
359 344
360 if (kTestData[i]) { 345 if (kTestData[i]) {
361 crx_installer->set_off_store_install_allow_reason( 346 crx_installer->set_off_store_install_allow_reason(
362 CrxInstaller::OffStoreInstallAllowedInTest); 347 CrxInstaller::OffStoreInstallAllowedInTest);
363 } 348 }
364 349
365 crx_installer->InstallCrx(test_data_dir_.AppendASCII("good.crx")); 350 crx_installer->InstallCrx(test_data_dir_.AppendASCII("good.crx"));
366 EXPECT_EQ(kTestData[i], 351 // The |mock_prompt| will quit running the loop once the |crx_installer|
367 WaitForExtensionInstall()) << kTestData[i]; 352 // is done.
353 content::RunMessageLoop();
368 EXPECT_EQ(kTestData[i], mock_prompt->did_succeed()); 354 EXPECT_EQ(kTestData[i], mock_prompt->did_succeed());
369 EXPECT_EQ(kTestData[i], mock_prompt->confirmation_requested()) << 355 EXPECT_EQ(kTestData[i], mock_prompt->confirmation_requested()) <<
370 kTestData[i]; 356 kTestData[i];
371 if (kTestData[i]) { 357 if (kTestData[i]) {
372 EXPECT_EQ(base::string16(), mock_prompt->error()) << kTestData[i]; 358 EXPECT_EQ(base::string16(), mock_prompt->error()) << kTestData[i];
373 } else { 359 } else {
374 EXPECT_EQ(l10n_util::GetStringUTF16( 360 EXPECT_EQ(l10n_util::GetStringUTF16(
375 IDS_EXTENSION_INSTALL_DISALLOWED_ON_SITE), 361 IDS_EXTENSION_INSTALL_DISALLOWED_ON_SITE),
376 mock_prompt->error()) << kTestData[i]; 362 mock_prompt->error()) << kTestData[i];
377 } 363 }
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
572 ManagementPolicyMock policy; 558 ManagementPolicyMock policy;
573 extensions::ExtensionSystem::Get(profile()) 559 extensions::ExtensionSystem::Get(profile())
574 ->management_policy() 560 ->management_policy()
575 ->RegisterProvider(&policy); 561 ->RegisterProvider(&policy);
576 562
577 base::FilePath crx_path = test_data_dir_.AppendASCII("crx_installer/v1.crx"); 563 base::FilePath crx_path = test_data_dir_.AppendASCII("crx_installer/v1.crx");
578 EXPECT_FALSE(InstallExtension(crx_path, 0)); 564 EXPECT_FALSE(InstallExtension(crx_path, 0));
579 } 565 }
580 566
581 } // namespace extensions 567 } // namespace extensions
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698