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

Unified Diff: components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc

Issue 1162903008: Add field trial handling to enable the Data Reduction Proxy config service. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: bengr CR comment 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
Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc
index e9fc3d1ffcca4f59094d706453795ab077619bec..0e952d7dc63dc1356f7009ec07722eafbfc825b7 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc
@@ -4,11 +4,13 @@
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.h"
+#include <map>
#include <string>
#include <vector>
#include "base/command_line.h"
#include "base/memory/scoped_ptr.h"
+#include "base/metrics/field_trial.h"
#include "base/time/tick_clock.h"
#include "base/values.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_config_test_utils.h"
@@ -20,6 +22,7 @@
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_pref_names.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h"
#include "components/data_reduction_proxy/proto/client_config.pb.h"
+#include "components/variations/variations_associated_data.h"
#include "net/http/http_response_headers.h"
#include "net/proxy/proxy_server.h"
#include "net/socket/socket_test_util.h"
@@ -68,6 +71,9 @@ const char kSerializedOrigin[] = "https://serialized.net:443";
const char kSerializedFallback[] = "serialized.net:80";
const char kSerializedSessionKey[] = "SerializedSessionKey";
+const char kConfigServiceFieldTrial[] = "DataReductionProxyConfigService";
+const char kConfigServiceURLParam[] = "url";
+
} // namespace
namespace data_reduction_proxy {
@@ -326,26 +332,81 @@ TEST_F(DataReductionProxyConfigServiceClientTest, ConfigDisabled) {
TEST_F(DataReductionProxyConfigServiceClientTest, GetConfigServiceURL) {
const struct {
+ std::string trial_group_value;
+ std::string trial_url_param;
+ } variations[] = {
+ {
+ "Enabled", "http://enabled.config-service/",
+ },
+ {
+ "Disabled", "http://disabled.config-service/",
+ },
+ {
+ "EnabledOther", "http://other.config-service/",
+ },
+ };
+
+ variations::testing::ClearAllVariationParams();
+ for (const auto& variation : variations) {
+ std::map<std::string, std::string> variation_params;
+ variation_params[kConfigServiceURLParam] = variation.trial_url_param;
+ ASSERT_TRUE(variations::AssociateVariationParams(
+ kConfigServiceFieldTrial, variation.trial_group_value,
+ variation_params));
+ }
+
+ const struct {
+ std::string test_case;
std::string flag_value;
+ std::string trial_group_value;
GURL expected;
} tests[] = {
{
- "", GURL(),
+ "Nothing set", "", "", GURL(),
+ },
+ {
+ "Only command line set",
+ "http://commandline.config-service/",
+ "",
+ GURL("http://commandline.config-service/"),
+ },
+ {
+ "Enabled group", "", "Enabled", GURL("http://enabled.config-service/"),
+ },
+ {
+ "Disabled group",
+ "",
+ "Disabled",
+ GURL("http://disabled.config-service/"),
+ },
+ {
+ "Alternate enabled group",
+ "",
+ "EnabledOther",
+ GURL("http://other.config-service/"),
},
{
- "http://configservice.chrome-test.com",
- GURL("http://configservice.chrome-test.com"),
+ "Command line precedence",
+ "http://commandline.config-service/",
+ "Enabled",
+ GURL("http://commandline.config-service/"),
},
};
for (const auto& test : tests) {
// Reset all flags.
base::CommandLine::ForCurrentProcess()->InitFromArgv(0, NULL);
- base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
- switches::kDataReductionProxyConfigURL, test.flag_value);
- EXPECT_EQ(test.expected,
- DataReductionProxyConfigServiceClient::GetConfigServiceURL(
- *base::CommandLine::ForCurrentProcess()));
+ if (!test.flag_value.empty()) {
+ base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
+ switches::kDataReductionProxyConfigURL, test.flag_value);
+ }
+ base::FieldTrialList field_trial_list(nullptr);
+ if (!test.trial_group_value.empty()) {
+ base::FieldTrialList::CreateFieldTrial(kConfigServiceFieldTrial,
+ test.trial_group_value);
+ }
+ EXPECT_EQ(test.expected, DataReductionProxyParams::GetConfigServiceURL())
+ << test.test_case;
}
}

Powered by Google App Engine
This is Rietveld 408576698