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

Unified Diff: components/data_reduction_proxy/browser/data_reduction_proxy_settings_unittest.cc

Issue 286013002: Added alternative configuration for the data reduction proxy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: DCHECK fix Created 6 years, 7 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: components/data_reduction_proxy/browser/data_reduction_proxy_settings_unittest.cc
diff --git a/components/data_reduction_proxy/browser/data_reduction_proxy_settings_unittest.cc b/components/data_reduction_proxy/browser/data_reduction_proxy_settings_unittest.cc
index 56778a758c22600453e90a93b8a8134107fc1a13..fcb78fe51030bff5bb92975352ec8dd064c4eeec 100644
--- a/components/data_reduction_proxy/browser/data_reduction_proxy_settings_unittest.cc
+++ b/components/data_reduction_proxy/browser/data_reduction_proxy_settings_unittest.cc
@@ -8,6 +8,7 @@
#include "base/md5.h"
#include "base/message_loop/message_loop.h"
#include "base/strings/utf_string_conversions.h"
+#include "components/data_reduction_proxy/browser/data_reduction_proxy_params.h"
#include "components/data_reduction_proxy/browser/data_reduction_proxy_settings_test_utils.h"
#include "components/data_reduction_proxy/common/data_reduction_proxy_pref_names.h"
#include "components/data_reduction_proxy/common/data_reduction_proxy_switches.h"
@@ -23,6 +24,9 @@ const char kDataReductionProxy[] = "https://foo.com:443/";
const char kDataReductionProxyDev[] = "http://foo-dev.com:80";
const char kDataReductionProxyFallback[] = "http://bar.com:80";
const char kDataReductionProxyKey[] = "12345";
+const char kDataReductionProxyAlt[] = "https://alt.com:443/";
+const char kDataReductionProxyAltFallback[] = "http://alt2.com:80";
+const char kDataReductionProxySSL[] = "http://ssl.com:80";
const char kProbeURLWithOKResponse[] = "http://ok.org/";
const char kProbeURLWithBadResponse[] = "http://bad.org/";
@@ -39,13 +43,17 @@ class DataReductionProxySettingsTest
TEST_F(DataReductionProxySettingsTest, TestAuthenticationInit) {
- AddProxyToCommandLine();
net::HttpAuthCache cache;
+ DataReductionProxyParams drp_params(
+ DataReductionProxyParams::kAllowed |
+ DataReductionProxyParams::kFallbackAllowed |
+ DataReductionProxyParams::kPromoAllowed);
+ drp_params.set_key(kDataReductionProxyKey);
DataReductionProxySettings::InitDataReductionAuthentication(
- &cache, kDataReductionProxyKey);
- DataReductionProxySettings::DataReductionProxyList proxies =
- DataReductionProxySettings::GetDataReductionProxies();
- for (DataReductionProxySettings::DataReductionProxyList::iterator it =
+ &cache, &drp_params);
+ DataReductionProxyParams::DataReductionProxyList proxies =
+ drp_params.GetAllowedProxies();
+ for (DataReductionProxyParams::DataReductionProxyList::iterator it =
proxies.begin(); it != proxies.end(); ++it) {
net::HttpAuthCache::Entry* entry = cache.LookupByPath(*it,
std::string("/"));
@@ -60,53 +68,33 @@ TEST_F(DataReductionProxySettingsTest, TestAuthenticationInit) {
}
TEST_F(DataReductionProxySettingsTest, TestGetDataReductionProxyOrigin) {
- AddProxyToCommandLine();
// SetUp() adds the origin to the command line, which should be returned here.
std::string result =
- DataReductionProxySettings::GetDataReductionProxyOrigin();
- EXPECT_EQ(kDataReductionProxy, result);
+ settings_->params()->origin().spec();
+ EXPECT_EQ(GURL(kDataReductionProxy), GURL(result));
}
TEST_F(DataReductionProxySettingsTest, TestGetDataReductionProxyDevOrigin) {
- AddProxyToCommandLine();
CommandLine::ForCurrentProcess()->AppendSwitchASCII(
switches::kDataReductionProxyDev, kDataReductionProxyDev);
+ ResetSettings(true, true, false, true);
std::string result =
- DataReductionProxySettings::GetDataReductionProxyOrigin();
- EXPECT_EQ(kDataReductionProxyDev, result);
+ settings_->params()->origin().spec();
+ EXPECT_EQ(GURL(kDataReductionProxyDev), GURL(result));
}
-TEST_F(DataReductionProxySettingsTest, TestGetDataReductionProxies) {
- DataReductionProxySettings::DataReductionProxyList proxies =
- DataReductionProxySettings::GetDataReductionProxies();
-
- unsigned int expected_proxy_size = 0u;
-#if defined(SPDY_PROXY_AUTH_ORIGIN)
- ++expected_proxy_size;
-#endif
-#if defined(DATA_REDUCTION_FALLBACK_HOST)
- ++expected_proxy_size;
-#endif
-
- EXPECT_EQ(expected_proxy_size, proxies.size());
-
- // Adding just the fallback on the command line shouldn't add a proxy unless
- // there was already one compiled in.
- CommandLine::ForCurrentProcess()->AppendSwitchASCII(
- switches::kDataReductionProxyFallback, kDataReductionProxyFallback);
- proxies = DataReductionProxySettings::GetDataReductionProxies();
-
- // So: if there weren't any proxies before, there still won't be.
- // If there were one or two, there will be two now.
- expected_proxy_size = expected_proxy_size == 0u ? 0u : 2u;
+TEST_F(DataReductionProxySettingsTest, TestGetDataReductionProxies) {
+ DataReductionProxyParams drp_params(
+ DataReductionProxyParams::kAllowed |
+ DataReductionProxyParams::kFallbackAllowed |
+ DataReductionProxyParams::kPromoAllowed);
+ DataReductionProxyParams::DataReductionProxyList proxies =
+ drp_params.GetAllowedProxies();
+
+ unsigned int expected_proxy_size = 2u;
EXPECT_EQ(expected_proxy_size, proxies.size());
- CommandLine::ForCurrentProcess()->AppendSwitchASCII(
- switches::kDataReductionProxy, kDataReductionProxy);
- proxies = DataReductionProxySettings::GetDataReductionProxies();
- EXPECT_EQ(2u, proxies.size());
-
// Command line proxies have precedence, so even if there were other values
// compiled in, these should be the ones in the list.
EXPECT_EQ("foo.com", proxies[0].host());
@@ -116,7 +104,6 @@ TEST_F(DataReductionProxySettingsTest, TestGetDataReductionProxies) {
}
TEST_F(DataReductionProxySettingsTest, TestAuthHashGeneration) {
- AddProxyToCommandLine();
std::string salt = "8675309"; // Jenny's number to test the hash generator.
std::string salted_key = salt + kDataReductionProxyKey + salt;
base::string16 expected_hash = base::UTF8ToUTF16(base::MD5String(salted_key));
@@ -125,25 +112,55 @@ TEST_F(DataReductionProxySettingsTest, TestAuthHashGeneration) {
8675309, kDataReductionProxyKey));
}
-// Test that the auth key set by preprocessor directive is not used
-// when an origin is set via a switch. This test only does anything useful in
-// Chrome builds.
-TEST_F(DataReductionProxySettingsTest,
- TestAuthHashGenerationWithOriginSetViaSwitch) {
+TEST_F(DataReductionProxySettingsTest, TestSetProxyConfigs) {
CommandLine::ForCurrentProcess()->AppendSwitchASCII(
- switches::kDataReductionProxy, kDataReductionProxy);
- EXPECT_EQ(base::string16(),
- DataReductionProxySettings::AuthHashForSalt(
- 8675309, kDataReductionProxyKey));
+ switches::kDataReductionProxyAlt, kDataReductionProxyAlt);
+ CommandLine::ForCurrentProcess()->AppendSwitchASCII(
+ switches::kDataReductionProxyAltFallback, kDataReductionProxyAltFallback);
+ CommandLine::ForCurrentProcess()->AppendSwitchASCII(
+ switches::kDataReductionSSLProxy, kDataReductionProxySSL);
+ ResetSettings(true, true, true, true);
+ TestDataReductionProxyConfig* config =
+ static_cast<TestDataReductionProxyConfig*>(
+ settings_->configurator());
+
+ settings_->SetProxyConfigs(true, true, false, false);
+ EXPECT_TRUE(config->enabled_);
+ EXPECT_TRUE(net::HostPortPair::FromString(kDataReductionProxyAlt).Equals(
+ net::HostPortPair::FromString(config->origin_)));
+ EXPECT_TRUE(
+ net::HostPortPair::FromString(kDataReductionProxyAltFallback).Equals(
+ net::HostPortPair::FromString(config->fallback_origin_)));
+ EXPECT_TRUE(net::HostPortPair::FromString(kDataReductionProxySSL).Equals(
+ net::HostPortPair::FromString(config->ssl_origin_)));
+
+ settings_->SetProxyConfigs(true, false, false, false);
+ EXPECT_TRUE(config->enabled_);
+ EXPECT_TRUE(net::HostPortPair::FromString(kDataReductionProxy).Equals(
+ net::HostPortPair::FromString(config->origin_)));
+ EXPECT_TRUE(net::HostPortPair::FromString(kDataReductionProxyFallback).Equals(
+ net::HostPortPair::FromString(config->fallback_origin_)));
+ EXPECT_EQ("", config->ssl_origin_);
+
+ settings_->SetProxyConfigs(false, true, false, false);
+ EXPECT_FALSE(config->enabled_);
+ EXPECT_EQ("", config->origin_);
+ EXPECT_EQ("", config->fallback_origin_);
+ EXPECT_EQ("", config->ssl_origin_);
+
+ settings_->SetProxyConfigs(false, false, false, false);
+ EXPECT_FALSE(config->enabled_);
+ EXPECT_EQ("", config->origin_);
+ EXPECT_EQ("", config->fallback_origin_);
+ EXPECT_EQ("", config->ssl_origin_);
}
TEST_F(DataReductionProxySettingsTest, TestIsProxyEnabledOrManaged) {
- AddProxyToCommandLine();
settings_->InitPrefMembers();
base::MessageLoopForUI loop;
// The proxy is disabled initially.
settings_->enabled_by_user_ = false;
- settings_->SetProxyConfigs(false, false, false);
+ settings_->SetProxyConfigs(false, false, false, false);
EXPECT_FALSE(settings_->IsDataReductionProxyEnabled());
EXPECT_FALSE(settings_->IsDataReductionProxyManaged());
@@ -158,7 +175,6 @@ TEST_F(DataReductionProxySettingsTest, TestIsProxyEnabledOrManaged) {
}
TEST_F(DataReductionProxySettingsTest, TestAcceptableChallenges) {
- AddProxyToCommandLine();
typedef struct {
std::string host;
std::string realm;
@@ -185,13 +201,11 @@ TEST_F(DataReductionProxySettingsTest, TestAcceptableChallenges) {
auth_info->challenger = net::HostPortPair::FromString(tests[i].host);
auth_info->realm = tests[i].realm;
EXPECT_EQ(tests[i].expected_to_succeed,
- DataReductionProxySettings::IsAcceptableAuthChallenge(
- auth_info.get()));
+ settings_->IsAcceptableAuthChallenge(auth_info.get()));
}
}
TEST_F(DataReductionProxySettingsTest, TestChallengeTokens) {
- AddProxyToCommandLine();
typedef struct {
std::string realm;
bool expected_empty_token;
@@ -281,14 +295,15 @@ TEST_F(DataReductionProxySettingsTest, TestContentLengths) {
// TODO(marq): Add a test to verify that MaybeActivateDataReductionProxy
// is called when the pref in |settings_| is enabled.
TEST_F(DataReductionProxySettingsTest, TestMaybeActivateDataReductionProxy) {
- AddProxyToCommandLine();
-
// Initialize the pref member in |settings_| without the usual callback
// so it won't trigger MaybeActivateDataReductionProxy when the pref value
// is set.
settings_->spdy_proxy_auth_enabled_.Init(
prefs::kDataReductionProxyEnabled,
settings_->GetOriginalProfilePrefs());
+ settings_->data_reduction_proxy_alternative_enabled_.Init(
+ prefs::kDataReductionProxyAltEnabled,
+ settings_->GetOriginalProfilePrefs());
// TODO(bengr): Test enabling/disabling while a probe is outstanding.
base::MessageLoopForUI loop;
@@ -305,16 +320,18 @@ TEST_F(DataReductionProxySettingsTest, TestMaybeActivateDataReductionProxy) {
}
TEST_F(DataReductionProxySettingsTest, TestOnIPAddressChanged) {
- AddProxyToCommandLine();
base::MessageLoopForUI loop;
// The proxy is enabled initially.
pref_service_.SetBoolean(prefs::kDataReductionProxyEnabled, true);
settings_->spdy_proxy_auth_enabled_.Init(
prefs::kDataReductionProxyEnabled,
settings_->GetOriginalProfilePrefs());
+ settings_->data_reduction_proxy_alternative_enabled_.Init(
+ prefs::kDataReductionProxyAltEnabled,
+ settings_->GetOriginalProfilePrefs());
settings_->enabled_by_user_ = true;
settings_->restricted_by_carrier_ = false;
- settings_->SetProxyConfigs(true, false, true);
+ settings_->SetProxyConfigs(true, false, false, true);
// IP address change triggers a probe that succeeds. Proxy remains
// unrestricted.
CheckProbeOnIPChange(kProbeURLWithOKResponse, "OK", true, false, false);
@@ -327,12 +344,11 @@ TEST_F(DataReductionProxySettingsTest, TestOnIPAddressChanged) {
}
TEST_F(DataReductionProxySettingsTest, TestOnProxyEnabledPrefChange) {
- AddProxyToCommandLine();
settings_->InitPrefMembers();
base::MessageLoopForUI loop;
// The proxy is enabled initially.
settings_->enabled_by_user_ = true;
- settings_->SetProxyConfigs(true, false, true);
+ settings_->SetProxyConfigs(true, false, false, true);
// The pref is disabled, so correspondingly should be the proxy.
CheckOnPrefChange(false, false, false);
// The pref is enabled, so correspondingly should be the proxy.
@@ -384,9 +400,12 @@ TEST_F(DataReductionProxySettingsTest, CheckInitMetricsWhenNotAllowed) {
// No call to |AddProxyToCommandLine()| was made, so the proxy feature
// should be unavailable.
base::MessageLoopForUI loop;
- DataReductionProxySettings::SetAllowed(false);
- EXPECT_FALSE(DataReductionProxySettings::IsDataReductionProxyAllowed());
+ // Clear the command line. Setting flags can force the proxy to be allowed.
+ CommandLine::ForCurrentProcess()->InitFromArgv(0, NULL);
+
+ ResetSettings(false, false, false, false);
MockSettings* settings = static_cast<MockSettings*>(settings_.get());
+ EXPECT_FALSE(settings->params()->allowed());
EXPECT_CALL(*settings, RecordStartupState(PROXY_NOT_AVAILABLE));
scoped_ptr<DataReductionProxyConfigurator> configurator(

Powered by Google App Engine
This is Rietveld 408576698