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

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

Issue 15984016: Call scoped_refptr<T>::get() rather than relying on implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 6 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "chrome/browser/extensions/extension_service_unittest.h" 5 #include "chrome/browser/extensions/extension_service_unittest.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 base::MessageLoop::current()->RunUntilIdle(); 449 base::MessageLoop::current()->RunUntilIdle();
450 profile_.reset(NULL); 450 profile_.reset(NULL);
451 base::MessageLoop::current()->RunUntilIdle(); 451 base::MessageLoop::current()->RunUntilIdle();
452 } 452 }
453 453
454 void ExtensionServiceTestBase::InitializeExtensionService( 454 void ExtensionServiceTestBase::InitializeExtensionService(
455 const ExtensionServiceTestBase::ExtensionServiceInitParams& params) { 455 const ExtensionServiceTestBase::ExtensionServiceInitParams& params) {
456 TestingProfile::Builder profile_builder; 456 TestingProfile::Builder profile_builder;
457 // Create a PrefService that only contains user defined preference values. 457 // Create a PrefService that only contains user defined preference values.
458 PrefServiceMockBuilder builder; 458 PrefServiceMockBuilder builder;
459 builder.WithUserFilePrefs( 459 builder.WithUserFilePrefs(params.pref_file, loop_.message_loop_proxy().get());
460 params.pref_file, loop_.message_loop_proxy());
461 scoped_refptr<user_prefs::PrefRegistrySyncable> registry( 460 scoped_refptr<user_prefs::PrefRegistrySyncable> registry(
462 new user_prefs::PrefRegistrySyncable); 461 new user_prefs::PrefRegistrySyncable);
463 scoped_ptr<PrefServiceSyncable> prefs(builder.CreateSyncable(registry.get())); 462 scoped_ptr<PrefServiceSyncable> prefs(builder.CreateSyncable(registry.get()));
464 chrome::RegisterUserPrefs(registry.get()); 463 chrome::RegisterUserPrefs(registry.get());
465 profile_builder.SetPrefService(prefs.Pass()); 464 profile_builder.SetPrefService(prefs.Pass());
466 profile_builder.SetPath(params.profile_path); 465 profile_builder.SetPath(params.profile_path);
467 profile_ = profile_builder.Build(); 466 profile_ = profile_builder.Build();
468 467
469 TestExtensionSystem* system = static_cast<TestExtensionSystem*>( 468 TestExtensionSystem* system = static_cast<TestExtensionSystem*>(
470 ExtensionSystem::Get(profile_.get())); 469 ExtensionSystem::Get(profile_.get()));
471 if (!params.is_first_run) { 470 if (!params.is_first_run) {
472 ExtensionPrefs* prefs = system->CreateExtensionPrefs( 471 ExtensionPrefs* prefs = system->CreateExtensionPrefs(
473 CommandLine::ForCurrentProcess(), 472 CommandLine::ForCurrentProcess(),
474 params.extensions_install_dir); 473 params.extensions_install_dir);
475 prefs->SetAlertSystemFirstRun(); 474 prefs->SetAlertSystemFirstRun();
476 } 475 }
477 476
478 service_ = system->CreateExtensionService( 477 service_ = system->CreateExtensionService(
479 CommandLine::ForCurrentProcess(), 478 CommandLine::ForCurrentProcess(),
480 params.extensions_install_dir, 479 params.extensions_install_dir,
481 params.autoupdate_enabled); 480 params.autoupdate_enabled);
482 service_->SetFileTaskRunnerForTesting(loop_.message_loop_proxy()); 481 service_->SetFileTaskRunnerForTesting(loop_.message_loop_proxy().get());
483 service_->set_extensions_enabled(true); 482 service_->set_extensions_enabled(true);
484 service_->set_show_extensions_prompts(false); 483 service_->set_show_extensions_prompts(false);
485 service_->set_install_updates_when_idle_for_test(false); 484 service_->set_install_updates_when_idle_for_test(false);
486 485
487 management_policy_ = 486 management_policy_ =
488 ExtensionSystem::Get(profile_.get())->management_policy(); 487 ExtensionSystem::Get(profile_.get())->management_policy();
489 488
490 // When we start up, we want to make sure there is no external provider, 489 // When we start up, we want to make sure there is no external provider,
491 // since the ExtensionService on Windows will use the Registry as a default 490 // since the ExtensionService on Windows will use the Registry as a default
492 // provider and if there is something already registered there then it will 491 // provider and if there is something already registered there then it will
(...skipping 1380 matching lines...) Expand 10 before | Expand all | Expand 10 after
1873 std::set<std::string> host_permissions; 1872 std::set<std::string> host_permissions;
1874 1873
1875 // Test that the extension is disabled when an API permission is missing from 1874 // Test that the extension is disabled when an API permission is missing from
1876 // the extension's granted api permissions preference. (This simulates 1875 // the extension's granted api permissions preference. (This simulates
1877 // updating the browser to a version which recognizes a new API permission). 1876 // updating the browser to a version which recognizes a new API permission).
1878 SetPref(extension_id, "granted_permissions.api", 1877 SetPref(extension_id, "granted_permissions.api",
1879 new ListValue(), "granted_permissions.api"); 1878 new ListValue(), "granted_permissions.api");
1880 service_->ReloadExtensions(); 1879 service_->ReloadExtensions();
1881 1880
1882 EXPECT_EQ(1u, service_->disabled_extensions()->size()); 1881 EXPECT_EQ(1u, service_->disabled_extensions()->size());
1883 extension = *service_->disabled_extensions()->begin(); 1882 extension = service_->disabled_extensions()->begin()->get();
1884 1883
1885 ASSERT_TRUE(prefs->IsExtensionDisabled(extension_id)); 1884 ASSERT_TRUE(prefs->IsExtensionDisabled(extension_id));
1886 ASSERT_FALSE(service_->IsExtensionEnabled(extension_id)); 1885 ASSERT_FALSE(service_->IsExtensionEnabled(extension_id));
1887 ASSERT_TRUE(prefs->DidExtensionEscalatePermissions(extension_id)); 1886 ASSERT_TRUE(prefs->DidExtensionEscalatePermissions(extension_id));
1888 1887
1889 // Now grant and re-enable the extension, making sure the prefs are updated. 1888 // Now grant and re-enable the extension, making sure the prefs are updated.
1890 service_->GrantPermissionsAndEnableExtension(extension); 1889 service_->GrantPermissionsAndEnableExtension(extension);
1891 1890
1892 ASSERT_FALSE(prefs->IsExtensionDisabled(extension_id)); 1891 ASSERT_FALSE(prefs->IsExtensionDisabled(extension_id));
1893 ASSERT_TRUE(service_->IsExtensionEnabled(extension_id)); 1892 ASSERT_TRUE(service_->IsExtensionEnabled(extension_id));
(...skipping 22 matching lines...) Expand all
1916 api_permissions->Append( 1915 api_permissions->Append(
1917 Value::CreateStringValue("tabs")); 1916 Value::CreateStringValue("tabs"));
1918 SetPref(extension_id, "granted_permissions.api", 1917 SetPref(extension_id, "granted_permissions.api",
1919 api_permissions, "granted_permissions.api"); 1918 api_permissions, "granted_permissions.api");
1920 SetPrefStringSet( 1919 SetPrefStringSet(
1921 extension_id, "granted_permissions.scriptable_host", host_permissions); 1920 extension_id, "granted_permissions.scriptable_host", host_permissions);
1922 1921
1923 service_->ReloadExtensions(); 1922 service_->ReloadExtensions();
1924 1923
1925 EXPECT_EQ(1u, service_->disabled_extensions()->size()); 1924 EXPECT_EQ(1u, service_->disabled_extensions()->size());
1926 extension = *service_->disabled_extensions()->begin(); 1925 extension = service_->disabled_extensions()->begin()->get();
1927 1926
1928 ASSERT_TRUE(prefs->IsExtensionDisabled(extension_id)); 1927 ASSERT_TRUE(prefs->IsExtensionDisabled(extension_id));
1929 ASSERT_FALSE(service_->IsExtensionEnabled(extension_id)); 1928 ASSERT_FALSE(service_->IsExtensionEnabled(extension_id));
1930 ASSERT_TRUE(prefs->DidExtensionEscalatePermissions(extension_id)); 1929 ASSERT_TRUE(prefs->DidExtensionEscalatePermissions(extension_id));
1931 1930
1932 // Now grant and re-enable the extension, making sure the prefs are updated. 1931 // Now grant and re-enable the extension, making sure the prefs are updated.
1933 service_->GrantPermissionsAndEnableExtension(extension); 1932 service_->GrantPermissionsAndEnableExtension(extension);
1934 1933
1935 ASSERT_TRUE(service_->IsExtensionEnabled(extension_id)); 1934 ASSERT_TRUE(service_->IsExtensionEnabled(extension_id));
1936 ASSERT_FALSE(prefs->DidExtensionEscalatePermissions(extension_id)); 1935 ASSERT_FALSE(prefs->DidExtensionEscalatePermissions(extension_id));
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
2191 // Load. 2190 // Load.
2192 InitializeEmptyExtensionService(); 2191 InitializeEmptyExtensionService();
2193 base::FilePath extension_path = data_dir_ 2192 base::FilePath extension_path = data_dir_
2194 .AppendASCII("theme_i18n"); 2193 .AppendASCII("theme_i18n");
2195 2194
2196 extensions::UnpackedInstaller::Create(service_)->Load(extension_path); 2195 extensions::UnpackedInstaller::Create(service_)->Load(extension_path);
2197 loop_.RunUntilIdle(); 2196 loop_.RunUntilIdle();
2198 EXPECT_EQ(0u, GetErrors().size()); 2197 EXPECT_EQ(0u, GetErrors().size());
2199 ASSERT_EQ(1u, loaded_.size()); 2198 ASSERT_EQ(1u, loaded_.size());
2200 EXPECT_EQ(1u, service_->extensions()->size()); 2199 EXPECT_EQ(1u, service_->extensions()->size());
2201 const Extension* theme = *service_->extensions()->begin(); 2200 const Extension* theme = service_->extensions()->begin()->get();
2202 EXPECT_EQ("name", theme->name()); 2201 EXPECT_EQ("name", theme->name());
2203 EXPECT_EQ("description", theme->description()); 2202 EXPECT_EQ("description", theme->description());
2204 2203
2205 // Cleanup the "Cached Theme.pak" file. Ideally, this would be installed in a 2204 // Cleanup the "Cached Theme.pak" file. Ideally, this would be installed in a
2206 // temporary directory, but it automatically installs to the extension's 2205 // temporary directory, but it automatically installs to the extension's
2207 // directory, and we don't want to copy the whole extension for a unittest. 2206 // directory, and we don't want to copy the whole extension for a unittest.
2208 base::FilePath theme_file = extension_path.Append(chrome::kThemePackFilename); 2207 base::FilePath theme_file = extension_path.Append(chrome::kThemePackFilename);
2209 ASSERT_TRUE(file_util::PathExists(theme_file)); 2208 ASSERT_TRUE(file_util::PathExists(theme_file));
2210 ASSERT_TRUE(file_util::Delete(theme_file, false)); // Not recursive. 2209 ASSERT_TRUE(file_util::Delete(theme_file, false)); // Not recursive.
2211 } 2210 }
(...skipping 1175 matching lines...) Expand 10 before | Expand all | Expand 10 after
3387 // an extension key. 3386 // an extension key.
3388 extensions::ExtensionInfo extension_info( 3387 extensions::ExtensionInfo extension_info(
3389 &manifest, std::string(), path, Manifest::UNPACKED); 3388 &manifest, std::string(), path, Manifest::UNPACKED);
3390 3389
3391 // Ensure we can load it with no management policy in place. 3390 // Ensure we can load it with no management policy in place.
3392 management_policy_->UnregisterAllProviders(); 3391 management_policy_->UnregisterAllProviders();
3393 EXPECT_EQ(0u, service_->extensions()->size()); 3392 EXPECT_EQ(0u, service_->extensions()->size());
3394 extensions::InstalledLoader(service_).Load(extension_info, false); 3393 extensions::InstalledLoader(service_).Load(extension_info, false);
3395 EXPECT_EQ(1u, service_->extensions()->size()); 3394 EXPECT_EQ(1u, service_->extensions()->size());
3396 3395
3397 const Extension* extension = *(service_->extensions()->begin()); 3396 const Extension* extension = (service_->extensions()->begin())->get();
3398 EXPECT_TRUE(service_->UninstallExtension(extension->id(), false, NULL)); 3397 EXPECT_TRUE(service_->UninstallExtension(extension->id(), false, NULL));
3399 EXPECT_EQ(0u, service_->extensions()->size()); 3398 EXPECT_EQ(0u, service_->extensions()->size());
3400 3399
3401 // Ensure we cannot load it if management policy prohibits installation. 3400 // Ensure we cannot load it if management policy prohibits installation.
3402 extensions::TestManagementPolicyProvider provider_( 3401 extensions::TestManagementPolicyProvider provider_(
3403 extensions::TestManagementPolicyProvider::PROHIBIT_LOAD); 3402 extensions::TestManagementPolicyProvider::PROHIBIT_LOAD);
3404 management_policy_->RegisterProvider(&provider_); 3403 management_policy_->RegisterProvider(&provider_);
3405 3404
3406 extensions::InstalledLoader(service_).Load(extension_info, false); 3405 extensions::InstalledLoader(service_).Load(extension_info, false);
3407 EXPECT_EQ(0u, service_->extensions()->size()); 3406 EXPECT_EQ(0u, service_->extensions()->size());
(...skipping 2612 matching lines...) Expand 10 before | Expand all | Expand 10 after
6020 new MockExtensionProvider(service_, Manifest::EXTERNAL_PREF); 6019 new MockExtensionProvider(service_, Manifest::EXTERNAL_PREF);
6021 AddMockExternalProvider(provider); 6020 AddMockExternalProvider(provider);
6022 provider->UpdateOrAddExtension(updates_from_webstore, "1", crx_path); 6021 provider->UpdateOrAddExtension(updates_from_webstore, "1", crx_path);
6023 6022
6024 service_->CheckForExternalUpdates(); 6023 service_->CheckForExternalUpdates();
6025 loop_.RunUntilIdle(); 6024 loop_.RunUntilIdle();
6026 EXPECT_TRUE(extensions::HasExternalInstallError(service_)); 6025 EXPECT_TRUE(extensions::HasExternalInstallError(service_));
6027 EXPECT_FALSE(extensions::HasExternalInstallBubble(service_)); 6026 EXPECT_FALSE(extensions::HasExternalInstallBubble(service_));
6028 EXPECT_FALSE(service_->IsExtensionEnabled(updates_from_webstore)); 6027 EXPECT_FALSE(service_->IsExtensionEnabled(updates_from_webstore));
6029 } 6028 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_service.cc ('k') | chrome/browser/extensions/extension_special_storage_policy_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698