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

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

Issue 11359217: Move scoped_temp_dir from base to base/files (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 1 month 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) 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 "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
11 #include "base/at_exit.h" 11 #include "base/at_exit.h"
12 #include "base/basictypes.h" 12 #include "base/basictypes.h"
13 #include "base/bind.h" 13 #include "base/bind.h"
14 #include "base/command_line.h" 14 #include "base/command_line.h"
15 #include "base/file_util.h" 15 #include "base/file_util.h"
16 #include "base/files/scoped_temp_dir.h"
16 #include "base/json/json_file_value_serializer.h" 17 #include "base/json/json_file_value_serializer.h"
17 #include "base/json/json_reader.h" 18 #include "base/json/json_reader.h"
18 #include "base/json/json_string_value_serializer.h" 19 #include "base/json/json_string_value_serializer.h"
19 #include "base/memory/scoped_ptr.h" 20 #include "base/memory/scoped_ptr.h"
20 #include "base/memory/weak_ptr.h" 21 #include "base/memory/weak_ptr.h"
21 #include "base/message_loop.h" 22 #include "base/message_loop.h"
22 #include "base/path_service.h" 23 #include "base/path_service.h"
23 #include "base/scoped_temp_dir.h"
24 #include "base/stl_util.h" 24 #include "base/stl_util.h"
25 #include "base/string16.h" 25 #include "base/string16.h"
26 #include "base/string_number_conversions.h" 26 #include "base/string_number_conversions.h"
27 #include "base/string_util.h" 27 #include "base/string_util.h"
28 #include "base/utf_string_conversions.h" 28 #include "base/utf_string_conversions.h"
29 #include "base/version.h" 29 #include "base/version.h"
30 #include "chrome/browser/browser_process.h" 30 #include "chrome/browser/browser_process.h"
31 #include "chrome/browser/extensions/app_sync_data.h" 31 #include "chrome/browser/extensions/app_sync_data.h"
32 #include "chrome/browser/extensions/component_loader.h" 32 #include "chrome/browser/extensions/component_loader.h"
33 #include "chrome/browser/extensions/crx_installer.h" 33 #include "chrome/browser/extensions/crx_installer.h"
(...skipping 590 matching lines...) Expand 10 before | Expand all | Expand 10 after
624 INSTALL_FAILED, 624 INSTALL_FAILED,
625 INSTALL_UPDATED, 625 INSTALL_UPDATED,
626 INSTALL_NEW 626 INSTALL_NEW
627 }; 627 };
628 628
629 const Extension* PackAndInstallCRX(const FilePath& dir_path, 629 const Extension* PackAndInstallCRX(const FilePath& dir_path,
630 const FilePath& pem_path, 630 const FilePath& pem_path,
631 InstallState install_state, 631 InstallState install_state,
632 int creation_flags) { 632 int creation_flags) {
633 FilePath crx_path; 633 FilePath crx_path;
634 ScopedTempDir temp_dir; 634 base::ScopedTempDir temp_dir;
635 EXPECT_TRUE(temp_dir.CreateUniqueTempDir()); 635 EXPECT_TRUE(temp_dir.CreateUniqueTempDir());
636 crx_path = temp_dir.path().AppendASCII("temp.crx"); 636 crx_path = temp_dir.path().AppendASCII("temp.crx");
637 637
638 PackCRX(dir_path, pem_path, crx_path); 638 PackCRX(dir_path, pem_path, crx_path);
639 return InstallCRX(crx_path, install_state, creation_flags); 639 return InstallCRX(crx_path, install_state, creation_flags);
640 } 640 }
641 641
642 const Extension* PackAndInstallCRX(const FilePath& dir_path, 642 const Extension* PackAndInstallCRX(const FilePath& dir_path,
643 const FilePath& pem_path, 643 const FilePath& pem_path,
644 InstallState install_state) { 644 InstallState install_state) {
(...skipping 1173 matching lines...) Expand 10 before | Expand all | Expand 10 after
1818 1818
1819 // Test Packaging and installing an extension. 1819 // Test Packaging and installing an extension.
1820 TEST_F(ExtensionServiceTest, PackExtension) { 1820 TEST_F(ExtensionServiceTest, PackExtension) {
1821 InitializeEmptyExtensionService(); 1821 InitializeEmptyExtensionService();
1822 FilePath input_directory = data_dir_ 1822 FilePath input_directory = data_dir_
1823 .AppendASCII("good") 1823 .AppendASCII("good")
1824 .AppendASCII("Extensions") 1824 .AppendASCII("Extensions")
1825 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj") 1825 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj")
1826 .AppendASCII("1.0.0.0"); 1826 .AppendASCII("1.0.0.0");
1827 1827
1828 ScopedTempDir temp_dir; 1828 base::ScopedTempDir temp_dir;
1829 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 1829 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
1830 FilePath output_directory = temp_dir.path(); 1830 FilePath output_directory = temp_dir.path();
1831 1831
1832 FilePath crx_path(output_directory.AppendASCII("ex1.crx")); 1832 FilePath crx_path(output_directory.AppendASCII("ex1.crx"));
1833 FilePath privkey_path(output_directory.AppendASCII("privkey.pem")); 1833 FilePath privkey_path(output_directory.AppendASCII("privkey.pem"));
1834 1834
1835 scoped_ptr<ExtensionCreator> creator(new ExtensionCreator()); 1835 scoped_ptr<ExtensionCreator> creator(new ExtensionCreator());
1836 ASSERT_TRUE(creator->Run(input_directory, crx_path, FilePath(), 1836 ASSERT_TRUE(creator->Run(input_directory, crx_path, FilePath(),
1837 privkey_path, ExtensionCreator::kNoRunFlags)); 1837 privkey_path, ExtensionCreator::kNoRunFlags));
1838 ASSERT_TRUE(file_util::PathExists(crx_path)); 1838 ASSERT_TRUE(file_util::PathExists(crx_path));
(...skipping 17 matching lines...) Expand all
1856 ASSERT_TRUE(file_util::PathExists(privkey_path)); 1856 ASSERT_TRUE(file_util::PathExists(privkey_path));
1857 InstallCRX(crx_path, INSTALL_NEW); 1857 InstallCRX(crx_path, INSTALL_NEW);
1858 1858
1859 // Try packing with invalid paths. 1859 // Try packing with invalid paths.
1860 creator.reset(new ExtensionCreator()); 1860 creator.reset(new ExtensionCreator());
1861 ASSERT_FALSE(creator->Run(FilePath(), FilePath(), FilePath(), FilePath(), 1861 ASSERT_FALSE(creator->Run(FilePath(), FilePath(), FilePath(), FilePath(),
1862 ExtensionCreator::kOverwriteCRX)); 1862 ExtensionCreator::kOverwriteCRX));
1863 1863
1864 // Try packing an empty directory. Should fail because an empty directory is 1864 // Try packing an empty directory. Should fail because an empty directory is
1865 // not a valid extension. 1865 // not a valid extension.
1866 ScopedTempDir temp_dir2; 1866 base::ScopedTempDir temp_dir2;
1867 ASSERT_TRUE(temp_dir2.CreateUniqueTempDir()); 1867 ASSERT_TRUE(temp_dir2.CreateUniqueTempDir());
1868 creator.reset(new ExtensionCreator()); 1868 creator.reset(new ExtensionCreator());
1869 ASSERT_FALSE(creator->Run(temp_dir2.path(), crx_path, privkey_path, 1869 ASSERT_FALSE(creator->Run(temp_dir2.path(), crx_path, privkey_path,
1870 FilePath(), ExtensionCreator::kOverwriteCRX)); 1870 FilePath(), ExtensionCreator::kOverwriteCRX));
1871 1871
1872 // Try packing with an invalid manifest. 1872 // Try packing with an invalid manifest.
1873 std::string invalid_manifest_content = "I am not a manifest."; 1873 std::string invalid_manifest_content = "I am not a manifest.";
1874 ASSERT_TRUE(file_util::WriteFile( 1874 ASSERT_TRUE(file_util::WriteFile(
1875 temp_dir2.path().Append(Extension::kManifestFilename), 1875 temp_dir2.path().Append(Extension::kManifestFilename),
1876 invalid_manifest_content.c_str(), invalid_manifest_content.size())); 1876 invalid_manifest_content.c_str(), invalid_manifest_content.size()));
1877 creator.reset(new ExtensionCreator()); 1877 creator.reset(new ExtensionCreator());
1878 ASSERT_FALSE(creator->Run(temp_dir2.path(), crx_path, privkey_path, 1878 ASSERT_FALSE(creator->Run(temp_dir2.path(), crx_path, privkey_path,
1879 FilePath(), ExtensionCreator::kOverwriteCRX)); 1879 FilePath(), ExtensionCreator::kOverwriteCRX));
1880 } 1880 }
1881 1881
1882 // Test Packaging and installing an extension whose name contains punctuation. 1882 // Test Packaging and installing an extension whose name contains punctuation.
1883 TEST_F(ExtensionServiceTest, PackPunctuatedExtension) { 1883 TEST_F(ExtensionServiceTest, PackPunctuatedExtension) {
1884 InitializeEmptyExtensionService(); 1884 InitializeEmptyExtensionService();
1885 FilePath input_directory = data_dir_ 1885 FilePath input_directory = data_dir_
1886 .AppendASCII("good") 1886 .AppendASCII("good")
1887 .AppendASCII("Extensions") 1887 .AppendASCII("Extensions")
1888 .AppendASCII(good0) 1888 .AppendASCII(good0)
1889 .AppendASCII("1.0.0.0"); 1889 .AppendASCII("1.0.0.0");
1890 1890
1891 ScopedTempDir temp_dir; 1891 base::ScopedTempDir temp_dir;
1892 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 1892 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
1893 1893
1894 // Extension names containing punctuation, and the expected names for the 1894 // Extension names containing punctuation, and the expected names for the
1895 // packed extensions. 1895 // packed extensions.
1896 const FilePath punctuated_names[] = { 1896 const FilePath punctuated_names[] = {
1897 FilePath(FILE_PATH_LITERAL("this.extensions.name.has.periods")), 1897 FilePath(FILE_PATH_LITERAL("this.extensions.name.has.periods")),
1898 FilePath(FILE_PATH_LITERAL(".thisextensionsnamestartswithaperiod")), 1898 FilePath(FILE_PATH_LITERAL(".thisextensionsnamestartswithaperiod")),
1899 FilePath(FILE_PATH_LITERAL("thisextensionhasaslashinitsname/")). 1899 FilePath(FILE_PATH_LITERAL("thisextensionhasaslashinitsname/")).
1900 NormalizePathSeparators(), 1900 NormalizePathSeparators(),
1901 }; 1901 };
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1938 if (HasFatalFailure()) 1938 if (HasFatalFailure())
1939 return; 1939 return;
1940 1940
1941 InstallCRX(expected_crx_path, INSTALL_NEW); 1941 InstallCRX(expected_crx_path, INSTALL_NEW);
1942 } 1942 }
1943 } 1943 }
1944 1944
1945 TEST_F(ExtensionServiceTest, PackExtensionContainingKeyFails) { 1945 TEST_F(ExtensionServiceTest, PackExtensionContainingKeyFails) {
1946 InitializeEmptyExtensionService(); 1946 InitializeEmptyExtensionService();
1947 1947
1948 ScopedTempDir extension_temp_dir; 1948 base::ScopedTempDir extension_temp_dir;
1949 ASSERT_TRUE(extension_temp_dir.CreateUniqueTempDir()); 1949 ASSERT_TRUE(extension_temp_dir.CreateUniqueTempDir());
1950 FilePath input_directory = extension_temp_dir.path().AppendASCII("ext"); 1950 FilePath input_directory = extension_temp_dir.path().AppendASCII("ext");
1951 ASSERT_TRUE(file_util::CopyDirectory( 1951 ASSERT_TRUE(file_util::CopyDirectory(
1952 data_dir_ 1952 data_dir_
1953 .AppendASCII("good") 1953 .AppendASCII("good")
1954 .AppendASCII("Extensions") 1954 .AppendASCII("Extensions")
1955 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj") 1955 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj")
1956 .AppendASCII("1.0.0.0"), 1956 .AppendASCII("1.0.0.0"),
1957 input_directory, 1957 input_directory,
1958 /*recursive=*/true)); 1958 /*recursive=*/true));
1959 1959
1960 ScopedTempDir output_temp_dir; 1960 base::ScopedTempDir output_temp_dir;
1961 ASSERT_TRUE(output_temp_dir.CreateUniqueTempDir()); 1961 ASSERT_TRUE(output_temp_dir.CreateUniqueTempDir());
1962 FilePath output_directory = output_temp_dir.path(); 1962 FilePath output_directory = output_temp_dir.path();
1963 1963
1964 FilePath crx_path(output_directory.AppendASCII("ex1.crx")); 1964 FilePath crx_path(output_directory.AppendASCII("ex1.crx"));
1965 FilePath privkey_path(output_directory.AppendASCII("privkey.pem")); 1965 FilePath privkey_path(output_directory.AppendASCII("privkey.pem"));
1966 1966
1967 // Pack the extension once to get a private key. 1967 // Pack the extension once to get a private key.
1968 scoped_ptr<ExtensionCreator> creator(new ExtensionCreator()); 1968 scoped_ptr<ExtensionCreator> creator(new ExtensionCreator());
1969 ASSERT_TRUE(creator->Run(input_directory, crx_path, FilePath(), 1969 ASSERT_TRUE(creator->Run(input_directory, crx_path, FilePath(),
1970 privkey_path, ExtensionCreator::kNoRunFlags)) 1970 privkey_path, ExtensionCreator::kNoRunFlags))
(...skipping 24 matching lines...) Expand all
1995 InitializeEmptyExtensionService(); 1995 InitializeEmptyExtensionService();
1996 FilePath input_directory = data_dir_ 1996 FilePath input_directory = data_dir_
1997 .AppendASCII("good") 1997 .AppendASCII("good")
1998 .AppendASCII("Extensions") 1998 .AppendASCII("Extensions")
1999 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj") 1999 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj")
2000 .AppendASCII("1.0.0.0"); 2000 .AppendASCII("1.0.0.0");
2001 FilePath privkey_path(data_dir_.AppendASCII( 2001 FilePath privkey_path(data_dir_.AppendASCII(
2002 "openssl_privkey_asn1.pem")); 2002 "openssl_privkey_asn1.pem"));
2003 ASSERT_TRUE(file_util::PathExists(privkey_path)); 2003 ASSERT_TRUE(file_util::PathExists(privkey_path));
2004 2004
2005 ScopedTempDir temp_dir; 2005 base::ScopedTempDir temp_dir;
2006 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 2006 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
2007 FilePath output_directory = temp_dir.path(); 2007 FilePath output_directory = temp_dir.path();
2008 2008
2009 FilePath crx_path(output_directory.AppendASCII("ex1.crx")); 2009 FilePath crx_path(output_directory.AppendASCII("ex1.crx"));
2010 2010
2011 scoped_ptr<ExtensionCreator> creator(new ExtensionCreator()); 2011 scoped_ptr<ExtensionCreator> creator(new ExtensionCreator());
2012 ASSERT_TRUE(creator->Run(input_directory, crx_path, privkey_path, 2012 ASSERT_TRUE(creator->Run(input_directory, crx_path, privkey_path,
2013 FilePath(), ExtensionCreator::kOverwriteCRX)); 2013 FilePath(), ExtensionCreator::kOverwriteCRX));
2014 2014
2015 InstallCRX(crx_path, INSTALL_NEW); 2015 InstallCRX(crx_path, INSTALL_NEW);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
2067 const Extension* theme = *service_->extensions()->begin(); 2067 const Extension* theme = *service_->extensions()->begin();
2068 EXPECT_EQ("name", theme->name()); 2068 EXPECT_EQ("name", theme->name());
2069 EXPECT_EQ("description", theme->description()); 2069 EXPECT_EQ("description", theme->description());
2070 } 2070 }
2071 2071
2072 // Tests that we can change the ID of an unpacked extension by adding a key 2072 // Tests that we can change the ID of an unpacked extension by adding a key
2073 // to its manifest. 2073 // to its manifest.
2074 TEST_F(ExtensionServiceTest, UnpackedExtensionCanChangeID) { 2074 TEST_F(ExtensionServiceTest, UnpackedExtensionCanChangeID) {
2075 InitializeEmptyExtensionService(); 2075 InitializeEmptyExtensionService();
2076 2076
2077 ScopedTempDir temp; 2077 base::ScopedTempDir temp;
2078 ASSERT_TRUE(temp.CreateUniqueTempDir()); 2078 ASSERT_TRUE(temp.CreateUniqueTempDir());
2079 2079
2080 FilePath extension_path = temp.path(); 2080 FilePath extension_path = temp.path();
2081 FilePath manifest_path = extension_path.Append(Extension::kManifestFilename); 2081 FilePath manifest_path = extension_path.Append(Extension::kManifestFilename);
2082 FilePath manifest_no_key = data_dir_. 2082 FilePath manifest_no_key = data_dir_.
2083 AppendASCII("unpacked"). 2083 AppendASCII("unpacked").
2084 AppendASCII("manifest_no_key.json"); 2084 AppendASCII("manifest_no_key.json");
2085 2085
2086 FilePath manifest_with_key = data_dir_. 2086 FilePath manifest_with_key = data_dir_.
2087 AppendASCII("unpacked"). 2087 AppendASCII("unpacked").
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2119 AppendASCII("unpacked"). 2119 AppendASCII("unpacked").
2120 AppendASCII("symlinks_allowed"); 2120 AppendASCII("symlinks_allowed");
2121 2121
2122 // Paths to test data files. 2122 // Paths to test data files.
2123 FilePath source_manifest = source_data_dir.AppendASCII("manifest.json"); 2123 FilePath source_manifest = source_data_dir.AppendASCII("manifest.json");
2124 ASSERT_TRUE(file_util::PathExists(source_manifest)); 2124 ASSERT_TRUE(file_util::PathExists(source_manifest));
2125 FilePath source_icon = source_data_dir.AppendASCII("icon.png"); 2125 FilePath source_icon = source_data_dir.AppendASCII("icon.png");
2126 ASSERT_TRUE(file_util::PathExists(source_icon)); 2126 ASSERT_TRUE(file_util::PathExists(source_icon));
2127 2127
2128 // Set up the temporary extension directory. 2128 // Set up the temporary extension directory.
2129 ScopedTempDir temp; 2129 base::ScopedTempDir temp;
2130 ASSERT_TRUE(temp.CreateUniqueTempDir()); 2130 ASSERT_TRUE(temp.CreateUniqueTempDir());
2131 FilePath extension_path = temp.path(); 2131 FilePath extension_path = temp.path();
2132 FilePath manifest = extension_path.Append(Extension::kManifestFilename); 2132 FilePath manifest = extension_path.Append(Extension::kManifestFilename);
2133 FilePath icon_symlink = extension_path.AppendASCII("icon.png"); 2133 FilePath icon_symlink = extension_path.AppendASCII("icon.png");
2134 file_util::CopyFile(source_manifest, manifest); 2134 file_util::CopyFile(source_manifest, manifest);
2135 file_util::CreateSymbolicLink(source_icon, icon_symlink); 2135 file_util::CreateSymbolicLink(source_icon, icon_symlink);
2136 2136
2137 // Load extension. 2137 // Load extension.
2138 InitializeEmptyExtensionService(); 2138 InitializeEmptyExtensionService();
2139 extensions::UnpackedInstaller::Create(service_)->Load(extension_path); 2139 extensions::UnpackedInstaller::Create(service_)->Load(extension_path);
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after
2562 UpdateExtension(good_crx, path, ENABLED); 2562 UpdateExtension(good_crx, path, ENABLED);
2563 const Extension* good2 = service_->GetExtensionById(good_crx, false); 2563 const Extension* good2 = service_->GetExtensionById(good_crx, false);
2564 ASSERT_EQ("1.0.0.1", good2->version()->GetString()); 2564 ASSERT_EQ("1.0.0.1", good2->version()->GetString());
2565 EXPECT_EQ(good2->location(), Extension::EXTERNAL_PREF); 2565 EXPECT_EQ(good2->location(), Extension::EXTERNAL_PREF);
2566 } 2566 }
2567 2567
2568 // Makes sure that LOAD extension types can downgrade. 2568 // Makes sure that LOAD extension types can downgrade.
2569 TEST_F(ExtensionServiceTest, LoadExtensionsCanDowngrade) { 2569 TEST_F(ExtensionServiceTest, LoadExtensionsCanDowngrade) {
2570 InitializeEmptyExtensionService(); 2570 InitializeEmptyExtensionService();
2571 2571
2572 ScopedTempDir temp; 2572 base::ScopedTempDir temp;
2573 ASSERT_TRUE(temp.CreateUniqueTempDir()); 2573 ASSERT_TRUE(temp.CreateUniqueTempDir());
2574 2574
2575 // We'll write the extension manifest dynamically to a temporary path 2575 // We'll write the extension manifest dynamically to a temporary path
2576 // to make it easier to change the version number. 2576 // to make it easier to change the version number.
2577 FilePath extension_path = temp.path(); 2577 FilePath extension_path = temp.path();
2578 FilePath manifest_path = extension_path.Append(Extension::kManifestFilename); 2578 FilePath manifest_path = extension_path.Append(Extension::kManifestFilename);
2579 ASSERT_FALSE(file_util::PathExists(manifest_path)); 2579 ASSERT_FALSE(file_util::PathExists(manifest_path));
2580 2580
2581 // Start with version 2.0. 2581 // Start with version 2.0.
2582 DictionaryValue manifest; 2582 DictionaryValue manifest;
(...skipping 3235 matching lines...) Expand 10 before | Expand all | Expand 10 after
5818 EXPECT_FALSE(extensions::HasExternalInstallError(service_)); 5818 EXPECT_FALSE(extensions::HasExternalInstallError(service_));
5819 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); 5819 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx));
5820 EXPECT_TRUE(service_->IsExtensionEnabled(page_action)); 5820 EXPECT_TRUE(service_->IsExtensionEnabled(page_action));
5821 5821
5822 ExtensionPrefs* prefs = service_->extension_prefs(); 5822 ExtensionPrefs* prefs = service_->extension_prefs();
5823 EXPECT_NE(0, prefs->GetDisableReasons(good_crx) & 5823 EXPECT_NE(0, prefs->GetDisableReasons(good_crx) &
5824 Extension::DISABLE_SIDELOAD_WIPEOUT); 5824 Extension::DISABLE_SIDELOAD_WIPEOUT);
5825 EXPECT_EQ(0, prefs->GetDisableReasons(page_action) & 5825 EXPECT_EQ(0, prefs->GetDisableReasons(page_action) &
5826 Extension::DISABLE_SIDELOAD_WIPEOUT); 5826 Extension::DISABLE_SIDELOAD_WIPEOUT);
5827 } 5827 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_service_unittest.h ('k') | chrome/browser/extensions/menu_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698