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

Side by Side Diff: net/proxy/proxy_config_service_linux_unittest.cc

Issue 1606007: Move EnvironmentVariableGetter from base/linux_util.h to base/env_var.h. Labe... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix windows build for good this time? Created 10 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « net/proxy/proxy_config_service_linux.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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
11 #include "base/file_path.h" 11 #include "base/file_path.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 typename map_type::const_iterator it = settings.find(key); 70 typename map_type::const_iterator it = settings.find(key);
71 // In case there's a typo or the unittest becomes out of sync. 71 // In case there's a typo or the unittest becomes out of sync.
72 CHECK(it != settings.end()) << "key " << key << " not found"; 72 CHECK(it != settings.end()) << "key " << key << " not found";
73 value_type* value_ptr = it->second; 73 value_type* value_ptr = it->second;
74 return *value_ptr; 74 return *value_ptr;
75 } 75 }
76 76
77 map_type settings; 77 map_type settings;
78 }; 78 };
79 79
80 class MockEnvironmentVariableGetter : public base::EnvironmentVariableGetter { 80 class MockEnvVarGetter : public base::EnvVarGetter {
81 public: 81 public:
82 MockEnvironmentVariableGetter() { 82 MockEnvVarGetter() {
83 #define ENTRY(x) table.settings[#x] = &values.x 83 #define ENTRY(x) table.settings[#x] = &values.x
84 ENTRY(DESKTOP_SESSION); 84 ENTRY(DESKTOP_SESSION);
85 ENTRY(KDE_HOME); 85 ENTRY(KDE_HOME);
86 ENTRY(auto_proxy); 86 ENTRY(auto_proxy);
87 ENTRY(all_proxy); 87 ENTRY(all_proxy);
88 ENTRY(http_proxy); 88 ENTRY(http_proxy);
89 ENTRY(https_proxy); 89 ENTRY(https_proxy);
90 ENTRY(ftp_proxy); 90 ENTRY(ftp_proxy);
91 ENTRY(no_proxy); 91 ENTRY(no_proxy);
92 ENTRY(SOCKS_SERVER); 92 ENTRY(SOCKS_SERVER);
93 ENTRY(SOCKS_VERSION); 93 ENTRY(SOCKS_VERSION);
94 #undef ENTRY 94 #undef ENTRY
95 Reset(); 95 Reset();
96 } 96 }
97 97
98 // Zeros all environment values. 98 // Zeros all environment values.
99 void Reset() { 99 void Reset() {
100 EnvVarValues zero_values = { 0 }; 100 EnvVarValues zero_values = { 0 };
101 values = zero_values; 101 values = zero_values;
102 } 102 }
103 103
104 virtual bool Getenv(const char* variable_name, std::string* result) { 104 virtual bool GetEnv(const char* variable_name, std::string* result) {
105 const char* env_value = table.Get(variable_name); 105 const char* env_value = table.Get(variable_name);
106 if (env_value) { 106 if (env_value) {
107 // Note that the variable may be defined but empty. 107 // Note that the variable may be defined but empty.
108 *result = env_value; 108 *result = env_value;
109 return true; 109 return true;
110 } 110 }
111 return false; 111 return false;
112 } 112 }
113 113
114 // Intentionally public, for convenience when setting up a test. 114 // Intentionally public, for convenience when setting up a test.
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 GURL(), // pac_url 569 GURL(), // pac_url
570 ProxyRulesExpectation::Single( 570 ProxyRulesExpectation::Single(
571 "www.google.com:80", // single proxy 571 "www.google.com:80", // single proxy
572 "*.google.com"), // bypass rules 572 "*.google.com"), // bypass rules
573 }, 573 },
574 }; 574 };
575 575
576 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 576 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
577 SCOPED_TRACE(StringPrintf("Test[%" PRIuS "] %s", i, 577 SCOPED_TRACE(StringPrintf("Test[%" PRIuS "] %s", i,
578 tests[i].description.c_str())); 578 tests[i].description.c_str()));
579 MockEnvironmentVariableGetter* env_getter = 579 MockEnvVarGetter* env_getter = new MockEnvVarGetter;
580 new MockEnvironmentVariableGetter;
581 MockGConfSettingGetter* gconf_getter = new MockGConfSettingGetter; 580 MockGConfSettingGetter* gconf_getter = new MockGConfSettingGetter;
582 SynchConfigGetter sync_config_getter( 581 SynchConfigGetter sync_config_getter(
583 new ProxyConfigServiceLinux(env_getter, gconf_getter)); 582 new ProxyConfigServiceLinux(env_getter, gconf_getter));
584 ProxyConfig config; 583 ProxyConfig config;
585 gconf_getter->values = tests[i].values; 584 gconf_getter->values = tests[i].values;
586 sync_config_getter.SetupAndInitialFetch(); 585 sync_config_getter.SetupAndInitialFetch();
587 sync_config_getter.SyncGetProxyConfig(&config); 586 sync_config_getter.SyncGetProxyConfig(&config);
588 587
589 EXPECT_EQ(tests[i].auto_detect, config.auto_detect()); 588 EXPECT_EQ(tests[i].auto_detect, config.auto_detect());
590 EXPECT_EQ(tests[i].pac_url, config.pac_url()); 589 EXPECT_EQ(tests[i].pac_url, config.pac_url());
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
837 ProxyRulesExpectation::Single( 836 ProxyRulesExpectation::Single(
838 "www.google.com:80", 837 "www.google.com:80",
839 // TODO(eroman): 127.0.0.1/8 is unsupported, so it was dropped 838 // TODO(eroman): 127.0.0.1/8 is unsupported, so it was dropped
840 "*.google.com,*foo.com:99,1.2.3.4:22"), 839 "*.google.com,*foo.com:99,1.2.3.4:22"),
841 }, 840 },
842 }; 841 };
843 842
844 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 843 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
845 SCOPED_TRACE(StringPrintf("Test[%" PRIuS "] %s", i, 844 SCOPED_TRACE(StringPrintf("Test[%" PRIuS "] %s", i,
846 tests[i].description.c_str())); 845 tests[i].description.c_str()));
847 MockEnvironmentVariableGetter* env_getter = 846 MockEnvVarGetter* env_getter = new MockEnvVarGetter;
848 new MockEnvironmentVariableGetter;
849 MockGConfSettingGetter* gconf_getter = new MockGConfSettingGetter; 847 MockGConfSettingGetter* gconf_getter = new MockGConfSettingGetter;
850 SynchConfigGetter sync_config_getter( 848 SynchConfigGetter sync_config_getter(
851 new ProxyConfigServiceLinux(env_getter, gconf_getter)); 849 new ProxyConfigServiceLinux(env_getter, gconf_getter));
852 ProxyConfig config; 850 ProxyConfig config;
853 env_getter->values = tests[i].values; 851 env_getter->values = tests[i].values;
854 sync_config_getter.SetupAndInitialFetch(); 852 sync_config_getter.SetupAndInitialFetch();
855 sync_config_getter.SyncGetProxyConfig(&config); 853 sync_config_getter.SyncGetProxyConfig(&config);
856 854
857 EXPECT_EQ(tests[i].auto_detect, config.auto_detect()); 855 EXPECT_EQ(tests[i].auto_detect, config.auto_detect());
858 EXPECT_EQ(tests[i].pac_url, config.pac_url()); 856 EXPECT_EQ(tests[i].pac_url, config.pac_url());
859 EXPECT_TRUE(tests[i].proxy_rules.Matches(config.proxy_rules())); 857 EXPECT_TRUE(tests[i].proxy_rules.Matches(config.proxy_rules()));
860 } 858 }
861 } 859 }
862 860
863 TEST_F(ProxyConfigServiceLinuxTest, GconfNotification) { 861 TEST_F(ProxyConfigServiceLinuxTest, GconfNotification) {
864 MockEnvironmentVariableGetter* env_getter = 862 MockEnvVarGetter* env_getter = new MockEnvVarGetter;
865 new MockEnvironmentVariableGetter;
866 MockGConfSettingGetter* gconf_getter = new MockGConfSettingGetter; 863 MockGConfSettingGetter* gconf_getter = new MockGConfSettingGetter;
867 ProxyConfigServiceLinux* service = 864 ProxyConfigServiceLinux* service =
868 new ProxyConfigServiceLinux(env_getter, gconf_getter); 865 new ProxyConfigServiceLinux(env_getter, gconf_getter);
869 SynchConfigGetter sync_config_getter(service); 866 SynchConfigGetter sync_config_getter(service);
870 ProxyConfig config; 867 ProxyConfig config;
871 868
872 // Start with no proxy. 869 // Start with no proxy.
873 gconf_getter->values.mode = "none"; 870 gconf_getter->values.mode = "none";
874 sync_config_getter.SetupAndInitialFetch(); 871 sync_config_getter.SetupAndInitialFetch();
875 sync_config_getter.SyncGetProxyConfig(&config); 872 sync_config_getter.SyncGetProxyConfig(&config);
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
1159 "www.google.com:80", // http 1156 "www.google.com:80", // http
1160 "", // https 1157 "", // https
1161 "ftp.foo.com:80", // ftp 1158 "ftp.foo.com:80", // ftp
1162 ""), // bypass rules 1159 ""), // bypass rules
1163 }, 1160 },
1164 }; 1161 };
1165 1162
1166 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 1163 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
1167 SCOPED_TRACE(StringPrintf("Test[%" PRIuS "] %s", i, 1164 SCOPED_TRACE(StringPrintf("Test[%" PRIuS "] %s", i,
1168 tests[i].description.c_str())); 1165 tests[i].description.c_str()));
1169 MockEnvironmentVariableGetter* env_getter = 1166 MockEnvVarGetter* env_getter = new MockEnvVarGetter;
1170 new MockEnvironmentVariableGetter;
1171 // Force the KDE getter to be used and tell it where the test is. 1167 // Force the KDE getter to be used and tell it where the test is.
1172 env_getter->values.DESKTOP_SESSION = "kde4"; 1168 env_getter->values.DESKTOP_SESSION = "kde4";
1173 env_getter->values.KDE_HOME = kde_home_.value().c_str(); 1169 env_getter->values.KDE_HOME = kde_home_.value().c_str();
1174 SynchConfigGetter sync_config_getter( 1170 SynchConfigGetter sync_config_getter(
1175 new ProxyConfigServiceLinux(env_getter)); 1171 new ProxyConfigServiceLinux(env_getter));
1176 ProxyConfig config; 1172 ProxyConfig config;
1177 // Overwrite the kioslaverc file. 1173 // Overwrite the kioslaverc file.
1178 file_util::WriteFile(kioslaverc_, tests[i].kioslaverc.c_str(), 1174 file_util::WriteFile(kioslaverc_, tests[i].kioslaverc.c_str(),
1179 tests[i].kioslaverc.length()); 1175 tests[i].kioslaverc.length());
1180 sync_config_getter.SetupAndInitialFetch(); 1176 sync_config_getter.SetupAndInitialFetch();
1181 sync_config_getter.SyncGetProxyConfig(&config); 1177 sync_config_getter.SyncGetProxyConfig(&config);
1182 1178
1183 EXPECT_EQ(tests[i].auto_detect, config.auto_detect()); 1179 EXPECT_EQ(tests[i].auto_detect, config.auto_detect());
1184 EXPECT_EQ(tests[i].pac_url, config.pac_url()); 1180 EXPECT_EQ(tests[i].pac_url, config.pac_url());
1185 EXPECT_TRUE(tests[i].proxy_rules.Matches(config.proxy_rules())); 1181 EXPECT_TRUE(tests[i].proxy_rules.Matches(config.proxy_rules()));
1186 } 1182 }
1187 } 1183 }
1188 1184
1189 } // namespace net 1185 } // namespace net
OLDNEW
« no previous file with comments | « net/proxy/proxy_config_service_linux.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698