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

Unified Diff: chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings_unittest.cc

Issue 1148793008: Check for embedded PAC scripts when migrating proxy pref for DRP. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed histograms.xml changes Created 5 years, 6 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/net/spdyproxy/data_reduction_proxy_chrome_settings.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings_unittest.cc
diff --git a/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings_unittest.cc b/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings_unittest.cc
index a445898d469b0e1ce0e8f3dcdbe6cd321202d1c2..7bba517d380505bcc9b49de091f82185df379de9 100644
--- a/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings_unittest.cc
+++ b/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings_unittest.cc
@@ -65,8 +65,9 @@ TEST_F(DataReductionProxyChromeSettingsTest, MigrateBadlyFormedProxyPref) {
} test_cases[] = {
// The pref should not be cleared if mode is unset.
{nullptr, "http=compress.googlezip.net"},
- // The pref should not be cleared for modes other than "fixed_servers".
- {"pac_script", "http=compress.googlezip.net"},
+ // The pref should not be cleared for modes other than "fixed_servers" and
+ // "pac_script".
+ {"auto_detect", "http=compress.googlezip.net"},
// The pref should not be cleared when the server field is unset.
{"fixed_servers", nullptr},
};
@@ -179,6 +180,115 @@ TEST_F(DataReductionProxyChromeSettingsTest,
}
}
+TEST_F(DataReductionProxyChromeSettingsTest,
+ MigratePacGooglezipDataReductionProxy) {
+ const struct {
+ const char* pac_url;
+ bool expect_pref_cleared;
+ } test_cases[] = {
+ // PAC with bypass rules that returns 'HTTPS proxy.googlezip.net:443;
+ // PROXY compress.googlezip.net:80; DIRECT'.
+ {"data:application/"
+ "x-ns-proxy-autoconfig;base64,"
+ "ZnVuY3Rpb24gRmluZFByb3h5Rm9yVVJMKHVybCwgaG9zdCkgeyAgaWYgKChzaEV4cE1hdGN"
+ "oKHVybCwgJ2h0dHA6Ly93d3cuZ29vZ2xlLmNvbS9wb2xpY2llcy9wcml2YWN5KicpKSkgey"
+ "AgICByZXR1cm4gJ0RJUkVDVCc7ICB9ICAgaWYgKHVybC5zdWJzdHJpbmcoMCwgNSkgPT0gJ"
+ "2h0dHA6JykgeyAgICByZXR1cm4gJ0hUVFBTIHByb3h5Lmdvb2dsZXppcC5uZXQ6NDQzOyBQ"
+ "Uk9YWSBjb21wcmVzcy5nb29nbGV6aXAubmV0OjgwOyBESVJFQ1QnOyAgfSAgcmV0dXJuICd"
+ "ESVJFQ1QnO30=",
+ true},
+ // PAC with bypass rules that returns 'PROXY compress.googlezip.net:80;
+ // DIRECT'.
+ {"data:application/"
+ "x-ns-proxy-autoconfig;base64,"
+ "ZnVuY3Rpb24gRmluZFByb3h5Rm9yVVJMKHVybCwgaG9zdCkgeyAgaWYgKChzaEV4cE1hdGN"
+ "oKHVybCwgJ2h0dHA6Ly93d3cuZ29vZ2xlLmNvbS9wb2xpY2llcy9wcml2YWN5KicpKSkgey"
+ "AgICByZXR1cm4gJ0RJUkVDVCc7ICB9ICAgaWYgKHVybC5zdWJzdHJpbmcoMCwgNSkgPT0gJ"
+ "2h0dHA6JykgeyAgICByZXR1cm4gJ1BST1hZIGNvbXByZXNzLmdvb2dsZXppcC5uZXQ6ODA7"
+ "IERJUkVDVCc7ICB9ICByZXR1cm4gJ0RJUkVDVCc7fQ==",
+ true},
+ // PAC with bypass rules that returns 'PROXY proxy-dev.googlezip.net:80;
+ // DIRECT'.
+ {"data:application/"
+ "x-ns-proxy-autoconfig;base64,"
+ "ZnVuY3Rpb24gRmluZFByb3h5Rm9yVVJMKHVybCwgaG9zdCkgeyAgaWYgKChzaEV4cE1hdGN"
+ "oKHVybCwgJ2h0dHA6Ly93d3cuZ29vZ2xlLmNvbS9wb2xpY2llcy9wcml2YWN5KicpKSkgey"
+ "AgICByZXR1cm4gJ0RJUkVDVCc7ICB9ICAgaWYgKHVybC5zdWJzdHJpbmcoMCwgNSkgPT0gJ"
+ "2h0dHA6JykgeyAgICByZXR1cm4gJ1BST1hZIHByb3h5LWRldi5nb29nbGV6aXAubmV0Ojgw"
+ "OyBESVJFQ1QnOyAgfSAgcmV0dXJuICdESVJFQ1QnO30=",
+ true},
+ // Simple PAC that returns 'PROXY compress.googlezip.net:80'.
+ {"data:application/"
+ "x-ns-proxy-autoconfig;base64,"
+ "ZnVuY3Rpb24gRmluZFByb3h5Rm9yVVJMKHVybCwgaG9zdCkge3JldHVybiAnUFJPWFkgY29"
+ "tcHJlc3MuZ29vZ2xlemlwLm5ldDo4MCc7fQo=",
+ true},
+ // Simple PAC that returns 'PROXY compress.googlezip.net'. Note that since
+ // the port is not specified, the pref will not be cleared.
+ {"data:application/"
+ "x-ns-proxy-autoconfig;base64,"
+ "ZnVuY3Rpb24gRmluZFByb3h5Rm9yVVJMKHVybCwgaG9zdCkge3JldHVybiAnUFJPWFkgY29"
+ "tcHJlc3MuZ29vZ2xlemlwLm5ldCc7fQ==",
+ false},
+ // Simple PAC that returns 'PROXY mycustomdrp.net:80'.
+ {"data:application/"
+ "x-ns-proxy-autoconfig;base64,"
+ "ZnVuY3Rpb24gRmluZFByb3h5Rm9yVVJMKHVybCwgaG9zdCkge3JldHVybiAnUFJPWFkgb3J"
+ "pZ2luLm5ldDo4MCc7fQo=",
+ false},
+ // Simple PAC that returns 'PROXY myprefixgooglezip.net:80'.
+ {"data:application/"
+ "x-ns-proxy-autoconfig;base64,"
+ "ZnVuY3Rpb24gRmluZFByb3h5Rm9yVVJMKHVybCwgaG9zdCkge3JldHVybiAnUFJPWFkgbXl"
+ "wcmVmaXhnb29nbGV6aXAubmV0OjgwJzt9Cg==",
+ false},
+ // Simple PAC that returns 'PROXY compress.googlezip.net.mydomain.com:80'.
+ {"data:application/"
+ "x-ns-proxy-autoconfig;base64,"
+ "ZnVuY3Rpb24gRmluZFByb3h5Rm9yVVJMKHVybCwgaG9zdCkge3JldHVybiAnUFJPWFkgY29"
+ "tcHJlc3MuZ29vZ2xlemlwLm5ldC5teWRvbWFpbi5jb206ODAnO30K",
+ false},
+ // PAC URL that doesn't embed a script.
+ {"http://compress.googlezip.net/pac", false},
+ };
+
+ for (const auto& test : test_cases) {
+ base::HistogramTester histogram_tester;
+ dict_.reset(new base::DictionaryValue());
+ dict_->SetString("mode", "pac_script");
+ dict_->SetString("pac_url", test.pac_url);
+ test_context_->pref_service()->Set(prefs::kProxy, *dict_.get());
+ EXPECT_CALL(*config_, ContainsDataReductionProxy(_)).Times(0);
+
+ drp_chrome_settings_->MigrateDataReductionProxyOffProxyPrefs(
+ test_context_->pref_service());
+
+ if (test.expect_pref_cleared) {
+ EXPECT_EQ(NULL,
+ test_context_->pref_service()->GetUserPref(prefs::kProxy));
+ histogram_tester.ExpectUniqueSample(
+ "DataReductionProxy.ProxyPrefMigrationResult",
+ DataReductionProxyChromeSettings::PROXY_PREF_CLEARED_PAC_GOOGLEZIP,
+ 1);
+ } else {
+ const base::DictionaryValue* value;
+ EXPECT_TRUE(test_context_->pref_service()
+ ->GetUserPref(prefs::kProxy)
+ ->GetAsDictionary(&value));
+ std::string mode;
+ EXPECT_TRUE(value->GetString("mode", &mode));
+ EXPECT_EQ("pac_script", mode);
+ std::string pac_url;
+ EXPECT_TRUE(value->GetString("pac_url", &pac_url));
+ EXPECT_EQ(test.pac_url, pac_url);
+
+ histogram_tester.ExpectUniqueSample(
+ "DataReductionProxy.ProxyPrefMigrationResult",
+ DataReductionProxyChromeSettings::PROXY_PREF_NOT_CLEARED, 1);
+ }
+ }
+}
+
TEST_F(DataReductionProxyChromeSettingsTest, MigrateIgnoreOtherProxy) {
const std::string kTestServers[] = {
"http=https://youtube.com",
« no previous file with comments | « chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698