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 "net/proxy/proxy_config_service_linux.h" | 5 #include "net/proxy/proxy_config_service_linux.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 Reset(); | 100 Reset(); |
101 } | 101 } |
102 | 102 |
103 // Zeroes all environment values. | 103 // Zeroes all environment values. |
104 void Reset() { | 104 void Reset() { |
105 EnvVarValues zero_values = { 0 }; | 105 EnvVarValues zero_values = { 0 }; |
106 values = zero_values; | 106 values = zero_values; |
107 } | 107 } |
108 | 108 |
109 // Begin base::Environment implementation. | 109 // Begin base::Environment implementation. |
110 virtual bool GetVar(const char* variable_name, std::string* result) override { | 110 bool GetVar(const char* variable_name, std::string* result) override { |
111 std::map<std::string, const char**>::iterator it = | 111 std::map<std::string, const char**>::iterator it = |
112 table.find(variable_name); | 112 table.find(variable_name); |
113 if (it != table.end() && *(it->second) != NULL) { | 113 if (it != table.end() && *(it->second) != NULL) { |
114 // Note that the variable may be defined but empty. | 114 // Note that the variable may be defined but empty. |
115 *result = *(it->second); | 115 *result = *(it->second); |
116 return true; | 116 return true; |
117 } | 117 } |
118 return false; | 118 return false; |
119 } | 119 } |
120 | 120 |
121 virtual bool SetVar(const char* variable_name, const std::string& new_value) | 121 bool SetVar(const char* variable_name, |
122 override { | 122 const std::string& new_value) override { |
123 ADD_FAILURE(); | 123 ADD_FAILURE(); |
124 return false; | 124 return false; |
125 } | 125 } |
126 | 126 |
127 virtual bool UnSetVar(const char* variable_name) override { | 127 bool UnSetVar(const char* variable_name) override { |
128 ADD_FAILURE(); | 128 ADD_FAILURE(); |
129 return false; | 129 return false; |
130 } | 130 } |
131 // End base::Environment implementation. | 131 // End base::Environment implementation. |
132 | 132 |
133 // Intentionally public, for convenience when setting up a test. | 133 // Intentionally public, for convenience when setting up a test. |
134 EnvVarValues values; | 134 EnvVarValues values; |
135 | 135 |
136 private: | 136 private: |
137 std::map<std::string, const char**> table; | 137 std::map<std::string, const char**> table; |
(...skipping 30 matching lines...) Expand all Loading... |
168 &values.ignore_hosts; | 168 &values.ignore_hosts; |
169 Reset(); | 169 Reset(); |
170 } | 170 } |
171 | 171 |
172 // Zeros all environment values. | 172 // Zeros all environment values. |
173 void Reset() { | 173 void Reset() { |
174 GConfValues zero_values = { 0 }; | 174 GConfValues zero_values = { 0 }; |
175 values = zero_values; | 175 values = zero_values; |
176 } | 176 } |
177 | 177 |
178 virtual bool Init( | 178 bool Init(const scoped_refptr<base::SingleThreadTaskRunner>& glib_task_runner, |
179 const scoped_refptr<base::SingleThreadTaskRunner>& glib_task_runner, | 179 const scoped_refptr<base::SingleThreadTaskRunner>& file_task_runner) |
180 const scoped_refptr<base::SingleThreadTaskRunner>& file_task_runner) | |
181 override { | 180 override { |
182 task_runner_ = glib_task_runner; | 181 task_runner_ = glib_task_runner; |
183 return true; | 182 return true; |
184 } | 183 } |
185 | 184 |
186 virtual void ShutDown() override {} | 185 void ShutDown() override {} |
187 | 186 |
188 virtual bool SetUpNotifications(ProxyConfigServiceLinux::Delegate* delegate) | 187 bool SetUpNotifications( |
189 override { | 188 ProxyConfigServiceLinux::Delegate* delegate) override { |
190 return true; | 189 return true; |
191 } | 190 } |
192 | 191 |
193 virtual const scoped_refptr<base::SingleThreadTaskRunner>& | 192 const scoped_refptr<base::SingleThreadTaskRunner>& GetNotificationTaskRunner() |
194 GetNotificationTaskRunner() override { | 193 override { |
195 return task_runner_; | 194 return task_runner_; |
196 } | 195 } |
197 | 196 |
198 virtual ProxyConfigSource GetConfigSource() override { | 197 ProxyConfigSource GetConfigSource() override { |
199 return PROXY_CONFIG_SOURCE_TEST; | 198 return PROXY_CONFIG_SOURCE_TEST; |
200 } | 199 } |
201 | 200 |
202 virtual bool GetString(StringSetting key, std::string* result) override { | 201 bool GetString(StringSetting key, std::string* result) override { |
203 const char* value = strings_table.Get(key); | 202 const char* value = strings_table.Get(key); |
204 if (value) { | 203 if (value) { |
205 *result = value; | 204 *result = value; |
206 return true; | 205 return true; |
207 } | 206 } |
208 return false; | 207 return false; |
209 } | 208 } |
210 | 209 |
211 virtual bool GetBool(BoolSetting key, bool* result) override { | 210 bool GetBool(BoolSetting key, bool* result) override { |
212 BoolSettingValue value = bools_table.Get(key); | 211 BoolSettingValue value = bools_table.Get(key); |
213 switch (value) { | 212 switch (value) { |
214 case UNSET: | 213 case UNSET: |
215 return false; | 214 return false; |
216 case TRUE: | 215 case TRUE: |
217 *result = true; | 216 *result = true; |
218 break; | 217 break; |
219 case FALSE: | 218 case FALSE: |
220 *result = false; | 219 *result = false; |
221 } | 220 } |
222 return true; | 221 return true; |
223 } | 222 } |
224 | 223 |
225 virtual bool GetInt(IntSetting key, int* result) override { | 224 bool GetInt(IntSetting key, int* result) override { |
226 // We don't bother to distinguish unset keys from 0 values. | 225 // We don't bother to distinguish unset keys from 0 values. |
227 *result = ints_table.Get(key); | 226 *result = ints_table.Get(key); |
228 return true; | 227 return true; |
229 } | 228 } |
230 | 229 |
231 virtual bool GetStringList(StringListSetting key, | 230 bool GetStringList(StringListSetting key, |
232 std::vector<std::string>* result) override { | 231 std::vector<std::string>* result) override { |
233 *result = string_lists_table.Get(key); | 232 *result = string_lists_table.Get(key); |
234 // We don't bother to distinguish unset keys from empty lists. | 233 // We don't bother to distinguish unset keys from empty lists. |
235 return !result->empty(); | 234 return !result->empty(); |
236 } | 235 } |
237 | 236 |
238 virtual bool BypassListIsReversed() override { | 237 bool BypassListIsReversed() override { return false; } |
239 return false; | |
240 } | |
241 | 238 |
242 virtual bool MatchHostsUsingSuffixMatching() override { | 239 bool MatchHostsUsingSuffixMatching() override { return false; } |
243 return false; | |
244 } | |
245 | 240 |
246 // Intentionally public, for convenience when setting up a test. | 241 // Intentionally public, for convenience when setting up a test. |
247 GConfValues values; | 242 GConfValues values; |
248 | 243 |
249 private: | 244 private: |
250 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; | 245 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
251 SettingsTable<StringSetting, const char*> strings_table; | 246 SettingsTable<StringSetting, const char*> strings_table; |
252 SettingsTable<BoolSetting, BoolSettingValue> bools_table; | 247 SettingsTable<BoolSetting, BoolSettingValue> bools_table; |
253 SettingsTable<IntSetting, int> ints_table; | 248 SettingsTable<IntSetting, int> ints_table; |
254 SettingsTable<StringListSetting, | 249 SettingsTable<StringListSetting, |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
348 net::ProxyConfigService::ConfigAvailability get_latest_config_result_; | 343 net::ProxyConfigService::ConfigAvailability get_latest_config_result_; |
349 }; | 344 }; |
350 | 345 |
351 namespace net { | 346 namespace net { |
352 | 347 |
353 // This test fixture is only really needed for the KDEConfigParser test case, | 348 // This test fixture is only really needed for the KDEConfigParser test case, |
354 // but all the test cases with the same prefix ("ProxyConfigServiceLinuxTest") | 349 // but all the test cases with the same prefix ("ProxyConfigServiceLinuxTest") |
355 // must use the same test fixture class (also "ProxyConfigServiceLinuxTest"). | 350 // must use the same test fixture class (also "ProxyConfigServiceLinuxTest"). |
356 class ProxyConfigServiceLinuxTest : public PlatformTest { | 351 class ProxyConfigServiceLinuxTest : public PlatformTest { |
357 protected: | 352 protected: |
358 virtual void SetUp() override { | 353 void SetUp() override { |
359 PlatformTest::SetUp(); | 354 PlatformTest::SetUp(); |
360 // Set up a temporary KDE home directory. | 355 // Set up a temporary KDE home directory. |
361 std::string prefix("ProxyConfigServiceLinuxTest_user_home"); | 356 std::string prefix("ProxyConfigServiceLinuxTest_user_home"); |
362 base::CreateNewTempDirectory(prefix, &user_home_); | 357 base::CreateNewTempDirectory(prefix, &user_home_); |
363 kde_home_ = user_home_.Append(FILE_PATH_LITERAL(".kde")); | 358 kde_home_ = user_home_.Append(FILE_PATH_LITERAL(".kde")); |
364 base::FilePath path = kde_home_.Append(FILE_PATH_LITERAL("share")); | 359 base::FilePath path = kde_home_.Append(FILE_PATH_LITERAL("share")); |
365 path = path.Append(FILE_PATH_LITERAL("config")); | 360 path = path.Append(FILE_PATH_LITERAL("config")); |
366 base::CreateDirectory(path); | 361 base::CreateDirectory(path); |
367 kioslaverc_ = path.Append(FILE_PATH_LITERAL("kioslaverc")); | 362 kioslaverc_ = path.Append(FILE_PATH_LITERAL("kioslaverc")); |
368 // Set up paths but do not create the directory for .kde4. | 363 // Set up paths but do not create the directory for .kde4. |
369 kde4_home_ = user_home_.Append(FILE_PATH_LITERAL(".kde4")); | 364 kde4_home_ = user_home_.Append(FILE_PATH_LITERAL(".kde4")); |
370 path = kde4_home_.Append(FILE_PATH_LITERAL("share")); | 365 path = kde4_home_.Append(FILE_PATH_LITERAL("share")); |
371 kde4_config_ = path.Append(FILE_PATH_LITERAL("config")); | 366 kde4_config_ = path.Append(FILE_PATH_LITERAL("config")); |
372 kioslaverc4_ = kde4_config_.Append(FILE_PATH_LITERAL("kioslaverc")); | 367 kioslaverc4_ = kde4_config_.Append(FILE_PATH_LITERAL("kioslaverc")); |
373 } | 368 } |
374 | 369 |
375 virtual void TearDown() override { | 370 void TearDown() override { |
376 // Delete the temporary KDE home directory. | 371 // Delete the temporary KDE home directory. |
377 base::DeleteFile(user_home_, true); | 372 base::DeleteFile(user_home_, true); |
378 PlatformTest::TearDown(); | 373 PlatformTest::TearDown(); |
379 } | 374 } |
380 | 375 |
381 base::FilePath user_home_; | 376 base::FilePath user_home_; |
382 // KDE3 paths. | 377 // KDE3 paths. |
383 base::FilePath kde_home_; | 378 base::FilePath kde_home_; |
384 base::FilePath kioslaverc_; | 379 base::FilePath kioslaverc_; |
385 // KDE4 paths. | 380 // KDE4 paths. |
(...skipping 1225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1611 ProxyConfig config; | 1606 ProxyConfig config; |
1612 sync_config_getter.SetupAndInitialFetch(); | 1607 sync_config_getter.SetupAndInitialFetch(); |
1613 EXPECT_EQ(ProxyConfigService::CONFIG_VALID, | 1608 EXPECT_EQ(ProxyConfigService::CONFIG_VALID, |
1614 sync_config_getter.SyncGetLatestProxyConfig(&config)); | 1609 sync_config_getter.SyncGetLatestProxyConfig(&config)); |
1615 EXPECT_TRUE(config.auto_detect()); | 1610 EXPECT_TRUE(config.auto_detect()); |
1616 EXPECT_EQ(GURL(), config.pac_url()); | 1611 EXPECT_EQ(GURL(), config.pac_url()); |
1617 } | 1612 } |
1618 } | 1613 } |
1619 | 1614 |
1620 } // namespace net | 1615 } // namespace net |
OLD | NEW |