| 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 f24b7ef5689474a45935bb6fc2f88222e5fafa3f..5537f32b9dba4f127f2b12857b92914b35e92fca 100644
|
| --- a/chrome/browser/extensions/extension_proxy_apitest.cc
|
| +++ b/chrome/browser/extensions/extension_proxy_apitest.cc
|
| @@ -4,13 +4,46 @@
|
|
|
| #include "chrome/browser/extensions/extension_apitest.h"
|
| #include "chrome/browser/prefs/pref_service.h"
|
| +#include "chrome/browser/prefs/proxy_prefs.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"
|
|
|
| -// Tests auto-detect and PAC proxy settings.
|
| +// Tests direct connection settings.
|
| +IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ProxyDirectSettings) {
|
| + CommandLine::ForCurrentProcess()->AppendSwitch(
|
| + switches::kEnableExperimentalExtensionApis);
|
| +
|
| + ASSERT_TRUE(RunExtensionTest("proxy/direct")) << message_;
|
| + const Extension* extension = GetSingleLoadedExtension();
|
| + ASSERT_TRUE(extension);
|
| +
|
| + PrefService* pref_service = browser()->profile()->GetPrefs();
|
| +
|
| + const PrefService::Preference* pref =
|
| + pref_service->FindPreference(prefs::kProxyMode);
|
| + ASSERT_TRUE(pref != NULL);
|
| + ASSERT_TRUE(pref->IsExtensionControlled());
|
| + int mode = pref_service->GetInteger(prefs::kProxyMode);
|
| + EXPECT_EQ(ProxyPrefs::MODE_DIRECT, mode);
|
| +
|
| + // Other proxy prefs should also be set, so they're all controlled from one
|
| + // place.
|
| + pref = pref_service->FindPreference(prefs::kProxyPacUrl);
|
| + ASSERT_TRUE(pref != NULL);
|
| + EXPECT_TRUE(pref->IsExtensionControlled());
|
| + EXPECT_EQ("", pref_service->GetString(prefs::kProxyPacUrl));
|
| +
|
| + // No manual proxy prefs were set.
|
| + pref = pref_service->FindPreference(prefs::kProxyServer);
|
| + ASSERT_TRUE(pref != NULL);
|
| + EXPECT_TRUE(pref->IsExtensionControlled());
|
| + EXPECT_EQ("", pref_service->GetString(prefs::kProxyServer));
|
| +}
|
| +
|
| +// Tests auto-detect settings.
|
| IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ProxyAutoSettings) {
|
| CommandLine::ForCurrentProcess()->AppendSwitch(
|
| switches::kEnableExperimentalExtensionApis);
|
| @@ -22,11 +55,37 @@ IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ProxyAutoSettings) {
|
| PrefService* pref_service = browser()->profile()->GetPrefs();
|
|
|
| const PrefService::Preference* pref =
|
| - pref_service->FindPreference(prefs::kProxyAutoDetect);
|
| + pref_service->FindPreference(prefs::kProxyMode);
|
| + ASSERT_TRUE(pref != NULL);
|
| + ASSERT_TRUE(pref->IsExtensionControlled());
|
| + int mode = pref_service->GetInteger(prefs::kProxyMode);
|
| + EXPECT_EQ(ProxyPrefs::MODE_AUTO_DETECT, mode);
|
| +
|
| + // Other proxy prefs should also be set, so they're all controlled from one
|
| + // place.
|
| + pref = pref_service->FindPreference(prefs::kProxyPacUrl);
|
| + ASSERT_TRUE(pref != NULL);
|
| + EXPECT_TRUE(pref->IsExtensionControlled());
|
| + EXPECT_EQ("", pref_service->GetString(prefs::kProxyPacUrl));
|
| +}
|
| +
|
| +// Tests PAC proxy settings.
|
| +IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ProxyPacScript) {
|
| + CommandLine::ForCurrentProcess()->AppendSwitch(
|
| + switches::kEnableExperimentalExtensionApis);
|
| +
|
| + ASSERT_TRUE(RunExtensionTest("proxy/pac")) << message_;
|
| + const Extension* extension = GetSingleLoadedExtension();
|
| + ASSERT_TRUE(extension);
|
| +
|
| + PrefService* pref_service = browser()->profile()->GetPrefs();
|
| +
|
| + const PrefService::Preference* pref =
|
| + pref_service->FindPreference(prefs::kProxyMode);
|
| ASSERT_TRUE(pref != NULL);
|
| ASSERT_TRUE(pref->IsExtensionControlled());
|
| - bool auto_detect = pref_service->GetBoolean(prefs::kProxyAutoDetect);
|
| - EXPECT_TRUE(auto_detect);
|
| + int mode = pref_service->GetInteger(prefs::kProxyMode);
|
| + EXPECT_EQ(ProxyPrefs::MODE_PAC_SCRIPT, mode);
|
|
|
| pref = pref_service->FindPreference(prefs::kProxyPacUrl);
|
| ASSERT_TRUE(pref != NULL);
|
| @@ -37,11 +96,12 @@ IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ProxyAutoSettings) {
|
| // No manual proxy prefs were set.
|
| pref = pref_service->FindPreference(prefs::kProxyServer);
|
| ASSERT_TRUE(pref != NULL);
|
| - EXPECT_TRUE(pref->IsDefaultValue());
|
| + EXPECT_TRUE(pref->IsExtensionControlled());
|
| + EXPECT_EQ("", pref_service->GetString(prefs::kProxyServer));
|
| }
|
|
|
| // Tests setting a single proxy to cover all schemes.
|
| -IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ProxyManualSingle) {
|
| +IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ProxyFixedSingle) {
|
| CommandLine::ForCurrentProcess()->AppendSwitch(
|
| switches::kEnableExperimentalExtensionApis);
|
|
|
| @@ -64,19 +124,53 @@ IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ProxyManualSingle) {
|
|
|
| // Other proxy prefs should also be set, so they're all controlled from one
|
| // place.
|
| - pref = pref_service->FindPreference(prefs::kProxyAutoDetect);
|
| + pref = pref_service->FindPreference(prefs::kProxyMode);
|
| + ASSERT_TRUE(pref != NULL);
|
| + EXPECT_TRUE(pref->IsExtensionControlled());
|
| + EXPECT_EQ(ProxyPrefs::MODE_FIXED_SERVERS,
|
| + pref_service->GetInteger(prefs::kProxyMode));
|
| +
|
| + pref = pref_service->FindPreference(prefs::kProxyPacUrl);
|
| ASSERT_TRUE(pref != NULL);
|
| EXPECT_TRUE(pref->IsExtensionControlled());
|
| - EXPECT_FALSE(pref_service->GetBoolean(prefs::kProxyAutoDetect));
|
| + EXPECT_EQ("", pref_service->GetString(prefs::kProxyPacUrl));
|
| +}
|
| +
|
| +// Tests setting to use the system's proxy settings.
|
| +IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ProxySystem) {
|
| + CommandLine::ForCurrentProcess()->AppendSwitch(
|
| + switches::kEnableExperimentalExtensionApis);
|
| +
|
| + ASSERT_TRUE(RunExtensionTest("proxy/system")) << message_;
|
| + const Extension* extension = GetSingleLoadedExtension();
|
| + ASSERT_TRUE(extension);
|
| +
|
| + PrefService* pref_service = browser()->profile()->GetPrefs();
|
| +
|
| + // There should be no values superseding the extension-set proxy in this test.
|
| + const PrefService::Preference* pref =
|
| + pref_service->FindPreference(prefs::kProxyMode);
|
| + ASSERT_TRUE(pref != NULL);
|
| + ASSERT_TRUE(pref->IsExtensionControlled());
|
| + int proxy_server_mode = pref_service->GetInteger(prefs::kProxyMode);
|
| + EXPECT_EQ(ProxyPrefs::MODE_SYSTEM, proxy_server_mode);
|
|
|
| + // Other proxy prefs should also be set, so they're all controlled from one
|
| + // place.
|
| pref = pref_service->FindPreference(prefs::kProxyPacUrl);
|
| ASSERT_TRUE(pref != NULL);
|
| EXPECT_TRUE(pref->IsExtensionControlled());
|
| EXPECT_EQ("", pref_service->GetString(prefs::kProxyPacUrl));
|
| +
|
| + // No manual proxy prefs were set.
|
| + pref = pref_service->FindPreference(prefs::kProxyServer);
|
| + ASSERT_TRUE(pref != NULL);
|
| + EXPECT_TRUE(pref->IsExtensionControlled());
|
| + EXPECT_EQ("", pref_service->GetString(prefs::kProxyServer));
|
| }
|
|
|
| // Tests setting separate proxies for each scheme.
|
| -IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ProxyManualIndividual) {
|
| +IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ProxyFixedIndividual) {
|
| CommandLine::ForCurrentProcess()->AppendSwitch(
|
| switches::kEnableExperimentalExtensionApis);
|
|
|
| @@ -100,10 +194,11 @@ IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ProxyManualIndividual) {
|
|
|
| // Other proxy prefs should also be set, so they're all controlled from one
|
| // place.
|
| - pref = pref_service->FindPreference(prefs::kProxyAutoDetect);
|
| + pref = pref_service->FindPreference(prefs::kProxyMode);
|
| ASSERT_TRUE(pref != NULL);
|
| EXPECT_TRUE(pref->IsExtensionControlled());
|
| - EXPECT_FALSE(pref_service->GetBoolean(prefs::kProxyAutoDetect));
|
| + EXPECT_EQ(ProxyPrefs::MODE_FIXED_SERVERS,
|
| + pref_service->GetInteger(prefs::kProxyMode));
|
|
|
| pref = pref_service->FindPreference(prefs::kProxyPacUrl);
|
| ASSERT_TRUE(pref != NULL);
|
|
|