| Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_config_unittest.cc
|
| diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_unittest.cc
|
| index b1a97bd10debddc28dcfd3b664bdb71d0cb02250..654f74c18c4c8c450fef399f597226eb74bb5796 100644
|
| --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_unittest.cc
|
| +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_unittest.cc
|
| @@ -792,52 +792,51 @@ TEST_F(DataReductionProxyConfigTest, LoFiOn) {
|
| bool expect_lofi_header;
|
| int bucket_to_check_for_auto_lofi_uma;
|
| int expect_bucket_count;
|
| -
|
| } tests[] = {
|
| {
|
| - // Lo-Fi off.
|
| - false,
|
| - false,
|
| - false,
|
| - false,
|
| - 0,
|
| - 0, // not in enabled field trial, UMA is not recorded
|
| + // The Lo-Fi switch is off and the user is not in the enabled field
|
| + // trial group. Lo-Fi should not be used.
|
| + false, false, false, false, 0,
|
| + 0, // not in enabled field trial, UMA is not recorded
|
| },
|
| {
|
| - // In enabled field trial group but network quality is not bad.
|
| - false,
|
| - true,
|
| - false,
|
| - false,
|
| - 0,
|
| - 1, // Lo-Fi request header is not used (state change: empty to empty)
|
| + // The Lo-Fi switch is off and the user is not in enabled field trial
|
| + // group and the network quality is bad. Lo-Fi should not be used.
|
| + false, false, true, false, 0,
|
| + 0, // not in enabled field trial, UMA is not recorded
|
| },
|
| {
|
| - // Not in enabled field trial group and network quality is bad.
|
| - false,
|
| - false,
|
| - true,
|
| - false,
|
| - 0,
|
| - 0, // not in enabled field trial, UMA is not recorded
|
| + // Lo-Fi is enabled through command line switch. LoFi should be used.
|
| + true, false, false, true, 0,
|
| + 0, // not in enabled field trial, UMA is not recorded
|
| },
|
| {
|
| - // In enabled field trial group and network quality is bad.
|
| - false,
|
| - true,
|
| - true,
|
| - true,
|
| - 1,
|
| - 1, // Lo-Fi request header is now used (state change: empty to low)
|
| + // The user is in the enabled field trial group but the network
|
| + // quality is not bad. Lo-Fi should not be used.
|
| + false, true, false, false,
|
| + 0, // Lo-Fi request header is not used (state change: empty to empty)
|
| + 1,
|
| },
|
| {
|
| - // Lo-Fi enabled through command line switch.
|
| - true,
|
| - false,
|
| - false,
|
| - true,
|
| - 0,
|
| - 0, // not in enabled field trial, UMA is not recorded
|
| + // The user is in the enabled field trial group and the network
|
| + // quality is bad. Lo-Fi should be used.
|
| + false, true, true, true,
|
| + 1, // Lo-Fi request header is now used (state change: empty to low)
|
| + 1,
|
| + },
|
| + {
|
| + // The user is in the enabled field trial group and the network
|
| + // quality is bad. Lo-Fi should be used again.
|
| + false, true, true, true,
|
| + 3, // Lo-Fi request header is now used (state change: low to low)
|
| + 1,
|
| + },
|
| + {
|
| + // The user is in the enabled field trial group but the network
|
| + // quality is not bad. Lo-Fi should not be used.
|
| + false, true, false, false,
|
| + 2, // Lo-Fi request header is not used (state change: low to empty)
|
| + 1,
|
| },
|
| };
|
| for (size_t i = 0; i < arraysize(tests); ++i) {
|
| @@ -846,17 +845,26 @@ TEST_F(DataReductionProxyConfigTest, LoFiOn) {
|
| base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| switches::kDataReductionProxyLoFi,
|
| switches::kDataReductionProxyLoFiValueAlwaysOn);
|
| + } else {
|
| + base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| + switches::kDataReductionProxyLoFi, std::string());
|
| }
|
|
|
| - EXPECT_CALL(*config(), IsIncludedInLoFiEnabledFieldTrial())
|
| - .WillRepeatedly(
|
| - testing::Return(tests[i].lofi_enabled_field_trial_group));
|
| + base::FieldTrialList field_trial_list(nullptr);
|
| + if (tests[i].lofi_enabled_field_trial_group) {
|
| + base::FieldTrialList::CreateFieldTrial(params::GetLoFiFieldTrialName(),
|
| + "Enabled");
|
| + }
|
|
|
| EXPECT_CALL(*config(), IsNetworkQualityProhibitivelySlow(_))
|
| .WillRepeatedly(testing::Return(tests[i].network_prohibitively_slow));
|
|
|
| base::HistogramTester histogram_tester;
|
| - config()->UpdateLoFiStatusOnMainFrameRequest(false, nullptr);
|
| + net::TestURLRequestContext context_;
|
| + net::TestDelegate delegate_;
|
| + scoped_ptr<net::URLRequest> request =
|
| + context_.CreateRequest(GURL(), net::IDLE, &delegate_);
|
| + bool should_enable_lofi = config()->ShouldEnableLoFiMode(*request.get());
|
| if (tests[i].expect_bucket_count != 0) {
|
| histogram_tester.ExpectBucketCount(
|
| "DataReductionProxy.AutoLoFiRequestHeaderState.Unknown",
|
| @@ -864,49 +872,7 @@ TEST_F(DataReductionProxyConfigTest, LoFiOn) {
|
| tests[i].expect_bucket_count);
|
| }
|
|
|
| - EXPECT_EQ(tests[i].expect_lofi_header,
|
| - config()->ShouldUseLoFiHeaderForRequests())
|
| - << i;
|
| - }
|
| -}
|
| -
|
| -TEST_F(DataReductionProxyConfigTest, LoFiStatusTransition) {
|
| - const struct {
|
| - bool lofi_switch_enabled;
|
| - } tests[] = {
|
| - {
|
| - false,
|
| - },
|
| - {
|
| - true,
|
| - },
|
| - };
|
| -
|
| - for (size_t i = 0; i < arraysize(tests); ++i) {
|
| - config()->ResetLoFiStatusForTest();
|
| - if (tests[i].lofi_switch_enabled) {
|
| - base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| - switches::kDataReductionProxyLoFi,
|
| - switches::kDataReductionProxyLoFiValueAlwaysOn);
|
| - } else {
|
| - EXPECT_CALL(*config(), IsIncludedInLoFiEnabledFieldTrial())
|
| - .WillRepeatedly(testing::Return(true));
|
| -
|
| - EXPECT_CALL(*config(), IsNetworkQualityProhibitivelySlow(_))
|
| - .WillRepeatedly(testing::Return(true));
|
| - }
|
| -
|
| - // First, set the status to enabled.
|
| - config()->UpdateLoFiStatusOnMainFrameRequest(false, nullptr);
|
| - EXPECT_EQ(true, config()->ShouldUseLoFiHeaderForRequests()) << i;
|
| -
|
| - // Full page reload with Lo-Fi disabled (main frame request).
|
| - config()->UpdateLoFiStatusOnMainFrameRequest(true, nullptr);
|
| - EXPECT_FALSE(config()->ShouldUseLoFiHeaderForRequests()) << i;
|
| -
|
| - // New page load (main frame request).
|
| - config()->UpdateLoFiStatusOnMainFrameRequest(false, nullptr);
|
| - EXPECT_EQ(true, config()->ShouldUseLoFiHeaderForRequests()) << i;
|
| + EXPECT_EQ(tests[i].expect_lofi_header, should_enable_lofi) << i;
|
| }
|
| }
|
|
|
| @@ -1050,7 +1016,7 @@ TEST_F(DataReductionProxyConfigTest, AutoLoFiParams) {
|
| // Change the last update time to be older than the hysteresis duration.
|
| // Checking network quality afterwards should show that network is no longer
|
| // slow.
|
| - config.network_quality_last_updated_ =
|
| + config.network_quality_last_checked_ =
|
| base::TimeTicks::Now() -
|
| base::TimeDelta::FromSeconds(expected_hysteresis_sec + 1);
|
| EXPECT_FALSE(config.IsNetworkQualityProhibitivelySlow(
|
| @@ -1108,7 +1074,7 @@ TEST_F(DataReductionProxyConfigTest, AutoLoFiParamsSlowConnectionsFlag) {
|
| // Change the last update time to be older than the hysteresis duration.
|
| // Checking network quality afterwards should show that network is no longer
|
| // slow.
|
| - config.network_quality_last_updated_ =
|
| + config.network_quality_last_checked_ =
|
| base::TimeTicks::Now() - base::TimeDelta::FromSeconds(hysteresis_sec + 1);
|
| EXPECT_FALSE(config.IsNetworkQualityProhibitivelySlow(
|
| &test_network_quality_estimator));
|
| @@ -1174,7 +1140,7 @@ TEST_F(DataReductionProxyConfigTest, AutoLoFiAccuracy) {
|
| histogram_tester.ExpectBucketCount(
|
| "DataReductionProxy.AutoLoFiAccuracy.Unknown", 1, 1);
|
|
|
| - config.network_quality_last_updated_ =
|
| + config.network_quality_last_checked_ =
|
| base::TimeTicks::Now() -
|
| base::TimeDelta::FromSeconds(expected_hysteresis_sec + 1);
|
|
|
|
|