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

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

Issue 3052034: base: Rename EnvVarGetter to Environment. (Closed) Base URL: git://git.chromium.org/chromium.git
Patch Set: review Created 10 years, 4 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
OLDNEW
1 // Copyright (c) 2010 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
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 typename map_type::const_iterator it = settings.find(key); 71 typename map_type::const_iterator it = settings.find(key);
72 // In case there's a typo or the unittest becomes out of sync. 72 // In case there's a typo or the unittest becomes out of sync.
73 CHECK(it != settings.end()) << "key " << key << " not found"; 73 CHECK(it != settings.end()) << "key " << key << " not found";
74 value_type* value_ptr = it->second; 74 value_type* value_ptr = it->second;
75 return *value_ptr; 75 return *value_ptr;
76 } 76 }
77 77
78 map_type settings; 78 map_type settings;
79 }; 79 };
80 80
81 class MockEnvVarGetter : public base::EnvVarGetter { 81 class MockEnvironment : public base::Environment {
82 public: 82 public:
83 MockEnvVarGetter() { 83 MockEnvironment() {
84 #define ENTRY(x) table.settings[#x] = &values.x 84 #define ENTRY(x) table.settings[#x] = &values.x
85 ENTRY(DESKTOP_SESSION); 85 ENTRY(DESKTOP_SESSION);
86 ENTRY(HOME); 86 ENTRY(HOME);
87 ENTRY(KDEHOME); 87 ENTRY(KDEHOME);
88 ENTRY(KDE_SESSION_VERSION); 88 ENTRY(KDE_SESSION_VERSION);
89 ENTRY(auto_proxy); 89 ENTRY(auto_proxy);
90 ENTRY(all_proxy); 90 ENTRY(all_proxy);
91 ENTRY(http_proxy); 91 ENTRY(http_proxy);
92 ENTRY(https_proxy); 92 ENTRY(https_proxy);
93 ENTRY(ftp_proxy); 93 ENTRY(ftp_proxy);
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 GURL(), // pac_url 598 GURL(), // pac_url
599 ProxyRulesExpectation::Single( 599 ProxyRulesExpectation::Single(
600 "www.google.com:80", // single proxy 600 "www.google.com:80", // single proxy
601 "*.google.com"), // bypass rules 601 "*.google.com"), // bypass rules
602 }, 602 },
603 }; 603 };
604 604
605 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 605 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
606 SCOPED_TRACE(StringPrintf("Test[%" PRIuS "] %s", i, 606 SCOPED_TRACE(StringPrintf("Test[%" PRIuS "] %s", i,
607 tests[i].description.c_str())); 607 tests[i].description.c_str()));
608 MockEnvVarGetter* env_getter = new MockEnvVarGetter; 608 MockEnvironment* env = new MockEnvironment;
609 MockGConfSettingGetter* gconf_getter = new MockGConfSettingGetter; 609 MockGConfSettingGetter* gconf_getter = new MockGConfSettingGetter;
610 SynchConfigGetter sync_config_getter( 610 SynchConfigGetter sync_config_getter(
611 new ProxyConfigServiceLinux(env_getter, gconf_getter)); 611 new ProxyConfigServiceLinux(env, gconf_getter));
612 ProxyConfig config; 612 ProxyConfig config;
613 gconf_getter->values = tests[i].values; 613 gconf_getter->values = tests[i].values;
614 sync_config_getter.SetupAndInitialFetch(); 614 sync_config_getter.SetupAndInitialFetch();
615 sync_config_getter.SyncGetLatestProxyConfig(&config); 615 sync_config_getter.SyncGetLatestProxyConfig(&config);
616 616
617 EXPECT_EQ(tests[i].auto_detect, config.auto_detect()); 617 EXPECT_EQ(tests[i].auto_detect, config.auto_detect());
618 EXPECT_EQ(tests[i].pac_url, config.pac_url()); 618 EXPECT_EQ(tests[i].pac_url, config.pac_url());
619 EXPECT_TRUE(tests[i].proxy_rules.Matches(config.proxy_rules())); 619 EXPECT_TRUE(tests[i].proxy_rules.Matches(config.proxy_rules()));
620 } 620 }
621 } 621 }
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
888 GURL(), // pac_url 888 GURL(), // pac_url
889 ProxyRulesExpectation::Single( 889 ProxyRulesExpectation::Single(
890 "www.google.com:80", 890 "www.google.com:80",
891 "*.google.com,*foo.com:99,1.2.3.4:22,127.0.0.1/8"), 891 "*.google.com,*foo.com:99,1.2.3.4:22,127.0.0.1/8"),
892 }, 892 },
893 }; 893 };
894 894
895 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 895 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
896 SCOPED_TRACE(StringPrintf("Test[%" PRIuS "] %s", i, 896 SCOPED_TRACE(StringPrintf("Test[%" PRIuS "] %s", i,
897 tests[i].description.c_str())); 897 tests[i].description.c_str()));
898 MockEnvVarGetter* env_getter = new MockEnvVarGetter; 898 MockEnvironment* env = new MockEnvironment;
899 MockGConfSettingGetter* gconf_getter = new MockGConfSettingGetter; 899 MockGConfSettingGetter* gconf_getter = new MockGConfSettingGetter;
900 SynchConfigGetter sync_config_getter( 900 SynchConfigGetter sync_config_getter(
901 new ProxyConfigServiceLinux(env_getter, gconf_getter)); 901 new ProxyConfigServiceLinux(env, gconf_getter));
902 ProxyConfig config; 902 ProxyConfig config;
903 env_getter->values = tests[i].values; 903 env->values = tests[i].values;
904 sync_config_getter.SetupAndInitialFetch(); 904 sync_config_getter.SetupAndInitialFetch();
905 sync_config_getter.SyncGetLatestProxyConfig(&config); 905 sync_config_getter.SyncGetLatestProxyConfig(&config);
906 906
907 EXPECT_EQ(tests[i].auto_detect, config.auto_detect()); 907 EXPECT_EQ(tests[i].auto_detect, config.auto_detect());
908 EXPECT_EQ(tests[i].pac_url, config.pac_url()); 908 EXPECT_EQ(tests[i].pac_url, config.pac_url());
909 EXPECT_TRUE(tests[i].proxy_rules.Matches(config.proxy_rules())); 909 EXPECT_TRUE(tests[i].proxy_rules.Matches(config.proxy_rules()));
910 } 910 }
911 } 911 }
912 912
913 TEST_F(ProxyConfigServiceLinuxTest, GconfNotification) { 913 TEST_F(ProxyConfigServiceLinuxTest, GconfNotification) {
914 MockEnvVarGetter* env_getter = new MockEnvVarGetter; 914 MockEnvironment* env = new MockEnvironment;
915 MockGConfSettingGetter* gconf_getter = new MockGConfSettingGetter; 915 MockGConfSettingGetter* gconf_getter = new MockGConfSettingGetter;
916 ProxyConfigServiceLinux* service = 916 ProxyConfigServiceLinux* service =
917 new ProxyConfigServiceLinux(env_getter, gconf_getter); 917 new ProxyConfigServiceLinux(env, gconf_getter);
918 SynchConfigGetter sync_config_getter(service); 918 SynchConfigGetter sync_config_getter(service);
919 ProxyConfig config; 919 ProxyConfig config;
920 920
921 // Start with no proxy. 921 // Start with no proxy.
922 gconf_getter->values.mode = "none"; 922 gconf_getter->values.mode = "none";
923 sync_config_getter.SetupAndInitialFetch(); 923 sync_config_getter.SetupAndInitialFetch();
924 sync_config_getter.SyncGetLatestProxyConfig(&config); 924 sync_config_getter.SyncGetLatestProxyConfig(&config);
925 EXPECT_FALSE(config.auto_detect()); 925 EXPECT_FALSE(config.auto_detect());
926 926
927 // Now set to auto-detect. 927 // Now set to auto-detect.
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
1285 "www.secure.com:80", // https 1285 "www.secure.com:80", // https
1286 "ftp.foo.com:80", // ftp 1286 "ftp.foo.com:80", // ftp
1287 "*.google.com,*.kde.org"), // bypass rules 1287 "*.google.com,*.kde.org"), // bypass rules
1288 }, 1288 },
1289 1289
1290 }; 1290 };
1291 1291
1292 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 1292 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
1293 SCOPED_TRACE(StringPrintf("Test[%" PRIuS "] %s", i, 1293 SCOPED_TRACE(StringPrintf("Test[%" PRIuS "] %s", i,
1294 tests[i].description.c_str())); 1294 tests[i].description.c_str()));
1295 MockEnvVarGetter* env_getter = new MockEnvVarGetter; 1295 MockEnvironment* env = new MockEnvironment;
1296 env_getter->values = tests[i].env_values; 1296 env->values = tests[i].env_values;
1297 // Force the KDE getter to be used and tell it where the test is. 1297 // Force the KDE getter to be used and tell it where the test is.
1298 env_getter->values.DESKTOP_SESSION = "kde4"; 1298 env->values.DESKTOP_SESSION = "kde4";
1299 env_getter->values.KDEHOME = kde_home_.value().c_str(); 1299 env->values.KDEHOME = kde_home_.value().c_str();
1300 SynchConfigGetter sync_config_getter( 1300 SynchConfigGetter sync_config_getter(
1301 new ProxyConfigServiceLinux(env_getter)); 1301 new ProxyConfigServiceLinux(env));
1302 ProxyConfig config; 1302 ProxyConfig config;
1303 // Overwrite the kioslaverc file. 1303 // Overwrite the kioslaverc file.
1304 file_util::WriteFile(kioslaverc_, tests[i].kioslaverc.c_str(), 1304 file_util::WriteFile(kioslaverc_, tests[i].kioslaverc.c_str(),
1305 tests[i].kioslaverc.length()); 1305 tests[i].kioslaverc.length());
1306 sync_config_getter.SetupAndInitialFetch(); 1306 sync_config_getter.SetupAndInitialFetch();
1307 sync_config_getter.SyncGetLatestProxyConfig(&config); 1307 sync_config_getter.SyncGetLatestProxyConfig(&config);
1308 1308
1309 EXPECT_EQ(tests[i].auto_detect, config.auto_detect()); 1309 EXPECT_EQ(tests[i].auto_detect, config.auto_detect());
1310 EXPECT_EQ(tests[i].pac_url, config.pac_url()); 1310 EXPECT_EQ(tests[i].pac_url, config.pac_url());
1311 EXPECT_TRUE(tests[i].proxy_rules.Matches(config.proxy_rules())); 1311 EXPECT_TRUE(tests[i].proxy_rules.Matches(config.proxy_rules()));
1312 } 1312 }
1313 } 1313 }
1314 1314
1315 TEST_F(ProxyConfigServiceLinuxTest, KDEHomePicker) { 1315 TEST_F(ProxyConfigServiceLinuxTest, KDEHomePicker) {
1316 // Auto detect proxy settings. 1316 // Auto detect proxy settings.
1317 std::string slaverc3 = "[Proxy Settings]\nProxyType=3\n"; 1317 std::string slaverc3 = "[Proxy Settings]\nProxyType=3\n";
1318 // Valid PAC URL. 1318 // Valid PAC URL.
1319 std::string slaverc4 = "[Proxy Settings]\nProxyType=2\n" 1319 std::string slaverc4 = "[Proxy Settings]\nProxyType=2\n"
1320 "Proxy Config Script=http://wpad/wpad.dat\n"; 1320 "Proxy Config Script=http://wpad/wpad.dat\n";
1321 GURL slaverc4_pac_url("http://wpad/wpad.dat"); 1321 GURL slaverc4_pac_url("http://wpad/wpad.dat");
1322 1322
1323 // Overwrite the .kde kioslaverc file. 1323 // Overwrite the .kde kioslaverc file.
1324 file_util::WriteFile(kioslaverc_, slaverc3.c_str(), slaverc3.length()); 1324 file_util::WriteFile(kioslaverc_, slaverc3.c_str(), slaverc3.length());
1325 1325
1326 // If .kde4 exists it will mess up the first test. It should not, as 1326 // If .kde4 exists it will mess up the first test. It should not, as
1327 // we created the directory for $HOME in the test setup. 1327 // we created the directory for $HOME in the test setup.
1328 CHECK(!file_util::DirectoryExists(kde4_home_)); 1328 CHECK(!file_util::DirectoryExists(kde4_home_));
1329 1329
1330 { SCOPED_TRACE("KDE4, no .kde4 directory, verify fallback"); 1330 { SCOPED_TRACE("KDE4, no .kde4 directory, verify fallback");
1331 MockEnvVarGetter* env_getter = new MockEnvVarGetter; 1331 MockEnvironment* env = new MockEnvironment;
1332 env_getter->values.DESKTOP_SESSION = "kde4"; 1332 env->values.DESKTOP_SESSION = "kde4";
1333 env_getter->values.HOME = user_home_.value().c_str(); 1333 env->values.HOME = user_home_.value().c_str();
1334 SynchConfigGetter sync_config_getter( 1334 SynchConfigGetter sync_config_getter(
1335 new ProxyConfigServiceLinux(env_getter)); 1335 new ProxyConfigServiceLinux(env));
1336 ProxyConfig config; 1336 ProxyConfig config;
1337 sync_config_getter.SetupAndInitialFetch(); 1337 sync_config_getter.SetupAndInitialFetch();
1338 sync_config_getter.SyncGetLatestProxyConfig(&config); 1338 sync_config_getter.SyncGetLatestProxyConfig(&config);
1339 EXPECT_TRUE(config.auto_detect()); 1339 EXPECT_TRUE(config.auto_detect());
1340 EXPECT_EQ(GURL(), config.pac_url()); 1340 EXPECT_EQ(GURL(), config.pac_url());
1341 } 1341 }
1342 1342
1343 // Now create .kde4 and put a kioslaverc in the config directory. 1343 // Now create .kde4 and put a kioslaverc in the config directory.
1344 // Note that its timestamp will be at least as new as the .kde one. 1344 // Note that its timestamp will be at least as new as the .kde one.
1345 file_util::CreateDirectory(kde4_config_); 1345 file_util::CreateDirectory(kde4_config_);
1346 file_util::WriteFile(kioslaverc4_, slaverc4.c_str(), slaverc4.length()); 1346 file_util::WriteFile(kioslaverc4_, slaverc4.c_str(), slaverc4.length());
1347 CHECK(file_util::PathExists(kioslaverc4_)); 1347 CHECK(file_util::PathExists(kioslaverc4_));
1348 1348
1349 { SCOPED_TRACE("KDE4, .kde4 directory present, use it"); 1349 { SCOPED_TRACE("KDE4, .kde4 directory present, use it");
1350 MockEnvVarGetter* env_getter = new MockEnvVarGetter; 1350 MockEnvironment* env = new MockEnvironment;
1351 env_getter->values.DESKTOP_SESSION = "kde4"; 1351 env->values.DESKTOP_SESSION = "kde4";
1352 env_getter->values.HOME = user_home_.value().c_str(); 1352 env->values.HOME = user_home_.value().c_str();
1353 SynchConfigGetter sync_config_getter( 1353 SynchConfigGetter sync_config_getter(
1354 new ProxyConfigServiceLinux(env_getter)); 1354 new ProxyConfigServiceLinux(env));
1355 ProxyConfig config; 1355 ProxyConfig config;
1356 sync_config_getter.SetupAndInitialFetch(); 1356 sync_config_getter.SetupAndInitialFetch();
1357 sync_config_getter.SyncGetLatestProxyConfig(&config); 1357 sync_config_getter.SyncGetLatestProxyConfig(&config);
1358 EXPECT_FALSE(config.auto_detect()); 1358 EXPECT_FALSE(config.auto_detect());
1359 EXPECT_EQ(slaverc4_pac_url, config.pac_url()); 1359 EXPECT_EQ(slaverc4_pac_url, config.pac_url());
1360 } 1360 }
1361 1361
1362 { SCOPED_TRACE("KDE3, .kde4 directory present, ignore it"); 1362 { SCOPED_TRACE("KDE3, .kde4 directory present, ignore it");
1363 MockEnvVarGetter* env_getter = new MockEnvVarGetter; 1363 MockEnvironment* env = new MockEnvironment;
1364 env_getter->values.DESKTOP_SESSION = "kde"; 1364 env->values.DESKTOP_SESSION = "kde";
1365 env_getter->values.HOME = user_home_.value().c_str(); 1365 env->values.HOME = user_home_.value().c_str();
1366 SynchConfigGetter sync_config_getter( 1366 SynchConfigGetter sync_config_getter(
1367 new ProxyConfigServiceLinux(env_getter)); 1367 new ProxyConfigServiceLinux(env));
1368 ProxyConfig config; 1368 ProxyConfig config;
1369 sync_config_getter.SetupAndInitialFetch(); 1369 sync_config_getter.SetupAndInitialFetch();
1370 sync_config_getter.SyncGetLatestProxyConfig(&config); 1370 sync_config_getter.SyncGetLatestProxyConfig(&config);
1371 EXPECT_TRUE(config.auto_detect()); 1371 EXPECT_TRUE(config.auto_detect());
1372 EXPECT_EQ(GURL(), config.pac_url()); 1372 EXPECT_EQ(GURL(), config.pac_url());
1373 } 1373 }
1374 1374
1375 { SCOPED_TRACE("KDE4, .kde4 directory present, KDEHOME set to .kde"); 1375 { SCOPED_TRACE("KDE4, .kde4 directory present, KDEHOME set to .kde");
1376 MockEnvVarGetter* env_getter = new MockEnvVarGetter; 1376 MockEnvironment* env = new MockEnvironment;
1377 env_getter->values.DESKTOP_SESSION = "kde4"; 1377 env->values.DESKTOP_SESSION = "kde4";
1378 env_getter->values.HOME = user_home_.value().c_str(); 1378 env->values.HOME = user_home_.value().c_str();
1379 env_getter->values.KDEHOME = kde_home_.value().c_str(); 1379 env->values.KDEHOME = kde_home_.value().c_str();
1380 SynchConfigGetter sync_config_getter( 1380 SynchConfigGetter sync_config_getter(
1381 new ProxyConfigServiceLinux(env_getter)); 1381 new ProxyConfigServiceLinux(env));
1382 ProxyConfig config; 1382 ProxyConfig config;
1383 sync_config_getter.SetupAndInitialFetch(); 1383 sync_config_getter.SetupAndInitialFetch();
1384 sync_config_getter.SyncGetLatestProxyConfig(&config); 1384 sync_config_getter.SyncGetLatestProxyConfig(&config);
1385 EXPECT_TRUE(config.auto_detect()); 1385 EXPECT_TRUE(config.auto_detect());
1386 EXPECT_EQ(GURL(), config.pac_url()); 1386 EXPECT_EQ(GURL(), config.pac_url());
1387 } 1387 }
1388 1388
1389 // Finally, make the .kde4 config directory older than the .kde directory 1389 // Finally, make the .kde4 config directory older than the .kde directory
1390 // and make sure we then use .kde instead of .kde4 since it's newer. 1390 // and make sure we then use .kde instead of .kde4 since it's newer.
1391 file_util::SetLastModifiedTime(kde4_config_, base::Time()); 1391 file_util::SetLastModifiedTime(kde4_config_, base::Time());
1392 1392
1393 { SCOPED_TRACE("KDE4, very old .kde4 directory present, use .kde"); 1393 { SCOPED_TRACE("KDE4, very old .kde4 directory present, use .kde");
1394 MockEnvVarGetter* env_getter = new MockEnvVarGetter; 1394 MockEnvironment* env = new MockEnvironment;
1395 env_getter->values.DESKTOP_SESSION = "kde4"; 1395 env->values.DESKTOP_SESSION = "kde4";
1396 env_getter->values.HOME = user_home_.value().c_str(); 1396 env->values.HOME = user_home_.value().c_str();
1397 SynchConfigGetter sync_config_getter( 1397 SynchConfigGetter sync_config_getter(
1398 new ProxyConfigServiceLinux(env_getter)); 1398 new ProxyConfigServiceLinux(env));
1399 ProxyConfig config; 1399 ProxyConfig config;
1400 sync_config_getter.SetupAndInitialFetch(); 1400 sync_config_getter.SetupAndInitialFetch();
1401 sync_config_getter.SyncGetLatestProxyConfig(&config); 1401 sync_config_getter.SyncGetLatestProxyConfig(&config);
1402 EXPECT_TRUE(config.auto_detect()); 1402 EXPECT_TRUE(config.auto_detect());
1403 EXPECT_EQ(GURL(), config.pac_url()); 1403 EXPECT_EQ(GURL(), config.pac_url());
1404 } 1404 }
1405 } 1405 }
1406 1406
1407 } // namespace net 1407 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698