OLD | NEW |
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/test/base/test_launcher_utils.h" | 5 #include "chrome/test/base/test_launcher_utils.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/environment.h" | 10 #include "base/environment.h" |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 #endif | 65 #endif |
66 | 66 |
67 #if defined(OS_MACOSX) | 67 #if defined(OS_MACOSX) |
68 // Use mock keychain on mac to prevent blocking permissions dialogs. | 68 // Use mock keychain on mac to prevent blocking permissions dialogs. |
69 command_line->AppendSwitch(os_crypt::switches::kUseMockKeychain); | 69 command_line->AppendSwitch(os_crypt::switches::kUseMockKeychain); |
70 #endif | 70 #endif |
71 | 71 |
72 command_line->AppendSwitch(switches::kDisableComponentUpdate); | 72 command_line->AppendSwitch(switches::kDisableComponentUpdate); |
73 } | 73 } |
74 | 74 |
| 75 void RemoveCommandLineSwitch(const base::CommandLine& in_command_line, |
| 76 const std::string& switch_to_remove, |
| 77 base::CommandLine* out_command_line) { |
| 78 const base::CommandLine::SwitchMap& switch_map = |
| 79 in_command_line.GetSwitches(); |
| 80 for (base::CommandLine::SwitchMap::const_iterator i = switch_map.begin(); |
| 81 i != switch_map.end(); ++i) { |
| 82 const std::string& switch_name = i->first; |
| 83 if (switch_name == switch_to_remove) |
| 84 continue; |
| 85 |
| 86 out_command_line->AppendSwitchNative(switch_name, i->second); |
| 87 } |
| 88 } |
| 89 |
75 bool OverrideUserDataDir(const base::FilePath& user_data_dir) { | 90 bool OverrideUserDataDir(const base::FilePath& user_data_dir) { |
76 bool success = true; | 91 bool success = true; |
77 | 92 |
78 // PathService::Override() is the best way to change the user data directory. | 93 // PathService::Override() is the best way to change the user data directory. |
79 // This matches what is done in ChromeMain(). | 94 // This matches what is done in ChromeMain(). |
80 success = PathService::Override(chrome::DIR_USER_DATA, user_data_dir); | 95 success = PathService::Override(chrome::DIR_USER_DATA, user_data_dir); |
81 | 96 |
82 #if defined(OS_POSIX) && !defined(OS_MACOSX) | 97 #if defined(OS_POSIX) && !defined(OS_MACOSX) |
83 // Make sure the cache directory is inside our clear profile. Otherwise | 98 // Make sure the cache directory is inside our clear profile. Otherwise |
84 // the cache may contain data from earlier tests that could break the | 99 // the cache may contain data from earlier tests that could break the |
85 // current test. | 100 // current test. |
86 // | 101 // |
87 // Note: we use an environment variable here, because we have to pass the | 102 // Note: we use an environment variable here, because we have to pass the |
88 // value to the child process. This is the simplest way to do it. | 103 // value to the child process. This is the simplest way to do it. |
89 std::unique_ptr<base::Environment> env(base::Environment::Create()); | 104 std::unique_ptr<base::Environment> env(base::Environment::Create()); |
90 success = success && env->SetVar("XDG_CACHE_HOME", user_data_dir.value()); | 105 success = success && env->SetVar("XDG_CACHE_HOME", user_data_dir.value()); |
91 #endif | 106 #endif |
92 | 107 |
93 return success; | 108 return success; |
94 } | 109 } |
95 | 110 |
96 } // namespace test_launcher_utils | 111 } // namespace test_launcher_utils |
OLD | NEW |