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

Unified Diff: chrome/browser/extensions/extension_proxy_apitest.cc

Issue 6240013: Make proxy settings one atomic dictionary in the PrefStores such that modifications are atomic. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/out/Debug
Patch Set: Fixed Lint comment Created 9 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/extensions/extension_proxy_api.cc ('k') | chrome/browser/net/pref_proxy_config_service.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
}
« no previous file with comments | « chrome/browser/extensions/extension_proxy_api.cc ('k') | chrome/browser/net/pref_proxy_config_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698