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

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: Updated to ToT and addressed Matt's comments in base-CL Created 9 years, 11 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
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..bb43a3cc794ed7e6585224c33362641335801632 100644
--- a/chrome/browser/extensions/extension_proxy_apitest.cc
+++ b/chrome/browser/extensions/extension_proxy_apitest.cc
@@ -11,41 +11,49 @@
#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 ExpectSettings(int expected_mode,
danno 2011/02/04 10:32:13 s/Expect/Validate/g
battre 2011/02/07 14:13:47 Done.
+ 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());
+
+ ProxyPrefsDictionary 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);
+ ExpectSettings(ProxyPrefs::MODE_DIRECT, kNoServer, kNoPac, pref_service);
}
// Tests auto-detect settings.
@@ -81,7 +89,7 @@ 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);
+ ExpectSettings(ProxyPrefs::MODE_AUTO_DETECT, kNoServer, kNoPac, pref_service);
}
// Tests PAC proxy settings.
@@ -94,7 +102,7 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyPacScript) {
ASSERT_TRUE(extension);
PrefService* pref_service = browser()->profile()->GetPrefs();
- AssertSettings(ProxyPrefs::MODE_PAC_SCRIPT, kNoServer,
+ ExpectSettings(ProxyPrefs::MODE_PAC_SCRIPT, kNoServer,
"http://wpad/windows.pac", pref_service);
}
@@ -108,7 +116,7 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyFixedSingle) {
ASSERT_TRUE(extension);
PrefService* pref_service = browser()->profile()->GetPrefs();
- AssertSettings(ProxyPrefs::MODE_FIXED_SERVERS,
+ ExpectSettings(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;"
@@ -127,7 +135,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);
+ ExpectSettings(ProxyPrefs::MODE_SYSTEM, kNoServer, kNoPac, pref_service);
}
// Tests setting separate proxies for each scheme.
@@ -140,7 +148,7 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyFixedIndividual) {
ASSERT_TRUE(extension);
PrefService* pref_service = browser()->profile()->GetPrefs();
- AssertSettings(ProxyPrefs::MODE_FIXED_SERVERS,
+ ExpectSettings(ProxyPrefs::MODE_FIXED_SERVERS,
"http=http://1.1.1.1;"
"https=socks://2.2.2.2;"
"ftp=http://3.3.3.3:9000;"
@@ -150,7 +158,7 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyFixedIndividual) {
// Now check the incognito preferences.
pref_service = browser()->profile()->GetOffTheRecordProfile()->GetPrefs();
- AssertSettings(ProxyPrefs::MODE_FIXED_SERVERS,
+ ExpectSettings(ProxyPrefs::MODE_FIXED_SERVERS,
"http=http://1.1.1.1;"
"https=socks://2.2.2.2;"
"ftp=http://3.3.3.3:9000;"
@@ -170,11 +178,11 @@ 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,
+ ExpectSettings(ProxyPrefs::MODE_FIXED_SERVERS,
"http=http://1.1.1.1;"
"https=socks://2.2.2.2;"
"ftp=http://3.3.3.3:9000;"
@@ -194,7 +202,7 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest,
ASSERT_TRUE(extension);
PrefService* pref_service = browser()->profile()->GetPrefs();
- AssertSettings(ProxyPrefs::MODE_FIXED_SERVERS,
+ ExpectSettings(ProxyPrefs::MODE_FIXED_SERVERS,
"http=http://1.1.1.1;"
"https=socks://2.2.2.2;"
"ftp=http://3.3.3.3:9000;"
@@ -204,7 +212,7 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest,
// Now check the incognito preferences.
pref_service = browser()->profile()->GetOffTheRecordProfile()->GetPrefs();
- AssertSettings(ProxyPrefs::MODE_FIXED_SERVERS,
+ ExpectSettings(ProxyPrefs::MODE_FIXED_SERVERS,
"http=http://5.5.5.5;"
"https=socks://6.6.6.6;"
"ftp=http://7.7.7.7:9000;"
@@ -223,5 +231,5 @@ IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyFixedIndividualRemove) {
ASSERT_TRUE(extension);
PrefService* pref_service = browser()->profile()->GetPrefs();
- AssertNoSettings(pref_service);
+ ExpectNoSettings(pref_service);
}

Powered by Google App Engine
This is Rietveld 408576698