| Index: components/data_reduction_proxy/content/browser/content_lofi_decider_unittest.cc
|
| diff --git a/components/data_reduction_proxy/content/browser/content_lofi_decider_unittest.cc b/components/data_reduction_proxy/content/browser/content_lofi_decider_unittest.cc
|
| index 3bbfb38c263852f7bf5cda111ba4dc3ce43194b7..96fa67052f4a171d10d1fb0c6131ee43e8a0128d 100644
|
| --- a/components/data_reduction_proxy/content/browser/content_lofi_decider_unittest.cc
|
| +++ b/components/data_reduction_proxy/content/browser/content_lofi_decider_unittest.cc
|
| @@ -88,7 +88,6 @@ class ContentLoFiDeciderTest : public testing::Test {
|
| data_reduction_proxy_network_delegate_->InitIODataAndUMA(
|
| test_context_->io_data(), test_context_->io_data()->bypass_stats());
|
|
|
| -
|
| std::unique_ptr<data_reduction_proxy::ContentLoFiDecider>
|
| data_reduction_proxy_lofi_decider(
|
| new data_reduction_proxy::ContentLoFiDecider());
|
| @@ -160,36 +159,22 @@ class ContentLoFiDeciderTest : public testing::Test {
|
| }
|
|
|
| static void VerifyLoFiHeader(bool expected_lofi_used,
|
| - bool expected_if_heavy,
|
| const net::HttpRequestHeaders& headers) {
|
| if (expected_lofi_used)
|
| EXPECT_TRUE(headers.HasHeader(chrome_proxy_accept_transform_header()));
|
| std::string header_value;
|
| headers.GetHeader(chrome_proxy_accept_transform_header(), &header_value);
|
| - if (expected_if_heavy) {
|
| - std::string empty_image_if_heavy = base::StringPrintf(
|
| - "%s;%s", empty_image_directive(), if_heavy_qualifier());
|
| - EXPECT_EQ(expected_lofi_used, empty_image_if_heavy == header_value);
|
| - } else {
|
| - EXPECT_EQ(expected_lofi_used, header_value == empty_image_directive());
|
| - }
|
| + EXPECT_EQ(expected_lofi_used, header_value == empty_image_directive());
|
| }
|
|
|
| static void VerifyLitePageHeader(bool expected_lofi_preview_used,
|
| - bool expected_if_heavy,
|
| const net::HttpRequestHeaders& headers) {
|
| if (expected_lofi_preview_used)
|
| EXPECT_TRUE(headers.HasHeader(chrome_proxy_accept_transform_header()));
|
| std::string header_value;
|
| headers.GetHeader(chrome_proxy_accept_transform_header(), &header_value);
|
| - if (expected_if_heavy) {
|
| - std::string lite_page_if_heavy = base::StringPrintf(
|
| - "%s;%s", lite_page_directive(), if_heavy_qualifier());
|
| - EXPECT_EQ(expected_lofi_preview_used, lite_page_if_heavy == header_value);
|
| - } else {
|
| - EXPECT_EQ(expected_lofi_preview_used,
|
| - header_value == lite_page_directive());
|
| - }
|
| + EXPECT_EQ(expected_lofi_preview_used,
|
| + header_value == lite_page_directive());
|
| }
|
|
|
| static void VerifyVideoHeader(bool expected_compressed_video_used,
|
| @@ -203,15 +188,14 @@ class ContentLoFiDeciderTest : public testing::Test {
|
| header_value.find(compressed_video_directive()) != std::string::npos);
|
| }
|
|
|
| - static void VerifyLitePageIgnoreBlacklistHeader(
|
| - bool expected_blacklist_directive_added,
|
| + static void VerifyForceLitePageHeader(
|
| + bool expected_directive_added,
|
| const net::HttpRequestHeaders& headers) {
|
| EXPECT_TRUE(headers.HasHeader(chrome_proxy_header()));
|
| std::string header_value;
|
| headers.GetHeader(chrome_proxy_header(), &header_value);
|
| - EXPECT_EQ(expected_blacklist_directive_added,
|
| - header_value.find(
|
| - chrome_proxy_lite_page_ignore_blacklist_directive()) !=
|
| + EXPECT_EQ(expected_directive_added,
|
| + header_value.find(chrome_proxy_force_lite_page_directive()) !=
|
| std::string::npos);
|
| }
|
|
|
| @@ -220,15 +204,17 @@ class ContentLoFiDeciderTest : public testing::Test {
|
| net::TestURLRequestContext context_;
|
| net::TestDelegate delegate_;
|
| std::unique_ptr<DataReductionProxyTestContext> test_context_;
|
| + std::unique_ptr<data_reduction_proxy::ContentLoFiDecider>
|
| + data_reduction_proxy_lofi_decider_;
|
| +
|
| std::unique_ptr<DataReductionProxyNetworkDelegate>
|
| data_reduction_proxy_network_delegate_;
|
| };
|
|
|
| -TEST_F(ContentLoFiDeciderTest, LoFiFlags) {
|
| - // Enable Lo-Fi.
|
| +TEST_F(ContentLoFiDeciderTest, MaybeSetAcceptTransformHeader) {
|
| const struct {
|
| - bool is_using_lofi;
|
| - bool is_using_lite_page;
|
| + bool is_server_lofi_on;
|
| + bool is_server_lite_page_on;
|
| bool is_main_frame;
|
| } tests[] = {
|
| {false, false, false}, {false, false, true}, {true, false, true},
|
| @@ -236,96 +222,34 @@ TEST_F(ContentLoFiDeciderTest, LoFiFlags) {
|
| {true, true, true}, {true, true, false},
|
| };
|
|
|
| + std::unique_ptr<data_reduction_proxy::ContentLoFiDecider> lofi_decider(
|
| + new data_reduction_proxy::ContentLoFiDecider());
|
| +
|
| for (size_t i = 0; i < arraysize(tests); ++i) {
|
| content::PreviewsState previews_state = content::PREVIEWS_UNSPECIFIED;
|
| - if (tests[i].is_using_lofi)
|
| + if (tests[i].is_server_lofi_on)
|
| previews_state |= content::SERVER_LOFI_ON;
|
| - if (tests[i].is_using_lite_page)
|
| + if (tests[i].is_server_lite_page_on)
|
| previews_state |= content::SERVER_LITE_PAGE_ON;
|
| if (previews_state == content::PREVIEWS_UNSPECIFIED)
|
| previews_state = content::PREVIEWS_OFF;
|
|
|
| std::unique_ptr<net::URLRequest> request =
|
| CreateRequest(tests[i].is_main_frame, previews_state);
|
| - base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
| - command_line->InitFromArgv(command_line->argv());
|
| - if (tests[i].is_using_lite_page) {
|
| - command_line->AppendSwitch(switches::kEnableDataReductionProxyLitePage);
|
| - }
|
|
|
| - // No flags or field trials. The Lo-Fi header should not be added.
|
| net::HttpRequestHeaders headers;
|
| - NotifyBeforeSendHeaders(&headers, request.get(), true);
|
| - VerifyLoFiHeader(false, false, headers);
|
| - VerifyLitePageHeader(false, false, headers);
|
| - VerifyLitePageIgnoreBlacklistHeader(false, headers);
|
| -
|
| - // The Lo-Fi flag is "always-on", Lo-Fi is being used, and it's a main frame
|
| - // request. Lo-Fi or lite page header should be added.
|
| - command_line->AppendSwitchASCII(
|
| - switches::kDataReductionProxyLoFi,
|
| - switches::kDataReductionProxyLoFiValueAlwaysOn);
|
| - headers.Clear();
|
| - NotifyBeforeSendHeaders(&headers, request.get(), true);
|
| - VerifyLoFiHeader(!tests[i].is_main_frame && !tests[i].is_using_lite_page,
|
| - !tests[i].is_main_frame && !tests[i].is_using_lofi &&
|
| - !tests[i].is_using_lite_page,
|
| - headers);
|
| - VerifyLitePageHeader(tests[i].is_using_lite_page && tests[i].is_main_frame,
|
| - false, headers);
|
| - VerifyLitePageIgnoreBlacklistHeader(
|
| - tests[i].is_using_lite_page && tests[i].is_main_frame, headers);
|
| - DataReductionProxyData* data = DataReductionProxyData::GetData(*request);
|
| - // |lofi_requested| should be set to false when Lo-Fi is enabled using
|
| - // flags.
|
| - EXPECT_FALSE(data->lofi_requested());
|
| + lofi_decider->MaybeSetAcceptTransformHeader(*request.get(), &headers);
|
|
|
| - // The Lo-Fi flag is "always-on" and Lo-Fi is being used. Lo-Fi header
|
| - // should be added.
|
| - AllocateRequestInfoForTesting(
|
| - request.get(), content::RESOURCE_TYPE_SUB_FRAME, previews_state);
|
| - headers.Clear();
|
| - NotifyBeforeSendHeaders(&headers, request.get(), true);
|
| - VerifyLoFiHeader(!tests[i].is_using_lite_page, !tests[i].is_using_lofi,
|
| - headers);
|
| - VerifyLitePageHeader(false, false, headers);
|
| - VerifyLitePageIgnoreBlacklistHeader(false, headers);
|
| -
|
| - // The Lo-Fi flag is "cellular-only" and Lo-Fi is being used. Lo-Fi header
|
| - // should be added.
|
| - command_line->AppendSwitchASCII(
|
| - switches::kDataReductionProxyLoFi,
|
| - switches::kDataReductionProxyLoFiValueCellularOnly);
|
| - headers.Clear();
|
| - NotifyBeforeSendHeaders(&headers, request.get(), true);
|
| - VerifyLoFiHeader(!tests[i].is_using_lite_page, !tests[i].is_using_lofi,
|
| - headers);
|
| - VerifyLitePageHeader(false, false, headers);
|
| - VerifyLitePageIgnoreBlacklistHeader(false, headers);
|
| - data = DataReductionProxyData::GetData(*request);
|
| - // |lofi_requested| should be set to false when Lo-Fi is enabled using
|
| - // flags.
|
| - EXPECT_FALSE(data->lofi_requested());
|
| -
|
| - // The Lo-Fi flag is "slow-connections-only" and Lo-Fi is being used. Lo-Fi
|
| - // header should be added.
|
| - command_line->AppendSwitchASCII(
|
| - switches::kDataReductionProxyLoFi,
|
| - switches::kDataReductionProxyLoFiValueSlowConnectionsOnly);
|
| - headers.Clear();
|
| - NotifyBeforeSendHeaders(&headers, request.get(), true);
|
| - VerifyLoFiHeader(!tests[i].is_using_lite_page, !tests[i].is_using_lofi,
|
| - headers);
|
| - VerifyLitePageHeader(false, false, headers);
|
| - VerifyLitePageIgnoreBlacklistHeader(false, headers);
|
| - data = DataReductionProxyData::GetData(*request);
|
| - // |lofi_requested| should be set to false when Lo-Fi is enabled using
|
| - // flags.
|
| - EXPECT_FALSE(data->lofi_requested());
|
| + bool expect_lite_page =
|
| + tests[i].is_server_lite_page_on && tests[i].is_main_frame;
|
| + VerifyLitePageHeader(expect_lite_page, headers);
|
| +
|
| + bool expect_lofi = tests[i].is_server_lofi_on && !tests[i].is_main_frame;
|
| + VerifyLoFiHeader(expect_lofi, headers);
|
| }
|
| }
|
|
|
| -TEST_F(ContentLoFiDeciderTest, LoFiEnabledFieldTrial) {
|
| +TEST_F(ContentLoFiDeciderTest, LoFiEnabledFieldTrialAndResourceTypes) {
|
| base::FieldTrialList field_trial_list(nullptr);
|
| base::FieldTrialList::CreateFieldTrial(params::GetLoFiFieldTrialName(),
|
| "Enabled");
|
| @@ -391,253 +315,14 @@ TEST_F(ContentLoFiDeciderTest, LoFiEnabledFieldTrial) {
|
| tests[i].resource_type == content::RESOURCE_TYPE_MEDIA ||
|
| tests[i].resource_type == content::RESOURCE_TYPE_CSP_REPORT);
|
|
|
| - VerifyLoFiHeader(is_lofi_resource_type, !tests[i].is_using_lofi, headers);
|
| - VerifyLitePageHeader(false, false, headers);
|
| - VerifyLitePageIgnoreBlacklistHeader(false, headers);
|
| + VerifyLoFiHeader(tests[i].is_using_lofi && is_lofi_resource_type, headers);
|
| + VerifyLitePageHeader(false, headers);
|
| + VerifyForceLitePageHeader(false, headers);
|
| DataReductionProxyData* data = DataReductionProxyData::GetData(*request);
|
| EXPECT_EQ(tests[i].is_using_lofi, data->lofi_requested()) << i;
|
| }
|
| }
|
|
|
| -TEST_F(ContentLoFiDeciderTest, LoFiControlFieldTrial) {
|
| - base::FieldTrialList field_trial_list(nullptr);
|
| - base::FieldTrialList::CreateFieldTrial(params::GetLoFiFieldTrialName(),
|
| - "Control");
|
| - // Enable Lo-Fi.
|
| - const struct {
|
| - bool is_using_lofi;
|
| - bool is_main_frame;
|
| - } tests[] = {{false, false}, {false, true}, {true, false}, {true, true}};
|
| -
|
| - for (size_t i = 0; i < arraysize(tests); ++i) {
|
| - std::unique_ptr<net::URLRequest> request = CreateRequest(
|
| - tests[i].is_main_frame, tests[i].is_using_lofi ? content::SERVER_LOFI_ON
|
| - : content::PREVIEWS_OFF);
|
| - net::HttpRequestHeaders headers;
|
| - NotifyBeforeSendHeaders(&headers, request.get(), true);
|
| - VerifyLoFiHeader(false, false, headers);
|
| - VerifyLitePageHeader(false, false, headers);
|
| - VerifyLitePageIgnoreBlacklistHeader(false, headers);
|
| - DataReductionProxyData* data = DataReductionProxyData::GetData(*request);
|
| - EXPECT_EQ(tests[i].is_using_lofi, data->lofi_requested()) << i;
|
| - }
|
| -}
|
| -
|
| -TEST_F(ContentLoFiDeciderTest, LitePageFieldTrial) {
|
| - base::FieldTrialList field_trial_list(nullptr);
|
| - base::FieldTrialList::CreateFieldTrial(params::GetLoFiFieldTrialName(),
|
| - "Enabled_Preview");
|
| - // Enable Lo-Fi.
|
| - const struct {
|
| - bool is_using_lite_page;
|
| - bool is_main_frame;
|
| - } tests[] = {
|
| - {false, false}, {true, false}, {false, true}, {true, true},
|
| - };
|
| -
|
| - for (size_t i = 0; i < arraysize(tests); ++i) {
|
| - std::unique_ptr<net::URLRequest> request =
|
| - CreateRequest(tests[i].is_main_frame, tests[i].is_using_lite_page
|
| - ? content::SERVER_LITE_PAGE_ON
|
| - : content::PREVIEWS_OFF);
|
| - net::HttpRequestHeaders headers;
|
| - NotifyBeforeSendHeaders(&headers, request.get(), true);
|
| - VerifyLoFiHeader(false, false, headers);
|
| - VerifyLitePageHeader(tests[i].is_main_frame, !tests[i].is_using_lite_page,
|
| - headers);
|
| - VerifyLitePageIgnoreBlacklistHeader(false, headers);
|
| - DataReductionProxyData* data = DataReductionProxyData::GetData(*request);
|
| - EXPECT_EQ(tests[i].is_using_lite_page, data->lofi_requested()) << i;
|
| - }
|
| -}
|
| -
|
| -TEST_F(ContentLoFiDeciderTest, LitePageFieldTrialFallbackEnabled) {
|
| - base::FieldTrialList field_trial_list(nullptr);
|
| - base::FieldTrialList::CreateFieldTrial(params::GetLoFiFieldTrialName(),
|
| - "Enabled_Preview");
|
| - base::FieldTrialList::CreateFieldTrial(
|
| - params::GetLitePageFallbackFieldTrialName(), "Enabled");
|
| -
|
| - // Enable Lo-Fi.
|
| - const struct {
|
| - bool is_using_lofi;
|
| - bool is_using_lite_page;
|
| - bool is_main_frame;
|
| - } tests[] = {
|
| - {false, false, false}, {false, false, true}, {true, false, true},
|
| - {true, false, false}, {false, true, false}, {false, true, true},
|
| - {true, true, true}, {true, true, false},
|
| - };
|
| -
|
| - for (size_t i = 0; i < arraysize(tests); ++i) {
|
| - content::PreviewsState previews_state = content::PREVIEWS_UNSPECIFIED;
|
| - if (tests[i].is_using_lofi)
|
| - previews_state |= content::SERVER_LOFI_ON;
|
| - if (tests[i].is_using_lite_page)
|
| - previews_state |= content::SERVER_LITE_PAGE_ON;
|
| - if (previews_state == content::PREVIEWS_UNSPECIFIED)
|
| - previews_state = content::PREVIEWS_OFF;
|
| -
|
| - std::unique_ptr<net::URLRequest> request =
|
| - CreateRequest(tests[i].is_main_frame, previews_state);
|
| - net::HttpRequestHeaders headers;
|
| - NotifyBeforeSendHeaders(&headers, request.get(), true);
|
| - VerifyLoFiHeader(!tests[i].is_main_frame && !tests[i].is_using_lite_page,
|
| - !tests[i].is_main_frame && !tests[i].is_using_lofi &&
|
| - !tests[i].is_using_lite_page,
|
| - headers);
|
| - VerifyLitePageHeader(tests[i].is_main_frame,
|
| - tests[i].is_main_frame && !tests[i].is_using_lite_page,
|
| - headers);
|
| - VerifyLitePageIgnoreBlacklistHeader(false, headers);
|
| - DataReductionProxyData* data = DataReductionProxyData::GetData(*request);
|
| - EXPECT_EQ(tests[i].is_using_lofi || tests[i].is_using_lite_page,
|
| - data->lofi_requested())
|
| - << i;
|
| - }
|
| -}
|
| -
|
| -TEST_F(ContentLoFiDeciderTest, LitePageFieldTrialFallbackDisabled) {
|
| - base::FieldTrialList field_trial_list(nullptr);
|
| - base::FieldTrialList::CreateFieldTrial(params::GetLoFiFieldTrialName(),
|
| - "Enabled_Preview");
|
| - // Enable Lo-Fi.
|
| - const struct {
|
| - bool is_using_lofi;
|
| - bool is_using_lite_page;
|
| - bool is_main_frame;
|
| - } tests[] = {
|
| - {false, false, false}, {false, false, true}, {true, false, true},
|
| - {true, false, false}, {false, true, false}, {false, true, true},
|
| - {true, true, true}, {true, true, false},
|
| - };
|
| -
|
| - for (size_t i = 0; i < arraysize(tests); ++i) {
|
| - content::PreviewsState previews_state = content::PREVIEWS_UNSPECIFIED;
|
| - if (tests[i].is_using_lofi)
|
| - previews_state |= content::SERVER_LOFI_ON;
|
| - if (tests[i].is_using_lite_page)
|
| - previews_state |= content::SERVER_LITE_PAGE_ON;
|
| - if (previews_state == content::PREVIEWS_UNSPECIFIED)
|
| - previews_state = content::PREVIEWS_OFF;
|
| -
|
| - std::unique_ptr<net::URLRequest> request =
|
| - CreateRequest(tests[i].is_main_frame, previews_state);
|
| - net::HttpRequestHeaders headers;
|
| - NotifyBeforeSendHeaders(&headers, request.get(), true);
|
| - VerifyLoFiHeader(false, false, headers);
|
| - VerifyLitePageHeader(tests[i].is_main_frame,
|
| - tests[i].is_main_frame && !tests[i].is_using_lite_page,
|
| - headers);
|
| - VerifyLitePageIgnoreBlacklistHeader(false, headers);
|
| - DataReductionProxyData* data = DataReductionProxyData::GetData(*request);
|
| - EXPECT_EQ(tests[i].is_using_lofi || tests[i].is_using_lite_page,
|
| - data->lofi_requested())
|
| - << i;
|
| - }
|
| -}
|
| -
|
| -TEST_F(ContentLoFiDeciderTest, AutoLoFi) {
|
| - const struct {
|
| - bool auto_lofi_enabled_group;
|
| - bool auto_lofi_control_group;
|
| - bool network_prohibitively_slow;
|
| - bool is_main_frame;
|
| - } tests[] = {
|
| - {false, false, false, false},
|
| - {false, false, true, false},
|
| - {true, false, false, false},
|
| - {true, false, true, false},
|
| - {true, false, true, true},
|
| - {false, true, false, false},
|
| - {false, true, true, false},
|
| - // Repeat this test data to simulate user moving out of Lo-Fi control
|
| - // experiment.
|
| - {false, true, false, false},
|
| - };
|
| -
|
| - for (size_t i = 0; i < arraysize(tests); ++i) {
|
| - test_context_->config()->ResetLoFiStatusForTest();
|
| - const bool expect_lofi_header = tests[i].auto_lofi_enabled_group &&
|
| - !tests[i].is_main_frame;
|
| -
|
| - base::FieldTrialList field_trial_list(nullptr);
|
| - if (tests[i].auto_lofi_enabled_group) {
|
| - base::FieldTrialList::CreateFieldTrial(params::GetLoFiFieldTrialName(),
|
| - "Enabled");
|
| - }
|
| -
|
| - if (tests[i].auto_lofi_control_group) {
|
| - base::FieldTrialList::CreateFieldTrial(params::GetLoFiFieldTrialName(),
|
| - "Control");
|
| - }
|
| -
|
| - test_context_->config()->SetNetworkProhibitivelySlow(
|
| - tests[i].network_prohibitively_slow);
|
| -
|
| - std::unique_ptr<net::URLRequest> request = CreateRequest(
|
| - tests[i].is_main_frame, tests[i].network_prohibitively_slow);
|
| - net::HttpRequestHeaders headers;
|
| - NotifyBeforeSendHeaders(&headers, request.get(), true);
|
| -
|
| - VerifyLoFiHeader(expect_lofi_header, !tests[i].network_prohibitively_slow,
|
| - headers);
|
| - }
|
| -}
|
| -
|
| -TEST_F(ContentLoFiDeciderTest, SlowConnectionsFlag) {
|
| - const struct {
|
| - bool slow_connections_flag_enabled;
|
| - bool network_prohibitively_slow;
|
| - bool auto_lofi_enabled_group;
|
| - bool is_main_frame;
|
| - } tests[] = {
|
| - {false, false, false, false}, {false, true, false, false},
|
| - {true, false, false, false}, {true, true, false, false},
|
| - {true, true, false, true}, {false, false, true, false},
|
| - {false, false, true, true}, {false, true, true, false},
|
| - {true, false, true, false}, {true, true, true, false},
|
| - };
|
| -
|
| - for (size_t i = 0; i < arraysize(tests); ++i) {
|
| - test_context_->config()->ResetLoFiStatusForTest();
|
| - // For the purpose of this test, Lo-Fi header is expected only if LoFi Slow
|
| - // Connection Flag is enabled or session is part of Lo-Fi enabled field
|
| - // trial. For both cases, an additional condition is that network must be
|
| - // prohibitively slow.
|
| - const bool expect_lofi_header = ((tests[i].slow_connections_flag_enabled &&
|
| - tests[i].network_prohibitively_slow) ||
|
| - (!tests[i].slow_connections_flag_enabled &&
|
| - tests[i].auto_lofi_enabled_group &&
|
| - tests[i].network_prohibitively_slow)) &&
|
| - !tests[i].is_main_frame;
|
| -
|
| - std::string expected_header;
|
| -
|
| - if (tests[i].slow_connections_flag_enabled) {
|
| - base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| - switches::kDataReductionProxyLoFi,
|
| - switches::kDataReductionProxyLoFiValueSlowConnectionsOnly);
|
| - }
|
| -
|
| - base::FieldTrialList field_trial_list(nullptr);
|
| - if (tests[i].auto_lofi_enabled_group) {
|
| - base::FieldTrialList::CreateFieldTrial(params::GetLoFiFieldTrialName(),
|
| - "Enabled");
|
| - }
|
| -
|
| - test_context_->config()->SetNetworkProhibitivelySlow(
|
| - tests[i].network_prohibitively_slow);
|
| -
|
| - std::unique_ptr<net::URLRequest> request = CreateRequest(
|
| - tests[i].is_main_frame, tests[i].network_prohibitively_slow);
|
| - net::HttpRequestHeaders headers;
|
| - NotifyBeforeSendHeaders(&headers, request.get(), true);
|
| -
|
| - VerifyLoFiHeader(expect_lofi_header, false, headers);
|
| - }
|
| -}
|
| -
|
| TEST_F(ContentLoFiDeciderTest, ProxyIsNotDataReductionProxy) {
|
| base::FieldTrialList field_trial_list(nullptr);
|
| base::FieldTrialList::CreateFieldTrial(params::GetLoFiFieldTrialName(),
|
| @@ -665,7 +350,6 @@ TEST_F(ContentLoFiDeciderTest, VideoDirectiveNotOverridden) {
|
| base::FieldTrialList::CreateFieldTrial(params::GetLoFiFieldTrialName(),
|
| "Enabled");
|
| // Verify the directive gets added even when LoFi is triggered.
|
| - test_context_->config()->SetNetworkProhibitivelySlow(true);
|
| std::unique_ptr<net::URLRequest> request =
|
| CreateRequestByType(content::RESOURCE_TYPE_MEDIA, false, true);
|
| net::HttpRequestHeaders headers;
|
| @@ -677,7 +361,6 @@ TEST_F(ContentLoFiDeciderTest, VideoDirectiveNotAdded) {
|
| base::FieldTrialList field_trial_list(nullptr);
|
| base::FieldTrialList::CreateFieldTrial(params::GetLoFiFieldTrialName(),
|
| "Enabled");
|
| - test_context_->config()->SetNetworkProhibitivelySlow(true);
|
| std::unique_ptr<net::URLRequest> request =
|
| CreateRequestByType(content::RESOURCE_TYPE_MEDIA, false, true);
|
| net::HttpRequestHeaders headers;
|
| @@ -691,7 +374,6 @@ TEST_F(ContentLoFiDeciderTest, VideoDirectiveDoesNotOverride) {
|
| base::FieldTrialList::CreateFieldTrial(params::GetLoFiFieldTrialName(),
|
| "Enabled");
|
| // Verify the directive gets added even when LoFi is triggered.
|
| - test_context_->config()->SetNetworkProhibitivelySlow(true);
|
| std::unique_ptr<net::URLRequest> request =
|
| CreateRequestByType(content::RESOURCE_TYPE_MEDIA, false, true);
|
| net::HttpRequestHeaders headers;
|
| @@ -749,17 +431,17 @@ TEST_F(ContentLoFiDeciderTest, RemoveAcceptTransformHeader) {
|
| EXPECT_FALSE(headers.HasHeader(chrome_proxy_accept_transform_header()));
|
| }
|
|
|
| -TEST_F(ContentLoFiDeciderTest, MaybeIgnoreBlacklist) {
|
| +TEST_F(ContentLoFiDeciderTest, MaybeForceLitePage) {
|
| base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
| command_line->InitFromArgv(command_line->argv());
|
| std::unique_ptr<data_reduction_proxy::ContentLoFiDecider> lofi_decider(
|
| new data_reduction_proxy::ContentLoFiDecider());
|
| net::HttpRequestHeaders headers;
|
| - lofi_decider->MaybeSetIgnorePreviewsBlacklistDirective(&headers);
|
| + lofi_decider->MaybeSetForceLitePageDirective(&headers);
|
| EXPECT_FALSE(headers.HasHeader(chrome_proxy_header()));
|
|
|
| headers.SetHeader(chrome_proxy_header(), "Foo");
|
| - lofi_decider->MaybeSetIgnorePreviewsBlacklistDirective(&headers);
|
| + lofi_decider->MaybeSetForceLitePageDirective(&headers);
|
| std::string header_value;
|
| headers.GetHeader(chrome_proxy_header(), &header_value);
|
| EXPECT_EQ("Foo", header_value);
|
| @@ -767,20 +449,47 @@ TEST_F(ContentLoFiDeciderTest, MaybeIgnoreBlacklist) {
|
| headers.RemoveHeader(chrome_proxy_header());
|
| command_line->AppendSwitch(switches::kEnableDataReductionProxyLitePage);
|
| headers.SetHeader(chrome_proxy_accept_transform_header(), "empty-image");
|
| - lofi_decider->MaybeSetIgnorePreviewsBlacklistDirective(&headers);
|
| + lofi_decider->MaybeSetForceLitePageDirective(&headers);
|
| + EXPECT_FALSE(headers.HasHeader(chrome_proxy_header()));
|
| +
|
| + headers.SetHeader(chrome_proxy_accept_transform_header(), "lite-page");
|
| + lofi_decider->MaybeSetForceLitePageDirective(&headers);
|
| + EXPECT_TRUE(headers.HasHeader(chrome_proxy_header()));
|
| + headers.GetHeader(chrome_proxy_header(), &header_value);
|
| + EXPECT_EQ("exp=force_lite_page", header_value);
|
| +
|
| + headers.SetHeader(chrome_proxy_header(), "Foo");
|
| + lofi_decider->MaybeSetForceLitePageDirective(&headers);
|
| + EXPECT_TRUE(headers.HasHeader(chrome_proxy_header()));
|
| + headers.GetHeader(chrome_proxy_header(), &header_value);
|
| + EXPECT_EQ("Foo, exp=force_lite_page", header_value);
|
| +}
|
| +
|
| +TEST_F(ContentLoFiDeciderTest, MaybeForceLitePageForCellularOnlyFlag) {
|
| + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
| + command_line->InitFromArgv(command_line->argv());
|
| + command_line->AppendSwitchASCII(
|
| + switches::kDataReductionProxyLoFi,
|
| + switches::kDataReductionProxyLoFiValueCellularOnly);
|
| + std::unique_ptr<data_reduction_proxy::ContentLoFiDecider> lofi_decider(
|
| + new data_reduction_proxy::ContentLoFiDecider());
|
| + net::HttpRequestHeaders headers;
|
| + headers.SetHeader(chrome_proxy_accept_transform_header(), "empty-image");
|
| + lofi_decider->MaybeSetForceLitePageDirective(&headers);
|
| EXPECT_FALSE(headers.HasHeader(chrome_proxy_header()));
|
|
|
| headers.SetHeader(chrome_proxy_accept_transform_header(), "lite-page");
|
| - lofi_decider->MaybeSetIgnorePreviewsBlacklistDirective(&headers);
|
| + lofi_decider->MaybeSetForceLitePageDirective(&headers);
|
| EXPECT_TRUE(headers.HasHeader(chrome_proxy_header()));
|
| + std::string header_value;
|
| headers.GetHeader(chrome_proxy_header(), &header_value);
|
| - EXPECT_EQ("exp=ignore_preview_blacklist", header_value);
|
| + EXPECT_EQ("exp=force_lite_page", header_value);
|
|
|
| headers.SetHeader(chrome_proxy_header(), "Foo");
|
| - lofi_decider->MaybeSetIgnorePreviewsBlacklistDirective(&headers);
|
| + lofi_decider->MaybeSetForceLitePageDirective(&headers);
|
| EXPECT_TRUE(headers.HasHeader(chrome_proxy_header()));
|
| headers.GetHeader(chrome_proxy_header(), &header_value);
|
| - EXPECT_EQ("Foo, exp=ignore_preview_blacklist", header_value);
|
| + EXPECT_EQ("Foo, exp=force_lite_page", header_value);
|
| }
|
|
|
| TEST_F(ContentLoFiDeciderTest, NoTransformDoesNotAddHeader) {
|
| @@ -788,7 +497,7 @@ TEST_F(ContentLoFiDeciderTest, NoTransformDoesNotAddHeader) {
|
| base::FieldTrialList::CreateFieldTrial(params::GetLoFiFieldTrialName(),
|
| "Enabled");
|
| std::unique_ptr<net::URLRequest> request =
|
| - CreateRequest(false, content::PREVIEWS_NO_TRANSFORM);
|
| + CreateRequest(false, content::PREVIEWS_OFF);
|
| net::HttpRequestHeaders headers;
|
| NotifyBeforeSendHeaders(&headers, request.get(), true);
|
| EXPECT_FALSE(headers.HasHeader(chrome_proxy_accept_transform_header()));
|
|
|