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

Unified Diff: components/data_reduction_proxy/content/browser/content_lofi_decider_unittest.cc

Issue 2424263002: Added support for heavy page previews transformations (Closed)
Patch Set: Addressed comments Created 4 years, 2 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/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 aa6271fd26194ffa0e36ead00a6b6a756ed623a4..40121e2ff7048a898103b782511b966faf5a3caa 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
@@ -14,6 +14,7 @@
#include "base/message_loop/message_loop.h"
#include "base/metrics/field_trial.h"
#include "base/strings/string_util.h"
+#include "base/strings/stringprintf.h"
#include "build/build_config.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_config_test_utils.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_data.h"
@@ -167,23 +168,36 @@ 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);
- EXPECT_EQ(expected_lofi_used,
- header_value.find(empty_image_directive()) != std::string::npos);
+ 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());
+ }
}
- static void VerifyLoFiPreviewHeader(bool expected_lofi_preview_used,
- const net::HttpRequestHeaders& headers) {
+ 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);
- EXPECT_EQ(expected_lofi_preview_used,
- header_value.find(lite_page_directive()) != std::string::npos);
+ 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());
+ }
}
static void VerifyVideoHeader(bool expected_compressed_video_used,
@@ -198,12 +212,12 @@ class ContentLoFiDeciderTest : public testing::Test {
}
static void VerifyLitePageIgnoreBlacklistHeader(
- bool expected_lite_page_used,
+ bool expected_blacklist_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_lite_page_used,
+ EXPECT_EQ(expected_blacklist_directive_added,
header_value.find(
chrome_proxy_lite_page_ignore_blacklist_directive()) !=
std::string::npos);
@@ -243,8 +257,8 @@ TEST_F(ContentLoFiDeciderTest, LoFiFlags) {
// No flags or field trials. The Lo-Fi header should not be added.
net::HttpRequestHeaders headers;
NotifyBeforeSendHeaders(&headers, request.get(), true);
- VerifyLoFiHeader(false, headers);
- VerifyLitePageHeader(false, headers);
+ 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
@@ -254,17 +268,12 @@ TEST_F(ContentLoFiDeciderTest, LoFiFlags) {
switches::kDataReductionProxyLoFiValueAlwaysOn);
headers.Clear();
NotifyBeforeSendHeaders(&headers, request.get(), true);
- VerifyLoFiHeader(tests[i].is_using_lofi && !tests[i].is_using_lite_page &&
- !tests[i].is_main_frame,
- headers);
- VerifyLitePageHeader(tests[i].is_using_lofi &&
- tests[i].is_using_lite_page &&
- tests[i].is_main_frame,
- headers);
- VerifyLitePageIgnoreBlacklistHeader(tests[i].is_using_lofi &&
- tests[i].is_using_lite_page &&
- tests[i].is_main_frame,
- headers);
+ VerifyLoFiHeader(!tests[i].is_using_lite_page && !tests[i].is_main_frame,
+ !tests[i].is_using_lofi, headers);
+ VerifyLitePageHeader(tests[i].is_using_lite_page && tests[i].is_main_frame,
+ !tests[i].is_using_lofi, 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.
@@ -277,9 +286,9 @@ TEST_F(ContentLoFiDeciderTest, LoFiFlags) {
tests[i].is_using_lofi);
headers.Clear();
NotifyBeforeSendHeaders(&headers, request.get(), true);
- VerifyLoFiHeader(tests[i].is_using_lofi && !tests[i].is_using_lite_page,
+ VerifyLoFiHeader(!tests[i].is_using_lite_page, !tests[i].is_using_lofi,
headers);
- VerifyLitePageHeader(false, headers);
+ VerifyLitePageHeader(false, false, headers);
VerifyLitePageIgnoreBlacklistHeader(false, headers);
// The Lo-Fi flag is "cellular-only" and Lo-Fi is being used. Lo-Fi header
@@ -289,9 +298,9 @@ TEST_F(ContentLoFiDeciderTest, LoFiFlags) {
switches::kDataReductionProxyLoFiValueCellularOnly);
headers.Clear();
NotifyBeforeSendHeaders(&headers, request.get(), true);
- VerifyLoFiHeader(tests[i].is_using_lofi && !tests[i].is_using_lite_page,
+ VerifyLoFiHeader(!tests[i].is_using_lite_page, !tests[i].is_using_lofi,
headers);
- VerifyLitePageHeader(false, 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
@@ -305,9 +314,9 @@ TEST_F(ContentLoFiDeciderTest, LoFiFlags) {
switches::kDataReductionProxyLoFiValueSlowConnectionsOnly);
headers.Clear();
NotifyBeforeSendHeaders(&headers, request.get(), true);
- VerifyLoFiHeader(tests[i].is_using_lofi && !tests[i].is_using_lite_page,
+ VerifyLoFiHeader(!tests[i].is_using_lite_page, !tests[i].is_using_lofi,
headers);
- VerifyLitePageHeader(false, 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
@@ -375,8 +384,8 @@ TEST_F(ContentLoFiDeciderTest, LoFiEnabledFieldTrial) {
tests[i].resource_type == content::RESOURCE_TYPE_MEDIA ||
tests[i].resource_type == content::RESOURCE_TYPE_CSP_REPORT);
- VerifyLoFiHeader(tests[i].is_using_lofi && is_lofi_resource_type, headers);
- VerifyLoFiPreviewHeader(false, headers);
+ VerifyLoFiHeader(is_lofi_resource_type, !tests[i].is_using_lofi, headers);
+ VerifyLitePageHeader(false, false, headers);
VerifyLitePageIgnoreBlacklistHeader(false, headers);
DataReductionProxyData* data = DataReductionProxyData::GetData(*request);
EXPECT_EQ(tests[i].is_using_lofi, data->lofi_requested()) << i;
@@ -398,8 +407,8 @@ TEST_F(ContentLoFiDeciderTest, LoFiControlFieldTrial) {
CreateRequest(tests[i].is_main_frame, tests[i].is_using_lofi);
net::HttpRequestHeaders headers;
NotifyBeforeSendHeaders(&headers, request.get(), true);
- VerifyLoFiHeader(false, headers);
- VerifyLitePageHeader(false, headers);
+ 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;
@@ -423,8 +432,8 @@ TEST_F(ContentLoFiDeciderTest, LitePageFieldTrial) {
CreateRequest(tests[i].is_main_frame, tests[i].is_using_lofi);
net::HttpRequestHeaders headers;
NotifyBeforeSendHeaders(&headers, request.get(), true);
- VerifyLoFiHeader(false, headers);
- VerifyLitePageHeader(tests[i].is_using_lofi && tests[i].is_main_frame,
+ VerifyLoFiHeader(false, false, headers);
+ VerifyLitePageHeader(tests[i].is_main_frame, !tests[i].is_using_lofi,
headers);
VerifyLitePageIgnoreBlacklistHeader(false, headers);
DataReductionProxyData* data = DataReductionProxyData::GetData(*request);
@@ -454,7 +463,6 @@ TEST_F(ContentLoFiDeciderTest, AutoLoFi) {
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].network_prohibitively_slow &&
!tests[i].is_main_frame;
base::FieldTrialList field_trial_list(nullptr);
@@ -476,7 +484,8 @@ TEST_F(ContentLoFiDeciderTest, AutoLoFi) {
net::HttpRequestHeaders headers;
NotifyBeforeSendHeaders(&headers, request.get(), true);
- VerifyLoFiHeader(expect_lofi_header, headers);
+ VerifyLoFiHeader(expect_lofi_header, !tests[i].network_prohibitively_slow,
+ headers);
}
}
@@ -529,7 +538,7 @@ TEST_F(ContentLoFiDeciderTest, SlowConnectionsFlag) {
net::HttpRequestHeaders headers;
NotifyBeforeSendHeaders(&headers, request.get(), true);
- VerifyLoFiHeader(expect_lofi_header, headers);
+ VerifyLoFiHeader(expect_lofi_header, false, headers);
}
}

Powered by Google App Engine
This is Rietveld 408576698