| Index: chrome/browser/extensions/api/proxy/proxy_apitest.cc
|
| diff --git a/chrome/browser/extensions/api/proxy/proxy_apitest.cc b/chrome/browser/extensions/api/proxy/proxy_apitest.cc
|
| index 18a62ddb111f1ec36fb5020bb3ea518be3121e6d..16365526409e31dc5285083f5bb538cd912f5e6d 100644
|
| --- a/chrome/browser/extensions/api/proxy/proxy_apitest.cc
|
| +++ b/chrome/browser/extensions/api/proxy/proxy_apitest.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "base/prefs/pref_service.h"
|
| #include "chrome/browser/extensions/extension_apitest.h"
|
| +#include "chrome/browser/extensions/extension_util.h"
|
| #include "chrome/browser/prefs/proxy_config_dictionary.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/ui/browser.h"
|
| @@ -68,6 +69,17 @@ class ProxySettingsApiTest : public ExtensionApiTest {
|
| ASSERT_TRUE(pref != NULL);
|
| EXPECT_FALSE(pref->IsExtensionControlled());
|
| }
|
| +
|
| + bool SetIsIncognitoEnabled(bool enabled) {
|
| + ResultCatcher catcher;
|
| + extensions::util::SetIsIncognitoEnabled(
|
| + GetSingleLoadedExtension()->id(), browser()->profile(), enabled);
|
| + if (!catcher.GetNextResult()) {
|
| + message_ = catcher.message();
|
| + return false;
|
| + }
|
| + return true;
|
| + }
|
| };
|
|
|
| // Tests direct connection settings.
|
| @@ -79,6 +91,12 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyDirectSettings) {
|
| PrefService* pref_service = browser()->profile()->GetPrefs();
|
| ValidateSettings(ProxyPrefs::MODE_DIRECT, kNoServer, kNoBypass, kNoPac,
|
| pref_service);
|
| +
|
| + // As the extension is executed with incognito permission, the settings
|
| + // should propagate to incognito mode.
|
| + pref_service = browser()->profile()->GetOffTheRecordProfile()->GetPrefs();
|
| + ValidateSettings(ProxyPrefs::MODE_DIRECT, kNoServer, kNoBypass, kNoPac,
|
| + pref_service);
|
| }
|
|
|
| // Tests auto-detect settings.
|
| @@ -101,6 +119,22 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyPacScript) {
|
| PrefService* pref_service = browser()->profile()->GetPrefs();
|
| ValidateSettings(ProxyPrefs::MODE_PAC_SCRIPT, kNoServer, kNoBypass,
|
| "http://wpad/windows.pac", pref_service);
|
| +
|
| + // As the extension is not executed with incognito permission, the settings
|
| + // should not propagate to incognito mode.
|
| + pref_service = browser()->profile()->GetOffTheRecordProfile()->GetPrefs();
|
| + ExpectNoSettings(pref_service);
|
| +
|
| + // Now we enable the extension in incognito mode and verify that settings
|
| + // are applied.
|
| + ASSERT_TRUE(SetIsIncognitoEnabled(true));
|
| + ValidateSettings(ProxyPrefs::MODE_PAC_SCRIPT, kNoServer, kNoBypass,
|
| + "http://wpad/windows.pac", pref_service);
|
| +
|
| + // Disabling incognito permission should revoke the settings for incognito
|
| + // mode.
|
| + ASSERT_TRUE(SetIsIncognitoEnabled(false));
|
| + ExpectNoSettings(pref_service);
|
| }
|
|
|
| // Tests PAC proxy settings.
|
|
|