| Index: chrome/common/sandbox_mac_diraccess_unittest.mm | 
| diff --git a/chrome/common/sandbox_mac_diraccess_unittest.mm b/chrome/common/sandbox_mac_diraccess_unittest.mm | 
| index e3407c501ec112de502304ccd17b5ddb2395e719..fed540d3d68fc7cc0e73b483ef7db0d408b17d93 100644 | 
| --- a/chrome/common/sandbox_mac_diraccess_unittest.mm | 
| +++ b/chrome/common/sandbox_mac_diraccess_unittest.mm | 
| @@ -11,7 +11,6 @@ extern "C" { | 
|  | 
| #include "base/file_util.h" | 
| #include "base/file_path.h" | 
| -#include "base/hash_tables.h" | 
| #include "base/test/multiprocess_test.h" | 
| #include "base/sys_string_conversions.h" | 
| #include "base/utf_string_conversions.h" | 
| @@ -19,30 +18,17 @@ extern "C" { | 
| #include "testing/gtest/include/gtest/gtest.h" | 
| #include "testing/multiprocess_func_list.h" | 
|  | 
| -// Tests to exercise directory-access-related restrictions of Mac sandbox. | 
| - | 
| -namespace sandbox { | 
| - | 
| -typedef base::hash_map<std::string, SandboxSubstring> | 
| -    SandboxVariableSubstitions; | 
| - | 
| -bool QuotePlainString(const std::string& str_utf8, std::string* dst); | 
| -bool QuoteStringForRegex(const std::string& str_utf8, std::string* dst); | 
| -NSString* BuildAllowDirectoryAccessSandboxString( | 
| -    const FilePath& allowed_dir, | 
| -    SandboxVariableSubstitions* substitutions); | 
| -bool PostProcessSandboxProfile(NSString* in_sandbox_data, | 
| -                               NSArray* comments_to_remove, | 
| -                               SandboxVariableSubstitions& substitutions, | 
| -                               std::string *final_sandbox_profile_str); | 
| - | 
| -}  // namespace sandbox | 
| - | 
| namespace { | 
|  | 
| static const char* kSandboxAccessPathKey = "sandbox_dir"; | 
| static const char* kDeniedSuffix = "_denied"; | 
|  | 
| +}  // namespace | 
| + | 
| +// Tests need to be in the same namespace as the sandbox::Sandbox class to be | 
| +// useable with FRIEND_TEST() declaration. | 
| +namespace sandbox { | 
| + | 
| class MacDirAccessSandboxTest : public base::MultiProcessTest { | 
| public: | 
| bool CheckSandbox(const std::string& directory_to_try) { | 
| @@ -59,8 +45,6 @@ class MacDirAccessSandboxTest : public base::MultiProcessTest { | 
| }; | 
|  | 
| TEST_F(MacDirAccessSandboxTest, StringEscape) { | 
| -  using sandbox::QuotePlainString; | 
| - | 
| const struct string_escape_test_data { | 
| const char* to_escape; | 
| const char* escaped; | 
| @@ -76,14 +60,12 @@ TEST_F(MacDirAccessSandboxTest, StringEscape) { | 
| for (size_t i = 0; i < ARRAYSIZE_UNSAFE(string_escape_cases); ++i) { | 
| std::string out; | 
| std::string in(string_escape_cases[i].to_escape); | 
| -    EXPECT_TRUE(QuotePlainString(in, &out)); | 
| +    EXPECT_TRUE(Sandbox::QuotePlainString(in, &out)); | 
| EXPECT_EQ(string_escape_cases[i].escaped, out); | 
| } | 
| } | 
|  | 
| TEST_F(MacDirAccessSandboxTest, RegexEscape) { | 
| -  using sandbox::QuoteStringForRegex; | 
| - | 
| const std::string kSandboxEscapeSuffix("(/|$)"); | 
| const struct regex_test_data { | 
| const wchar_t *to_escape; | 
| @@ -101,24 +83,25 @@ TEST_F(MacDirAccessSandboxTest, RegexEscape) { | 
| std::string out; | 
| char fail_string[] = {31, 0}; | 
| char ok_string[] = {32, 0}; | 
| -    EXPECT_FALSE(QuoteStringForRegex(fail_string, &out)); | 
| -    EXPECT_TRUE(QuoteStringForRegex(ok_string, &out)); | 
| +    EXPECT_FALSE(Sandbox::QuoteStringForRegex(fail_string, &out)); | 
| +    EXPECT_TRUE(Sandbox::QuoteStringForRegex(ok_string, &out)); | 
| } | 
|  | 
| // Check that all characters whose values are larger than 126 [7E] are | 
| // rejected by the regex escaping code. | 
| { | 
| std::string out; | 
| -    EXPECT_TRUE(QuoteStringForRegex("}", &out));   // } == 0x7D == 125 | 
| -    EXPECT_FALSE(QuoteStringForRegex("~", &out));  // ~ == 0x7E == 126 | 
| -    EXPECT_FALSE(QuoteStringForRegex(WideToUTF8(L"^\u2135.\u2136$"), &out)); | 
| +    EXPECT_TRUE(Sandbox::QuoteStringForRegex("}", &out));   // } == 0x7D == 125 | 
| +    EXPECT_FALSE(Sandbox::QuoteStringForRegex("~", &out));  // ~ == 0x7E == 126 | 
| +    EXPECT_FALSE( | 
| +        Sandbox::QuoteStringForRegex(WideToUTF8(L"^\u2135.\u2136$"), &out)); | 
| } | 
|  | 
| { | 
| for (size_t i = 0; i < ARRAYSIZE_UNSAFE(regex_cases); ++i) { | 
| std::string out; | 
| std::string in = WideToUTF8(regex_cases[i].to_escape); | 
| -      EXPECT_TRUE(QuoteStringForRegex(in, &out)); | 
| +      EXPECT_TRUE(Sandbox::QuoteStringForRegex(in, &out)); | 
| std::string expected("^"); | 
| expected.append(regex_cases[i].escaped); | 
| expected.append(kSandboxEscapeSuffix); | 
| @@ -137,7 +120,7 @@ TEST_F(MacDirAccessSandboxTest, RegexEscape) { | 
| expected.append(kSandboxEscapeSuffix); | 
|  | 
| std::string out; | 
| -    EXPECT_TRUE(QuoteStringForRegex(in_utf8, &out)); | 
| +    EXPECT_TRUE(Sandbox::QuoteStringForRegex(in_utf8, &out)); | 
| EXPECT_EQ(expected, out); | 
|  | 
| } | 
| @@ -163,7 +146,7 @@ TEST_F(MacDirAccessSandboxTest, SandboxAccess) { | 
| // This step is important on OS X since the sandbox only understands "real" | 
| // paths and the paths CreateNewTempDirectory() returns are empirically in | 
| // /var which is a symlink to /private/var . | 
| -  sandbox::GetCanonicalSandboxPath(&tmp_dir); | 
| +  Sandbox::GetCanonicalSandboxPath(&tmp_dir); | 
| ScopedDirectory cleanup(&tmp_dir); | 
|  | 
| const char* sandbox_dir_cases[] = { | 
| @@ -205,9 +188,9 @@ MULTIPROCESS_TEST_MAIN(mac_sandbox_path_access) { | 
| ";ENABLE_DIRECTORY_ACCESS"; | 
|  | 
| std::string allowed_dir(sandbox_allowed_dir); | 
| -  sandbox::SandboxVariableSubstitions substitutions; | 
| +  Sandbox::SandboxVariableSubstitions substitutions; | 
| NSString* allow_dir_sandbox_code = | 
| -      sandbox::BuildAllowDirectoryAccessSandboxString( | 
| +      Sandbox::BuildAllowDirectoryAccessSandboxString( | 
| FilePath(sandbox_allowed_dir), | 
| &substitutions); | 
| sandbox_profile = [sandbox_profile | 
| @@ -215,15 +198,14 @@ MULTIPROCESS_TEST_MAIN(mac_sandbox_path_access) { | 
| withString:allow_dir_sandbox_code]; | 
|  | 
| std::string final_sandbox_profile_str; | 
| -  if (!PostProcessSandboxProfile(sandbox_profile, | 
| -                                 [NSArray array], | 
| -                                 substitutions, | 
| -                                 &final_sandbox_profile_str)) { | 
| +  if (!Sandbox::PostProcessSandboxProfile(sandbox_profile, | 
| +                                          [NSArray array], | 
| +                                          substitutions, | 
| +                                          &final_sandbox_profile_str)) { | 
| LOG(ERROR) << "Call to PostProcessSandboxProfile() failed"; | 
| return -1; | 
| } | 
|  | 
| - | 
| // Enable Sandbox. | 
| char* error_buff = NULL; | 
| int error = sandbox_init(final_sandbox_profile_str.c_str(), 0, &error_buff); | 
| @@ -319,4 +301,4 @@ MULTIPROCESS_TEST_MAIN(mac_sandbox_path_access) { | 
| return 0; | 
| } | 
|  | 
| -}  // namespace | 
| +}  // namespace sandbox | 
|  |