| Index: components/data_reduction_proxy/core/common/data_reduction_proxy_params_unittest.cc
|
| diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_params_unittest.cc b/components/data_reduction_proxy/core/common/data_reduction_proxy_params_unittest.cc
|
| index cbc77cd072dbdc591d9a7be23b32db8bd5931487..b668207a6d411314dfe7c6d6387a6ce673404179 100644
|
| --- a/components/data_reduction_proxy/core/common/data_reduction_proxy_params_unittest.cc
|
| +++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_params_unittest.cc
|
| @@ -19,6 +19,13 @@
|
| #include "net/proxy/proxy_server.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace {
|
| +
|
| +const char kConfigServiceFieldTrial[] = "DataReductionProxyConfigService";
|
| +const char kConfigServiceURLParam[] = "url";
|
| +
|
| +} // namespace
|
|
|
| namespace data_reduction_proxy {
|
| class DataReductionProxyParamsTest : public testing::Test {
|
| @@ -229,6 +236,52 @@
|
| "google/hammerhead/hammerhead:5.0/LRX210/1570415:user/release-keys"));
|
| }
|
|
|
| +TEST_F(DataReductionProxyParamsTest, IsClientConfigEnabled) {
|
| + const struct {
|
| + std::string test_case;
|
| + bool command_line_set;
|
| + std::string trial_group_value;
|
| + bool expected;
|
| + } tests[] = {
|
| + {
|
| + "Nothing set", false, "", false,
|
| + },
|
| + {
|
| + "Command line set", true, "", true,
|
| + },
|
| + {
|
| + "Enabled in experiment", false, "Enabled", true,
|
| + },
|
| + {
|
| + "Alternate enabled in experiment", false, "EnabledOther", true,
|
| + },
|
| + {
|
| + "Disabled in experiment", false, "Disabled", false,
|
| + },
|
| + {
|
| + "Command line set, enabled in experiment", true, "Enabled", true,
|
| + },
|
| + {
|
| + "Command line set, disabled in experiment", true, "Disabled", true,
|
| + },
|
| + };
|
| +
|
| + for (const auto& test : tests) {
|
| + // Reset all flags.
|
| + base::CommandLine::ForCurrentProcess()->InitFromArgv(0, NULL);
|
| + if (test.command_line_set) {
|
| + base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| + switches::kEnableDataReductionProxyConfigClient, "");
|
| + }
|
| + base::FieldTrialList field_trial_list(nullptr);
|
| + if (!test.trial_group_value.empty()) {
|
| + base::FieldTrialList::CreateFieldTrial(kConfigServiceFieldTrial,
|
| + test.trial_group_value);
|
| + }
|
| + EXPECT_EQ(test.expected, params::IsConfigClientEnabled()) << test.test_case;
|
| + }
|
| +}
|
| +
|
| TEST_F(DataReductionProxyParamsTest, SecureProxyCheckDefault) {
|
| struct {
|
| bool command_line_set;
|
| @@ -375,17 +428,58 @@
|
|
|
| TEST_F(DataReductionProxyParamsTest, 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[] = {
|
| {
|
| - "Nothing set", "",
|
| + "Nothing set", "", "",
|
| GURL("https://datasaver.googleapis.com/v1/clientConfigs"),
|
| },
|
| {
|
| - "Only command line set", "http://commandline.config-service/",
|
| + "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/"),
|
| + },
|
| + {
|
| + "Command line precedence", "http://commandline.config-service/",
|
| + "Enabled", GURL("http://commandline.config-service/"),
|
| },
|
| };
|
|
|
| @@ -396,6 +490,11 @@
|
| 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, params::GetConfigServiceURL()) << test.test_case;
|
| }
|
| }
|
|
|