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

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

Issue 2314363002: extensions: Change ScopedTempDir::path() to GetPath() (Closed)
Patch Set: Comment addressed Created 4 years, 3 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 (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.h" 5 #include "chrome/browser/extensions/extension_service.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 1839 matching lines...) Expand 10 before | Expand all | Expand 10 after
1850 InitializeEmptyExtensionService(); 1850 InitializeEmptyExtensionService();
1851 base::FilePath input_directory = 1851 base::FilePath input_directory =
1852 data_dir() 1852 data_dir()
1853 .AppendASCII("good") 1853 .AppendASCII("good")
1854 .AppendASCII("Extensions") 1854 .AppendASCII("Extensions")
1855 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj") 1855 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj")
1856 .AppendASCII("1.0.0.0"); 1856 .AppendASCII("1.0.0.0");
1857 1857
1858 base::ScopedTempDir temp_dir; 1858 base::ScopedTempDir temp_dir;
1859 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 1859 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
1860 base::FilePath output_directory = temp_dir.path(); 1860 base::FilePath output_directory = temp_dir.GetPath();
1861 1861
1862 base::FilePath crx_path(output_directory.AppendASCII("ex1.crx")); 1862 base::FilePath crx_path(output_directory.AppendASCII("ex1.crx"));
1863 base::FilePath privkey_path(output_directory.AppendASCII("privkey.pem")); 1863 base::FilePath privkey_path(output_directory.AppendASCII("privkey.pem"));
1864 1864
1865 std::unique_ptr<ExtensionCreator> creator(new ExtensionCreator()); 1865 std::unique_ptr<ExtensionCreator> creator(new ExtensionCreator());
1866 ASSERT_TRUE(creator->Run(input_directory, crx_path, base::FilePath(), 1866 ASSERT_TRUE(creator->Run(input_directory, crx_path, base::FilePath(),
1867 privkey_path, ExtensionCreator::kNoRunFlags)); 1867 privkey_path, ExtensionCreator::kNoRunFlags));
1868 ASSERT_TRUE(base::PathExists(crx_path)); 1868 ASSERT_TRUE(base::PathExists(crx_path));
1869 ASSERT_TRUE(base::PathExists(privkey_path)); 1869 ASSERT_TRUE(base::PathExists(privkey_path));
1870 1870
(...skipping 19 matching lines...) Expand all
1890 creator.reset(new ExtensionCreator()); 1890 creator.reset(new ExtensionCreator());
1891 ASSERT_FALSE( 1891 ASSERT_FALSE(
1892 creator->Run(base::FilePath(), base::FilePath(), base::FilePath(), 1892 creator->Run(base::FilePath(), base::FilePath(), base::FilePath(),
1893 base::FilePath(), ExtensionCreator::kOverwriteCRX)); 1893 base::FilePath(), ExtensionCreator::kOverwriteCRX));
1894 1894
1895 // Try packing an empty directory. Should fail because an empty directory is 1895 // Try packing an empty directory. Should fail because an empty directory is
1896 // not a valid extension. 1896 // not a valid extension.
1897 base::ScopedTempDir temp_dir2; 1897 base::ScopedTempDir temp_dir2;
1898 ASSERT_TRUE(temp_dir2.CreateUniqueTempDir()); 1898 ASSERT_TRUE(temp_dir2.CreateUniqueTempDir());
1899 creator.reset(new ExtensionCreator()); 1899 creator.reset(new ExtensionCreator());
1900 ASSERT_FALSE(creator->Run(temp_dir2.path(), crx_path, privkey_path, 1900 ASSERT_FALSE(creator->Run(temp_dir2.GetPath(), crx_path, privkey_path,
1901 base::FilePath(), ExtensionCreator::kOverwriteCRX)); 1901 base::FilePath(), ExtensionCreator::kOverwriteCRX));
1902 1902
1903 // Try packing with an invalid manifest. 1903 // Try packing with an invalid manifest.
1904 std::string invalid_manifest_content = "I am not a manifest."; 1904 std::string invalid_manifest_content = "I am not a manifest.";
1905 ASSERT_TRUE(base::WriteFile( 1905 ASSERT_TRUE(base::WriteFile(
1906 temp_dir2.path().Append(extensions::kManifestFilename), 1906 temp_dir2.GetPath().Append(extensions::kManifestFilename),
1907 invalid_manifest_content.c_str(), invalid_manifest_content.size())); 1907 invalid_manifest_content.c_str(), invalid_manifest_content.size()));
1908 creator.reset(new ExtensionCreator()); 1908 creator.reset(new ExtensionCreator());
1909 ASSERT_FALSE(creator->Run(temp_dir2.path(), crx_path, privkey_path, 1909 ASSERT_FALSE(creator->Run(temp_dir2.GetPath(), crx_path, privkey_path,
1910 base::FilePath(), ExtensionCreator::kOverwriteCRX)); 1910 base::FilePath(), ExtensionCreator::kOverwriteCRX));
1911 1911
1912 // Try packing with a private key that is a valid key, but invalid for the 1912 // Try packing with a private key that is a valid key, but invalid for the
1913 // extension. 1913 // extension.
1914 base::FilePath bad_private_key_dir = 1914 base::FilePath bad_private_key_dir =
1915 data_dir().AppendASCII("bad_private_key"); 1915 data_dir().AppendASCII("bad_private_key");
1916 crx_path = output_directory.AppendASCII("bad_private_key.crx"); 1916 crx_path = output_directory.AppendASCII("bad_private_key.crx");
1917 privkey_path = data_dir().AppendASCII("bad_private_key.pem"); 1917 privkey_path = data_dir().AppendASCII("bad_private_key.pem");
1918 ASSERT_FALSE(creator->Run(bad_private_key_dir, crx_path, base::FilePath(), 1918 ASSERT_FALSE(creator->Run(bad_private_key_dir, crx_path, base::FilePath(),
1919 privkey_path, ExtensionCreator::kOverwriteCRX)); 1919 privkey_path, ExtensionCreator::kOverwriteCRX));
(...skipping 27 matching lines...) Expand all
1947 }; 1947 };
1948 const base::FilePath expected_private_key_names[] = { 1948 const base::FilePath expected_private_key_names[] = {
1949 base::FilePath(FILE_PATH_LITERAL("this.extensions.name.has.periods.pem")), 1949 base::FilePath(FILE_PATH_LITERAL("this.extensions.name.has.periods.pem")),
1950 base::FilePath( 1950 base::FilePath(
1951 FILE_PATH_LITERAL(".thisextensionsnamestartswithaperiod.pem")), 1951 FILE_PATH_LITERAL(".thisextensionsnamestartswithaperiod.pem")),
1952 base::FilePath(FILE_PATH_LITERAL("thisextensionhasaslashinitsname.pem")), 1952 base::FilePath(FILE_PATH_LITERAL("thisextensionhasaslashinitsname.pem")),
1953 }; 1953 };
1954 1954
1955 for (size_t i = 0; i < arraysize(punctuated_names); ++i) { 1955 for (size_t i = 0; i < arraysize(punctuated_names); ++i) {
1956 SCOPED_TRACE(punctuated_names[i].value().c_str()); 1956 SCOPED_TRACE(punctuated_names[i].value().c_str());
1957 base::FilePath output_dir = temp_dir.path().Append(punctuated_names[i]); 1957 base::FilePath output_dir = temp_dir.GetPath().Append(punctuated_names[i]);
1958 1958
1959 // Copy the extension into the output directory, as PackExtensionJob doesn't 1959 // Copy the extension into the output directory, as PackExtensionJob doesn't
1960 // let us choose where to output the packed extension. 1960 // let us choose where to output the packed extension.
1961 ASSERT_TRUE(base::CopyDirectory(input_directory, output_dir, true)); 1961 ASSERT_TRUE(base::CopyDirectory(input_directory, output_dir, true));
1962 1962
1963 base::FilePath expected_crx_path = 1963 base::FilePath expected_crx_path =
1964 temp_dir.path().Append(expected_crx_names[i]); 1964 temp_dir.GetPath().Append(expected_crx_names[i]);
1965 base::FilePath expected_private_key_path = 1965 base::FilePath expected_private_key_path =
1966 temp_dir.path().Append(expected_private_key_names[i]); 1966 temp_dir.GetPath().Append(expected_private_key_names[i]);
1967 PackExtensionTestClient pack_client(expected_crx_path, 1967 PackExtensionTestClient pack_client(expected_crx_path,
1968 expected_private_key_path); 1968 expected_private_key_path);
1969 scoped_refptr<extensions::PackExtensionJob> packer( 1969 scoped_refptr<extensions::PackExtensionJob> packer(
1970 new extensions::PackExtensionJob(&pack_client, output_dir, 1970 new extensions::PackExtensionJob(&pack_client, output_dir,
1971 base::FilePath(), 1971 base::FilePath(),
1972 ExtensionCreator::kOverwriteCRX)); 1972 ExtensionCreator::kOverwriteCRX));
1973 packer->Start(); 1973 packer->Start();
1974 1974
1975 // The packer will post a notification task to the current thread's message 1975 // The packer will post a notification task to the current thread's message
1976 // loop when it is finished. We manually run the loop here so that we 1976 // loop when it is finished. We manually run the loop here so that we
1977 // block and catch the notification; otherwise, the process would exit. 1977 // block and catch the notification; otherwise, the process would exit.
1978 // This call to |Run()| is matched by a call to |Quit()| in the 1978 // This call to |Run()| is matched by a call to |Quit()| in the
1979 // |PackExtensionTestClient|'s notification handling code. 1979 // |PackExtensionTestClient|'s notification handling code.
1980 base::RunLoop().Run(); 1980 base::RunLoop().Run();
1981 1981
1982 if (HasFatalFailure()) 1982 if (HasFatalFailure())
1983 return; 1983 return;
1984 1984
1985 InstallCRX(expected_crx_path, INSTALL_NEW); 1985 InstallCRX(expected_crx_path, INSTALL_NEW);
1986 } 1986 }
1987 } 1987 }
1988 1988
1989 TEST_F(ExtensionServiceTest, PackExtensionContainingKeyFails) { 1989 TEST_F(ExtensionServiceTest, PackExtensionContainingKeyFails) {
1990 InitializeEmptyExtensionService(); 1990 InitializeEmptyExtensionService();
1991 1991
1992 base::ScopedTempDir extension_temp_dir; 1992 base::ScopedTempDir extension_temp_dir;
1993 ASSERT_TRUE(extension_temp_dir.CreateUniqueTempDir()); 1993 ASSERT_TRUE(extension_temp_dir.CreateUniqueTempDir());
1994 base::FilePath input_directory = extension_temp_dir.path().AppendASCII("ext"); 1994 base::FilePath input_directory =
1995 extension_temp_dir.GetPath().AppendASCII("ext");
1995 ASSERT_TRUE( 1996 ASSERT_TRUE(
1996 base::CopyDirectory(data_dir() 1997 base::CopyDirectory(data_dir()
1997 .AppendASCII("good") 1998 .AppendASCII("good")
1998 .AppendASCII("Extensions") 1999 .AppendASCII("Extensions")
1999 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj") 2000 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj")
2000 .AppendASCII("1.0.0.0"), 2001 .AppendASCII("1.0.0.0"),
2001 input_directory, 2002 input_directory,
2002 /*recursive=*/true)); 2003 /*recursive=*/true));
2003 2004
2004 base::ScopedTempDir output_temp_dir; 2005 base::ScopedTempDir output_temp_dir;
2005 ASSERT_TRUE(output_temp_dir.CreateUniqueTempDir()); 2006 ASSERT_TRUE(output_temp_dir.CreateUniqueTempDir());
2006 base::FilePath output_directory = output_temp_dir.path(); 2007 base::FilePath output_directory = output_temp_dir.GetPath();
2007 2008
2008 base::FilePath crx_path(output_directory.AppendASCII("ex1.crx")); 2009 base::FilePath crx_path(output_directory.AppendASCII("ex1.crx"));
2009 base::FilePath privkey_path(output_directory.AppendASCII("privkey.pem")); 2010 base::FilePath privkey_path(output_directory.AppendASCII("privkey.pem"));
2010 2011
2011 // Pack the extension once to get a private key. 2012 // Pack the extension once to get a private key.
2012 std::unique_ptr<ExtensionCreator> creator(new ExtensionCreator()); 2013 std::unique_ptr<ExtensionCreator> creator(new ExtensionCreator());
2013 ASSERT_TRUE(creator->Run(input_directory, crx_path, base::FilePath(), 2014 ASSERT_TRUE(creator->Run(input_directory, crx_path, base::FilePath(),
2014 privkey_path, ExtensionCreator::kNoRunFlags)) 2015 privkey_path, ExtensionCreator::kNoRunFlags))
2015 << creator->error_message(); 2016 << creator->error_message();
2016 ASSERT_TRUE(base::PathExists(crx_path)); 2017 ASSERT_TRUE(base::PathExists(crx_path));
(...skipping 25 matching lines...) Expand all
2042 .AppendASCII("good") 2043 .AppendASCII("good")
2043 .AppendASCII("Extensions") 2044 .AppendASCII("Extensions")
2044 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj") 2045 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj")
2045 .AppendASCII("1.0.0.0"); 2046 .AppendASCII("1.0.0.0");
2046 base::FilePath privkey_path( 2047 base::FilePath privkey_path(
2047 data_dir().AppendASCII("openssl_privkey_asn1.pem")); 2048 data_dir().AppendASCII("openssl_privkey_asn1.pem"));
2048 ASSERT_TRUE(base::PathExists(privkey_path)); 2049 ASSERT_TRUE(base::PathExists(privkey_path));
2049 2050
2050 base::ScopedTempDir temp_dir; 2051 base::ScopedTempDir temp_dir;
2051 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 2052 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
2052 base::FilePath output_directory = temp_dir.path(); 2053 base::FilePath output_directory = temp_dir.GetPath();
2053 2054
2054 base::FilePath crx_path(output_directory.AppendASCII("ex1.crx")); 2055 base::FilePath crx_path(output_directory.AppendASCII("ex1.crx"));
2055 2056
2056 std::unique_ptr<ExtensionCreator> creator(new ExtensionCreator()); 2057 std::unique_ptr<ExtensionCreator> creator(new ExtensionCreator());
2057 ASSERT_TRUE(creator->Run(input_directory, crx_path, privkey_path, 2058 ASSERT_TRUE(creator->Run(input_directory, crx_path, privkey_path,
2058 base::FilePath(), ExtensionCreator::kOverwriteCRX)); 2059 base::FilePath(), ExtensionCreator::kOverwriteCRX));
2059 2060
2060 InstallCRX(crx_path, INSTALL_NEW); 2061 InstallCRX(crx_path, INSTALL_NEW);
2061 } 2062 }
2062 2063
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
2142 2143
2143 // Paths to test data files. 2144 // Paths to test data files.
2144 base::FilePath source_manifest = source_data_dir.AppendASCII("manifest.json"); 2145 base::FilePath source_manifest = source_data_dir.AppendASCII("manifest.json");
2145 ASSERT_TRUE(base::PathExists(source_manifest)); 2146 ASSERT_TRUE(base::PathExists(source_manifest));
2146 base::FilePath source_icon = source_data_dir.AppendASCII("icon.png"); 2147 base::FilePath source_icon = source_data_dir.AppendASCII("icon.png");
2147 ASSERT_TRUE(base::PathExists(source_icon)); 2148 ASSERT_TRUE(base::PathExists(source_icon));
2148 2149
2149 // Set up the temporary extension directory. 2150 // Set up the temporary extension directory.
2150 base::ScopedTempDir temp; 2151 base::ScopedTempDir temp;
2151 ASSERT_TRUE(temp.CreateUniqueTempDir()); 2152 ASSERT_TRUE(temp.CreateUniqueTempDir());
2152 base::FilePath extension_path = temp.path(); 2153 base::FilePath extension_path = temp.GetPath();
2153 base::FilePath manifest = extension_path.Append( 2154 base::FilePath manifest = extension_path.Append(
2154 extensions::kManifestFilename); 2155 extensions::kManifestFilename);
2155 base::FilePath icon_symlink = extension_path.AppendASCII("icon.png"); 2156 base::FilePath icon_symlink = extension_path.AppendASCII("icon.png");
2156 base::CopyFile(source_manifest, manifest); 2157 base::CopyFile(source_manifest, manifest);
2157 base::CreateSymbolicLink(source_icon, icon_symlink); 2158 base::CreateSymbolicLink(source_icon, icon_symlink);
2158 2159
2159 // Load extension. 2160 // Load extension.
2160 InitializeEmptyExtensionService(); 2161 InitializeEmptyExtensionService();
2161 extensions::UnpackedInstaller::Create(service())->Load(extension_path); 2162 extensions::UnpackedInstaller::Create(service())->Load(extension_path);
2162 base::RunLoop().RunUntilIdle(); 2163 base::RunLoop().RunUntilIdle();
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after
2594 2595
2595 // Makes sure that LOAD extension types can downgrade. 2596 // Makes sure that LOAD extension types can downgrade.
2596 TEST_F(ExtensionServiceTest, LoadExtensionsCanDowngrade) { 2597 TEST_F(ExtensionServiceTest, LoadExtensionsCanDowngrade) {
2597 InitializeEmptyExtensionService(); 2598 InitializeEmptyExtensionService();
2598 2599
2599 base::ScopedTempDir temp; 2600 base::ScopedTempDir temp;
2600 ASSERT_TRUE(temp.CreateUniqueTempDir()); 2601 ASSERT_TRUE(temp.CreateUniqueTempDir());
2601 2602
2602 // We'll write the extension manifest dynamically to a temporary path 2603 // We'll write the extension manifest dynamically to a temporary path
2603 // to make it easier to change the version number. 2604 // to make it easier to change the version number.
2604 base::FilePath extension_path = temp.path(); 2605 base::FilePath extension_path = temp.GetPath();
2605 base::FilePath manifest_path = 2606 base::FilePath manifest_path =
2606 extension_path.Append(extensions::kManifestFilename); 2607 extension_path.Append(extensions::kManifestFilename);
2607 ASSERT_FALSE(base::PathExists(manifest_path)); 2608 ASSERT_FALSE(base::PathExists(manifest_path));
2608 2609
2609 // Start with version 2.0. 2610 // Start with version 2.0.
2610 base::DictionaryValue manifest; 2611 base::DictionaryValue manifest;
2611 manifest.SetString("version", "2.0"); 2612 manifest.SetString("version", "2.0");
2612 manifest.SetString("name", "LOAD Downgrade Test"); 2613 manifest.SetString("name", "LOAD Downgrade Test");
2613 manifest.SetInteger("manifest_version", 2); 2614 manifest.SetInteger("manifest_version", 2);
2614 2615
(...skipping 1358 matching lines...) Expand 10 before | Expand all | Expand 10 after
3973 // Tests that extension supposed to be force installed but with conflicting 3974 // Tests that extension supposed to be force installed but with conflicting
3974 // required permissions cannot be installed. 3975 // required permissions cannot be installed.
3975 TEST_F(ExtensionServiceTest, PolicyBlockedPermissionConflictsWithForceInstall) { 3976 TEST_F(ExtensionServiceTest, PolicyBlockedPermissionConflictsWithForceInstall) {
3976 InitializeEmptyExtensionServiceWithTestingPrefs(); 3977 InitializeEmptyExtensionServiceWithTestingPrefs();
3977 3978
3978 // Pack the crx file. 3979 // Pack the crx file.
3979 base::FilePath path = data_dir().AppendASCII("permissions_blocklist"); 3980 base::FilePath path = data_dir().AppendASCII("permissions_blocklist");
3980 base::FilePath pem_path = data_dir().AppendASCII("permissions_blocklist.pem"); 3981 base::FilePath pem_path = data_dir().AppendASCII("permissions_blocklist.pem");
3981 base::ScopedTempDir temp_dir; 3982 base::ScopedTempDir temp_dir;
3982 EXPECT_TRUE(temp_dir.CreateUniqueTempDir()); 3983 EXPECT_TRUE(temp_dir.CreateUniqueTempDir());
3983 base::FilePath crx_path = temp_dir.path().AppendASCII("temp.crx"); 3984 base::FilePath crx_path = temp_dir.GetPath().AppendASCII("temp.crx");
3984 3985
3985 PackCRX(path, pem_path, crx_path); 3986 PackCRX(path, pem_path, crx_path);
3986 3987
3987 { 3988 {
3988 // Block one of the required permissions. 3989 // Block one of the required permissions.
3989 ManagementPrefUpdater pref(profile_->GetTestingPrefService()); 3990 ManagementPrefUpdater pref(profile_->GetTestingPrefService());
3990 pref.AddBlockedPermission("*", "tabs"); 3991 pref.AddBlockedPermission("*", "tabs");
3991 } 3992 }
3992 3993
3993 // Use MockExtensionProvider to simulate force installing extension. 3994 // Use MockExtensionProvider to simulate force installing extension.
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
4073 TEST_F(ExtensionServiceTest, PolicyBlockedPermissionPolicyUpdate) { 4074 TEST_F(ExtensionServiceTest, PolicyBlockedPermissionPolicyUpdate) {
4074 InitializeEmptyExtensionServiceWithTestingPrefs(); 4075 InitializeEmptyExtensionServiceWithTestingPrefs();
4075 4076
4076 base::FilePath path = data_dir().AppendASCII("permissions_blocklist"); 4077 base::FilePath path = data_dir().AppendASCII("permissions_blocklist");
4077 base::FilePath path2 = data_dir().AppendASCII("permissions_blocklist2"); 4078 base::FilePath path2 = data_dir().AppendASCII("permissions_blocklist2");
4078 base::FilePath pem_path = data_dir().AppendASCII("permissions_blocklist.pem"); 4079 base::FilePath pem_path = data_dir().AppendASCII("permissions_blocklist.pem");
4079 4080
4080 // Pack the crx file. 4081 // Pack the crx file.
4081 base::ScopedTempDir temp_dir; 4082 base::ScopedTempDir temp_dir;
4082 EXPECT_TRUE(temp_dir.CreateUniqueTempDir()); 4083 EXPECT_TRUE(temp_dir.CreateUniqueTempDir());
4083 base::FilePath crx_path = temp_dir.path().AppendASCII("temp.crx"); 4084 base::FilePath crx_path = temp_dir.GetPath().AppendASCII("temp.crx");
4084 4085
4085 PackCRX(path2, pem_path, crx_path); 4086 PackCRX(path2, pem_path, crx_path);
4086 4087
4087 // Install two arbitary extensions with specified manifest. 4088 // Install two arbitary extensions with specified manifest.
4088 std::string ext1 = PackAndInstallCRX(path, INSTALL_NEW)->id(); 4089 std::string ext1 = PackAndInstallCRX(path, INSTALL_NEW)->id();
4089 std::string ext2 = PackAndInstallCRX(path2, INSTALL_NEW)->id(); 4090 std::string ext2 = PackAndInstallCRX(path2, INSTALL_NEW)->id();
4090 ASSERT_NE(ext1, permissions_blocklist); 4091 ASSERT_NE(ext1, permissions_blocklist);
4091 ASSERT_NE(ext2, permissions_blocklist); 4092 ASSERT_NE(ext2, permissions_blocklist);
4092 ASSERT_NE(ext1, ext2); 4093 ASSERT_NE(ext1, ext2);
4093 4094
(...skipping 2340 matching lines...) Expand 10 before | Expand all | Expand 10 after
6434 // post-first run. 6435 // post-first run.
6435 ExtensionServiceInitParams params = CreateDefaultInitParams(); 6436 ExtensionServiceInitParams params = CreateDefaultInitParams();
6436 params.is_first_run = false; 6437 params.is_first_run = false;
6437 InitializeExtensionService(params); 6438 InitializeExtensionService(params);
6438 6439
6439 MockExtensionProvider* provider = 6440 MockExtensionProvider* provider =
6440 new MockExtensionProvider(service(), Manifest::EXTERNAL_PREF); 6441 new MockExtensionProvider(service(), Manifest::EXTERNAL_PREF);
6441 AddMockExternalProvider(provider); 6442 AddMockExternalProvider(provider);
6442 6443
6443 std::vector<BubbleErrorsTestData> data; 6444 std::vector<BubbleErrorsTestData> data;
6444 data.push_back( 6445 data.push_back(BubbleErrorsTestData(
6445 BubbleErrorsTestData(updates_from_webstore, "1", 6446 updates_from_webstore, "1",
6446 temp_dir().path().AppendASCII("webstore.crx"), 1u)); 6447 temp_dir().GetPath().AppendASCII("webstore.crx"), 1u));
6447 data.push_back( 6448 data.push_back(BubbleErrorsTestData(
6448 BubbleErrorsTestData(updates_from_webstore2, "1", 6449 updates_from_webstore2, "1",
6449 temp_dir().path().AppendASCII("webstore2.crx"), 2u)); 6450 temp_dir().GetPath().AppendASCII("webstore2.crx"), 2u));
6450 data.push_back(BubbleErrorsTestData(good_crx, "1.0.0.0", 6451 data.push_back(BubbleErrorsTestData(good_crx, "1.0.0.0",
6451 data_dir().AppendASCII("good.crx"), 2u)); 6452 data_dir().AppendASCII("good.crx"), 2u));
6452 6453
6453 PackCRX(data_dir().AppendASCII("update_from_webstore"), 6454 PackCRX(data_dir().AppendASCII("update_from_webstore"),
6454 data_dir().AppendASCII("update_from_webstore.pem"), data[0].crx_path); 6455 data_dir().AppendASCII("update_from_webstore.pem"), data[0].crx_path);
6455 PackCRX(data_dir().AppendASCII("update_from_webstore2"), 6456 PackCRX(data_dir().AppendASCII("update_from_webstore2"),
6456 data_dir().AppendASCII("update_from_webstore2.pem"), 6457 data_dir().AppendASCII("update_from_webstore2.pem"),
6457 data[1].crx_path); 6458 data[1].crx_path);
6458 6459
6459 // Install extensions from |data| one by one and expect each of them to result 6460 // Install extensions from |data| one by one and expect each of them to result
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
6503 ->external_install_manager() 6504 ->external_install_manager()
6504 ->has_currently_visible_install_alert()); 6505 ->has_currently_visible_install_alert());
6505 EXPECT_EQ(0u, GetExternalInstallBubbleCount(service())); 6506 EXPECT_EQ(0u, GetExternalInstallBubbleCount(service()));
6506 EXPECT_FALSE(HasExternalInstallErrors(service())); 6507 EXPECT_FALSE(HasExternalInstallErrors(service()));
6507 6508
6508 // Add a new webstore install. Verify that this shows an error bubble since 6509 // Add a new webstore install. Verify that this shows an error bubble since
6509 // there are no error bubbles pending at this point. Also verify that the 6510 // there are no error bubbles pending at this point. Also verify that the
6510 // error bubble is for this newly added extension. 6511 // error bubble is for this newly added extension.
6511 { 6512 {
6512 base::FilePath webstore_crx_three = 6513 base::FilePath webstore_crx_three =
6513 temp_dir().path().AppendASCII("webstore3.crx"); 6514 temp_dir().GetPath().AppendASCII("webstore3.crx");
6514 PackCRX(data_dir().AppendASCII("update_from_webstore3"), 6515 PackCRX(data_dir().AppendASCII("update_from_webstore3"),
6515 data_dir().AppendASCII("update_from_webstore3.pem"), 6516 data_dir().AppendASCII("update_from_webstore3.pem"),
6516 webstore_crx_three); 6517 webstore_crx_three);
6517 6518
6518 content::WindowedNotificationObserver global_error_observer( 6519 content::WindowedNotificationObserver global_error_observer(
6519 chrome::NOTIFICATION_GLOBAL_ERRORS_CHANGED, 6520 chrome::NOTIFICATION_GLOBAL_ERRORS_CHANGED,
6520 content::NotificationService::AllSources()); 6521 content::NotificationService::AllSources());
6521 content::WindowedNotificationObserver observer( 6522 content::WindowedNotificationObserver observer(
6522 extensions::NOTIFICATION_CRX_INSTALLER_DONE, 6523 extensions::NOTIFICATION_CRX_INSTALLER_DONE,
6523 content::NotificationService::AllSources()); 6524 content::NotificationService::AllSources());
6524 provider->UpdateOrAddExtension( 6525 provider->UpdateOrAddExtension(
6525 updates_from_webstore3, "1", 6526 updates_from_webstore3, "1",
6526 temp_dir().path().AppendASCII("webstore3.crx")); 6527 temp_dir().GetPath().AppendASCII("webstore3.crx"));
6527 service()->CheckForExternalUpdates(); 6528 service()->CheckForExternalUpdates();
6528 observer.Wait(); 6529 observer.Wait();
6529 // Make sure ExternalInstallError::OnDialogReady() fires. 6530 // Make sure ExternalInstallError::OnDialogReady() fires.
6530 global_error_observer.Wait(); 6531 global_error_observer.Wait();
6531 6532
6532 std::vector<ExternalInstallError*> errors = 6533 std::vector<ExternalInstallError*> errors =
6533 service_->external_install_manager()->GetErrorsForTesting(); 6534 service_->external_install_manager()->GetErrorsForTesting();
6534 EXPECT_EQ(1u, errors.size()); 6535 EXPECT_EQ(1u, errors.size());
6535 EXPECT_EQ(1u, GetExternalInstallBubbleCount(service())); 6536 EXPECT_EQ(1u, GetExternalInstallBubbleCount(service()));
6536 EXPECT_TRUE(service() 6537 EXPECT_TRUE(service()
(...skipping 16 matching lines...) Expand all
6553 // post-first run. 6554 // post-first run.
6554 ExtensionServiceInitParams params = CreateDefaultInitParams(); 6555 ExtensionServiceInitParams params = CreateDefaultInitParams();
6555 params.is_first_run = false; 6556 params.is_first_run = false;
6556 InitializeExtensionService(params); 6557 InitializeExtensionService(params);
6557 6558
6558 MockExtensionProvider* provider = 6559 MockExtensionProvider* provider =
6559 new MockExtensionProvider(service(), Manifest::EXTERNAL_PREF); 6560 new MockExtensionProvider(service(), Manifest::EXTERNAL_PREF);
6560 AddMockExternalProvider(provider); 6561 AddMockExternalProvider(provider);
6561 6562
6562 std::vector<BubbleErrorsTestData> data; 6563 std::vector<BubbleErrorsTestData> data;
6563 data.push_back( 6564 data.push_back(BubbleErrorsTestData(
6564 BubbleErrorsTestData(updates_from_webstore, "1", 6565 updates_from_webstore, "1",
6565 temp_dir().path().AppendASCII("webstore.crx"), 1u)); 6566 temp_dir().GetPath().AppendASCII("webstore.crx"), 1u));
6566 data.push_back( 6567 data.push_back(BubbleErrorsTestData(
6567 BubbleErrorsTestData(updates_from_webstore2, "1", 6568 updates_from_webstore2, "1",
6568 temp_dir().path().AppendASCII("webstore2.crx"), 2u)); 6569 temp_dir().GetPath().AppendASCII("webstore2.crx"), 2u));
6569 6570
6570 PackCRX(data_dir().AppendASCII("update_from_webstore"), 6571 PackCRX(data_dir().AppendASCII("update_from_webstore"),
6571 data_dir().AppendASCII("update_from_webstore.pem"), data[0].crx_path); 6572 data_dir().AppendASCII("update_from_webstore.pem"), data[0].crx_path);
6572 PackCRX(data_dir().AppendASCII("update_from_webstore2"), 6573 PackCRX(data_dir().AppendASCII("update_from_webstore2"),
6573 data_dir().AppendASCII("update_from_webstore2.pem"), 6574 data_dir().AppendASCII("update_from_webstore2.pem"),
6574 data[1].crx_path); 6575 data[1].crx_path);
6575 { 6576 {
6576 content::WindowedNotificationObserver global_error_observer( 6577 content::WindowedNotificationObserver global_error_observer(
6577 chrome::NOTIFICATION_GLOBAL_ERRORS_CHANGED, 6578 chrome::NOTIFICATION_GLOBAL_ERRORS_CHANGED,
6578 content::NotificationService::AllSources()); 6579 content::NotificationService::AllSources());
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
6647 TEST_F(ExtensionServiceTest, ExternalInstallUpdatesFromWebstoreOldProfile) { 6648 TEST_F(ExtensionServiceTest, ExternalInstallUpdatesFromWebstoreOldProfile) {
6648 FeatureSwitch::ScopedOverride prompt( 6649 FeatureSwitch::ScopedOverride prompt(
6649 FeatureSwitch::prompt_for_external_extensions(), true); 6650 FeatureSwitch::prompt_for_external_extensions(), true);
6650 6651
6651 // This sets up the ExtensionPrefs used by our ExtensionService to be 6652 // This sets up the ExtensionPrefs used by our ExtensionService to be
6652 // post-first run. 6653 // post-first run.
6653 ExtensionServiceInitParams params = CreateDefaultInitParams(); 6654 ExtensionServiceInitParams params = CreateDefaultInitParams();
6654 params.is_first_run = false; 6655 params.is_first_run = false;
6655 InitializeExtensionService(params); 6656 InitializeExtensionService(params);
6656 6657
6657 base::FilePath crx_path = temp_dir().path().AppendASCII("webstore.crx"); 6658 base::FilePath crx_path = temp_dir().GetPath().AppendASCII("webstore.crx");
6658 PackCRX(data_dir().AppendASCII("update_from_webstore"), 6659 PackCRX(data_dir().AppendASCII("update_from_webstore"),
6659 data_dir().AppendASCII("update_from_webstore.pem"), 6660 data_dir().AppendASCII("update_from_webstore.pem"),
6660 crx_path); 6661 crx_path);
6661 6662
6662 MockExtensionProvider* provider = 6663 MockExtensionProvider* provider =
6663 new MockExtensionProvider(service(), Manifest::EXTERNAL_PREF); 6664 new MockExtensionProvider(service(), Manifest::EXTERNAL_PREF);
6664 AddMockExternalProvider(provider); 6665 AddMockExternalProvider(provider);
6665 provider->UpdateOrAddExtension(updates_from_webstore, "1", crx_path); 6666 provider->UpdateOrAddExtension(updates_from_webstore, "1", crx_path);
6666 6667
6667 content::WindowedNotificationObserver observer( 6668 content::WindowedNotificationObserver observer(
6668 extensions::NOTIFICATION_CRX_INSTALLER_DONE, 6669 extensions::NOTIFICATION_CRX_INSTALLER_DONE,
6669 content::NotificationService::AllSources()); 6670 content::NotificationService::AllSources());
6670 service()->CheckForExternalUpdates(); 6671 service()->CheckForExternalUpdates();
6671 observer.Wait(); 6672 observer.Wait();
6672 EXPECT_TRUE(HasExternalInstallErrors(service())); 6673 EXPECT_TRUE(HasExternalInstallErrors(service()));
6673 ASSERT_TRUE(GetError(updates_from_webstore)); 6674 ASSERT_TRUE(GetError(updates_from_webstore));
6674 EXPECT_EQ(ExternalInstallError::BUBBLE_ALERT, 6675 EXPECT_EQ(ExternalInstallError::BUBBLE_ALERT,
6675 GetError(updates_from_webstore)->alert_type()); 6676 GetError(updates_from_webstore)->alert_type());
6676 EXPECT_FALSE(service()->IsExtensionEnabled(updates_from_webstore)); 6677 EXPECT_FALSE(service()->IsExtensionEnabled(updates_from_webstore));
6677 } 6678 }
6678 6679
6679 // Test that there is no bubble for external extensions if the profile is new. 6680 // Test that there is no bubble for external extensions if the profile is new.
6680 TEST_F(ExtensionServiceTest, ExternalInstallUpdatesFromWebstoreNewProfile) { 6681 TEST_F(ExtensionServiceTest, ExternalInstallUpdatesFromWebstoreNewProfile) {
6681 FeatureSwitch::ScopedOverride prompt( 6682 FeatureSwitch::ScopedOverride prompt(
6682 FeatureSwitch::prompt_for_external_extensions(), true); 6683 FeatureSwitch::prompt_for_external_extensions(), true);
6683 6684
6684 InitializeEmptyExtensionService(); 6685 InitializeEmptyExtensionService();
6685 6686
6686 base::FilePath crx_path = temp_dir().path().AppendASCII("webstore.crx"); 6687 base::FilePath crx_path = temp_dir().GetPath().AppendASCII("webstore.crx");
6687 PackCRX(data_dir().AppendASCII("update_from_webstore"), 6688 PackCRX(data_dir().AppendASCII("update_from_webstore"),
6688 data_dir().AppendASCII("update_from_webstore.pem"), 6689 data_dir().AppendASCII("update_from_webstore.pem"),
6689 crx_path); 6690 crx_path);
6690 6691
6691 MockExtensionProvider* provider = 6692 MockExtensionProvider* provider =
6692 new MockExtensionProvider(service(), Manifest::EXTERNAL_PREF); 6693 new MockExtensionProvider(service(), Manifest::EXTERNAL_PREF);
6693 AddMockExternalProvider(provider); 6694 AddMockExternalProvider(provider);
6694 provider->UpdateOrAddExtension(updates_from_webstore, "1", crx_path); 6695 provider->UpdateOrAddExtension(updates_from_webstore, "1", crx_path);
6695 6696
6696 content::WindowedNotificationObserver observer( 6697 content::WindowedNotificationObserver observer(
(...skipping 11 matching lines...) Expand all
6708 // Test that clicking to remove the extension on an external install warning 6709 // Test that clicking to remove the extension on an external install warning
6709 // uninstalls the extension. 6710 // uninstalls the extension.
6710 TEST_F(ExtensionServiceTest, ExternalInstallClickToRemove) { 6711 TEST_F(ExtensionServiceTest, ExternalInstallClickToRemove) {
6711 FeatureSwitch::ScopedOverride prompt( 6712 FeatureSwitch::ScopedOverride prompt(
6712 FeatureSwitch::prompt_for_external_extensions(), true); 6713 FeatureSwitch::prompt_for_external_extensions(), true);
6713 6714
6714 ExtensionServiceInitParams params = CreateDefaultInitParams(); 6715 ExtensionServiceInitParams params = CreateDefaultInitParams();
6715 params.is_first_run = false; 6716 params.is_first_run = false;
6716 InitializeExtensionService(params); 6717 InitializeExtensionService(params);
6717 6718
6718 base::FilePath crx_path = temp_dir().path().AppendASCII("webstore.crx"); 6719 base::FilePath crx_path = temp_dir().GetPath().AppendASCII("webstore.crx");
6719 PackCRX(data_dir().AppendASCII("update_from_webstore"), 6720 PackCRX(data_dir().AppendASCII("update_from_webstore"),
6720 data_dir().AppendASCII("update_from_webstore.pem"), 6721 data_dir().AppendASCII("update_from_webstore.pem"),
6721 crx_path); 6722 crx_path);
6722 6723
6723 MockExtensionProvider* provider = 6724 MockExtensionProvider* provider =
6724 new MockExtensionProvider(service_, Manifest::EXTERNAL_PREF); 6725 new MockExtensionProvider(service_, Manifest::EXTERNAL_PREF);
6725 AddMockExternalProvider(provider); 6726 AddMockExternalProvider(provider);
6726 provider->UpdateOrAddExtension(updates_from_webstore, "1", crx_path); 6727 provider->UpdateOrAddExtension(updates_from_webstore, "1", crx_path);
6727 6728
6728 content::WindowedNotificationObserver observer( 6729 content::WindowedNotificationObserver observer(
(...skipping 22 matching lines...) Expand all
6751 // Test that clicking to keep the extension on an external install warning 6752 // Test that clicking to keep the extension on an external install warning
6752 // re-enables the extension. 6753 // re-enables the extension.
6753 TEST_F(ExtensionServiceTest, ExternalInstallClickToKeep) { 6754 TEST_F(ExtensionServiceTest, ExternalInstallClickToKeep) {
6754 FeatureSwitch::ScopedOverride prompt( 6755 FeatureSwitch::ScopedOverride prompt(
6755 FeatureSwitch::prompt_for_external_extensions(), true); 6756 FeatureSwitch::prompt_for_external_extensions(), true);
6756 6757
6757 ExtensionServiceInitParams params = CreateDefaultInitParams(); 6758 ExtensionServiceInitParams params = CreateDefaultInitParams();
6758 params.is_first_run = false; 6759 params.is_first_run = false;
6759 InitializeExtensionService(params); 6760 InitializeExtensionService(params);
6760 6761
6761 base::FilePath crx_path = temp_dir().path().AppendASCII("webstore.crx"); 6762 base::FilePath crx_path = temp_dir().GetPath().AppendASCII("webstore.crx");
6762 PackCRX(data_dir().AppendASCII("update_from_webstore"), 6763 PackCRX(data_dir().AppendASCII("update_from_webstore"),
6763 data_dir().AppendASCII("update_from_webstore.pem"), 6764 data_dir().AppendASCII("update_from_webstore.pem"),
6764 crx_path); 6765 crx_path);
6765 6766
6766 MockExtensionProvider* provider = 6767 MockExtensionProvider* provider =
6767 new MockExtensionProvider(service_, Manifest::EXTERNAL_PREF); 6768 new MockExtensionProvider(service_, Manifest::EXTERNAL_PREF);
6768 AddMockExternalProvider(provider); 6769 AddMockExternalProvider(provider);
6769 provider->UpdateOrAddExtension(updates_from_webstore, "1", crx_path); 6770 provider->UpdateOrAddExtension(updates_from_webstore, "1", crx_path);
6770 6771
6771 content::WindowedNotificationObserver observer( 6772 content::WindowedNotificationObserver observer(
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
6916 6917
6917 service()->Observe(chrome::NOTIFICATION_PROFILE_DESTRUCTION_STARTED, 6918 service()->Observe(chrome::NOTIFICATION_PROFILE_DESTRUCTION_STARTED,
6918 content::Source<Profile>(profile()), 6919 content::Source<Profile>(profile()),
6919 content::NotificationService::NoDetails()); 6920 content::NotificationService::NoDetails());
6920 EXPECT_EQ(UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN, unloaded_reason_); 6921 EXPECT_EQ(UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN, unloaded_reason_);
6921 EXPECT_EQ(0u, registry()->enabled_extensions().size()); 6922 EXPECT_EQ(0u, registry()->enabled_extensions().size());
6922 EXPECT_EQ(0u, registry()->disabled_extensions().size()); 6923 EXPECT_EQ(0u, registry()->disabled_extensions().size());
6923 EXPECT_EQ(0u, registry()->terminated_extensions().size()); 6924 EXPECT_EQ(0u, registry()->terminated_extensions().size());
6924 EXPECT_EQ(0u, registry()->blacklisted_extensions().size()); 6925 EXPECT_EQ(0u, registry()->blacklisted_extensions().size());
6925 } 6926 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698