| Index: chrome/browser/extensions/extension_proxy_apitest.cc
|
| diff --git a/chrome/browser/extensions/extension_proxy_apitest.cc b/chrome/browser/extensions/extension_proxy_apitest.cc
|
| index 4d2325f4e4bc5ec58cb3d28006aa63a57480c083..024595ff915aa438f6c0ddd11dd173f4050a7e3c 100644
|
| --- a/chrome/browser/extensions/extension_proxy_apitest.cc
|
| +++ b/chrome/browser/extensions/extension_proxy_apitest.cc
|
| @@ -4,48 +4,56 @@
|
|
|
| #include "chrome/browser/extensions/extension_apitest.h"
|
| #include "chrome/browser/prefs/pref_service.h"
|
| -#include "chrome/browser/prefs/proxy_prefs.h"
|
| +#include "chrome/browser/prefs/proxy_config_dictionary.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/common/chrome_switches.h"
|
| #include "chrome/common/extensions/extension.h"
|
| #include "chrome/common/pref_names.h"
|
|
|
| -class ProxySettingsApiTest : public ExtensionApiTest {
|
| - protected:
|
| - void AssertSettings(int expected_mode,
|
| - const char* expected_server,
|
| - const char* expected_pac_url,
|
| - PrefService* pref_service) {
|
| - AssertExtensionControlled(prefs::kProxyMode, pref_service);
|
| - int mode = pref_service->GetInteger(prefs::kProxyMode);
|
| - EXPECT_EQ(expected_mode, mode);
|
| +namespace {
|
|
|
| - AssertExtensionControlled(prefs::kProxyPacUrl, pref_service);
|
| - EXPECT_EQ(expected_pac_url, pref_service->GetString(prefs::kProxyPacUrl));
|
| +const char NO_SERVER[] = "";
|
| +const char NO_PAC[] = "";
|
|
|
| - AssertExtensionControlled(prefs::kProxyServer, pref_service);
|
| - EXPECT_EQ(expected_server, pref_service->GetString(prefs::kProxyServer));
|
| - }
|
| +} // namespace
|
|
|
| - void AssertNoSettings(PrefService* pref_service) {
|
| - AssertNotExtensionControlled(prefs::kProxyServer, pref_service);
|
| - AssertNotExtensionControlled(prefs::kProxyMode, pref_service);
|
| - AssertNotExtensionControlled(prefs::kProxyPacUrl, pref_service);
|
| - }
|
| - private:
|
| - void AssertExtensionControlled(const char* pref_key,
|
| - PrefService* pref_service) {
|
| +class ProxySettingsApiTest : public ExtensionApiTest {
|
| + protected:
|
| + void ValidateSettings(int expected_mode,
|
| + const std::string& expected_server,
|
| + const std::string& expected_pac_url,
|
| + PrefService* pref_service) {
|
| const PrefService::Preference* pref =
|
| - pref_service->FindPreference(pref_key);
|
| + pref_service->FindPreference(prefs::kProxy);
|
| ASSERT_TRUE(pref != NULL);
|
| EXPECT_TRUE(pref->IsExtensionControlled());
|
| +
|
| + ProxyConfigDictionary dict(pref_service->GetDictionary(prefs::kProxy));
|
| +
|
| + ProxyPrefs::ProxyMode mode;
|
| + ASSERT_TRUE(dict.GetMode(&mode));
|
| + EXPECT_EQ(expected_mode, mode);
|
| +
|
| + std::string value;
|
| + if (!expected_pac_url.empty()) {
|
| + ASSERT_TRUE(dict.GetPacUrl(&value));
|
| + EXPECT_EQ(expected_pac_url, value);
|
| + } else {
|
| + EXPECT_FALSE(dict.GetPacUrl(&value));
|
| + }
|
| +
|
| + if (!expected_server.empty()) {
|
| + ASSERT_TRUE(dict.GetProxyServer(&value));
|
| + EXPECT_EQ(expected_server, value);
|
| + } else {
|
| + EXPECT_FALSE(dict.GetProxyServer(&value));
|
| + }
|
| }
|
|
|
| - void AssertNotExtensionControlled(const char* pref_key,
|
| - PrefService* pref_service) {
|
| + void ExpectNoSettings(PrefService* pref_service) {
|
| const PrefService::Preference* pref =
|
| - pref_service->FindPreference(pref_key);
|
| + pref_service->FindPreference(prefs::kProxy);
|
| ASSERT_TRUE(pref != NULL);
|
| EXPECT_FALSE(pref->IsExtensionControlled());
|
| }
|
| @@ -68,7 +76,7 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyDirectSettings) {
|
| ASSERT_TRUE(extension);
|
|
|
| PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - AssertSettings(ProxyPrefs::MODE_DIRECT, kNoServer, kNoPac, pref_service);
|
| + ValidateSettings(ProxyPrefs::MODE_DIRECT, kNoServer, kNoPac, pref_service);
|
| }
|
|
|
| // Tests auto-detect settings.
|
| @@ -81,7 +89,8 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyAutoSettings) {
|
| ASSERT_TRUE(extension);
|
|
|
| PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - AssertSettings(ProxyPrefs::MODE_AUTO_DETECT, kNoServer, kNoPac, pref_service);
|
| + ValidateSettings(ProxyPrefs::MODE_AUTO_DETECT, kNoServer, kNoPac,
|
| + pref_service);
|
| }
|
|
|
| // Tests PAC proxy settings.
|
| @@ -94,8 +103,8 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyPacScript) {
|
| ASSERT_TRUE(extension);
|
|
|
| PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - AssertSettings(ProxyPrefs::MODE_PAC_SCRIPT, kNoServer,
|
| - "http://wpad/windows.pac", pref_service);
|
| + ValidateSettings(ProxyPrefs::MODE_PAC_SCRIPT, kNoServer,
|
| + "http://wpad/windows.pac", pref_service);
|
| }
|
|
|
| // Tests setting a single proxy to cover all schemes.
|
| @@ -108,13 +117,13 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyFixedSingle) {
|
| ASSERT_TRUE(extension);
|
|
|
| PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - AssertSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| - "http=http://127.0.0.1:100;"
|
| - "https=http://127.0.0.1:100;"
|
| - "ftp=http://127.0.0.1:100;"
|
| - "socks=http://9.9.9.9",
|
| - kNoPac,
|
| - pref_service);
|
| + ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| + "http=http://127.0.0.1:100;"
|
| + "https=http://127.0.0.1:100;"
|
| + "ftp=http://127.0.0.1:100;"
|
| + "socks=http://9.9.9.9",
|
| + kNoPac,
|
| + pref_service);
|
| }
|
|
|
| // Tests setting to use the system's proxy settings.
|
| @@ -127,7 +136,7 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxySystem) {
|
| ASSERT_TRUE(extension);
|
|
|
| PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - AssertSettings(ProxyPrefs::MODE_SYSTEM, kNoServer, kNoPac, pref_service);
|
| + ValidateSettings(ProxyPrefs::MODE_SYSTEM, kNoServer, kNoPac, pref_service);
|
| }
|
|
|
| // Tests setting separate proxies for each scheme.
|
| @@ -140,23 +149,23 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyFixedIndividual) {
|
| ASSERT_TRUE(extension);
|
|
|
| PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - AssertSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| - "http=http://1.1.1.1;"
|
| - "https=socks://2.2.2.2;"
|
| - "ftp=http://3.3.3.3:9000;"
|
| - "socks=socks4://4.4.4.4:9090",
|
| - kNoPac,
|
| - pref_service);
|
| + ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| + "http=http://1.1.1.1;"
|
| + "https=socks://2.2.2.2;"
|
| + "ftp=http://3.3.3.3:9000;"
|
| + "socks=socks4://4.4.4.4:9090",
|
| + kNoPac,
|
| + pref_service);
|
|
|
| // Now check the incognito preferences.
|
| pref_service = browser()->profile()->GetOffTheRecordProfile()->GetPrefs();
|
| - AssertSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| - "http=http://1.1.1.1;"
|
| - "https=socks://2.2.2.2;"
|
| - "ftp=http://3.3.3.3:9000;"
|
| - "socks=socks4://4.4.4.4:9090",
|
| - kNoPac,
|
| - pref_service);
|
| + ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| + "http=http://1.1.1.1;"
|
| + "https=socks://2.2.2.2;"
|
| + "ftp=http://3.3.3.3:9000;"
|
| + "socks=socks4://4.4.4.4:9090",
|
| + kNoPac,
|
| + pref_service);
|
| }
|
|
|
| // Tests setting values only for incognito mode
|
| @@ -170,17 +179,17 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest,
|
| ASSERT_TRUE(extension);
|
|
|
| PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - AssertNoSettings(pref_service);
|
| + ExpectNoSettings(pref_service);
|
|
|
| // Now check the incognito preferences.
|
| pref_service = browser()->profile()->GetOffTheRecordProfile()->GetPrefs();
|
| - AssertSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| - "http=http://1.1.1.1;"
|
| - "https=socks://2.2.2.2;"
|
| - "ftp=http://3.3.3.3:9000;"
|
| - "socks=socks4://4.4.4.4:9090",
|
| - kNoPac,
|
| - pref_service);
|
| + ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| + "http=http://1.1.1.1;"
|
| + "https=socks://2.2.2.2;"
|
| + "ftp=http://3.3.3.3:9000;"
|
| + "socks=socks4://4.4.4.4:9090",
|
| + kNoPac,
|
| + pref_service);
|
| }
|
|
|
| // Tests setting values also for incognito mode
|
| @@ -194,23 +203,23 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest,
|
| ASSERT_TRUE(extension);
|
|
|
| PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - AssertSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| - "http=http://1.1.1.1;"
|
| - "https=socks://2.2.2.2;"
|
| - "ftp=http://3.3.3.3:9000;"
|
| - "socks=socks4://4.4.4.4:9090",
|
| - kNoPac,
|
| - pref_service);
|
| + ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| + "http=http://1.1.1.1;"
|
| + "https=socks://2.2.2.2;"
|
| + "ftp=http://3.3.3.3:9000;"
|
| + "socks=socks4://4.4.4.4:9090",
|
| + kNoPac,
|
| + pref_service);
|
|
|
| // Now check the incognito preferences.
|
| pref_service = browser()->profile()->GetOffTheRecordProfile()->GetPrefs();
|
| - AssertSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| - "http=http://5.5.5.5;"
|
| - "https=socks://6.6.6.6;"
|
| - "ftp=http://7.7.7.7:9000;"
|
| - "socks=socks4://8.8.8.8:9090",
|
| - kNoPac,
|
| - pref_service);
|
| + ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| + "http=http://5.5.5.5;"
|
| + "https=socks://6.6.6.6;"
|
| + "ftp=http://7.7.7.7:9000;"
|
| + "socks=socks4://8.8.8.8:9090",
|
| + kNoPac,
|
| + pref_service);
|
| }
|
|
|
| // Tests setting and unsetting values
|
| @@ -223,5 +232,5 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyFixedIndividualRemove) {
|
| ASSERT_TRUE(extension);
|
|
|
| PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - AssertNoSettings(pref_service);
|
| + ExpectNoSettings(pref_service);
|
| }
|
|
|