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

Unified Diff: chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc

Issue 2833523002: Adding opt out and previews type information to DRP pingback (Closed)
Patch Set: moved definition up Created 3 years, 8 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: chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc
diff --git a/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc
index 81203cf40337ed57832837d3ae11a22398f300fb..10de8f5e5715023ff32232c4bc9e81f0dfd90eff 100644
--- a/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc
@@ -52,22 +52,31 @@ class TestPingbackClient
public:
TestPingbackClient()
: data_reduction_proxy::DataReductionProxyPingbackClient(nullptr),
+ tab_identifier_key_(nullptr),
send_pingback_called_(false) {}
~TestPingbackClient() override {}
void SendPingback(
const data_reduction_proxy::DataReductionProxyData& data,
- const data_reduction_proxy::DataReductionProxyPageLoadTiming& timing)
- override {
+ const data_reduction_proxy::DataReductionProxyPageLoadTiming& timing,
+ const void* tab_identifier_key) override {
timing_.reset(
new data_reduction_proxy::DataReductionProxyPageLoadTiming(timing));
send_pingback_called_ = true;
+ data_ = data.DeepCopy();
+ tab_identifier_key_ = tab_identifier_key;
bengr 2017/04/20 17:36:18 Which cases will have no tab identifier key? Docum
RyanSturm 2017/04/20 20:25:44 Acknowledged.
}
data_reduction_proxy::DataReductionProxyPageLoadTiming* timing() const {
return timing_.get();
}
+ const data_reduction_proxy::DataReductionProxyData& data() const {
+ return *data_;
+ }
+
+ const void* tab_identifier_key() const { return tab_identifier_key_; }
+
bool send_pingback_called() const { return send_pingback_called_; }
void Reset() {
@@ -78,6 +87,8 @@ class TestPingbackClient
private:
std::unique_ptr<data_reduction_proxy::DataReductionProxyPageLoadTiming>
timing_;
+ std::unique_ptr<data_reduction_proxy::DataReductionProxyData> data_;
+ const void* tab_identifier_key_;
bool send_pingback_called_;
DISALLOW_COPY_AND_ASSIGN(TestPingbackClient);
@@ -178,6 +189,8 @@ class DataReductionProxyMetricsObserverTest
void ValidateTimes() {
EXPECT_TRUE(pingback_client_->send_pingback_called());
+ EXPECT_EQ(static_cast<void*>(web_contents()),
+ pingback_client_->tab_identifier_key());
EXPECT_EQ(timing_.navigation_start,
pingback_client_->timing()->navigation_start);
ExpectEqualOrUnset(timing_.first_contentful_paint,
@@ -193,6 +206,11 @@ class DataReductionProxyMetricsObserverTest
pingback_client_->timing()->first_image_paint);
}
+ void ValidateLoFiInPingback(bool lofi_expected) {
+ EXPECT_TRUE(pingback_client_->send_pingback_called());
+ EXPECT_EQ(lofi_expected, pingback_client_->data().lofi_received());
+ }
+
void ValidateHistograms() {
ValidateHistogramsForSuffix(
internal::kHistogramDOMContentLoadedEventFiredSuffix,
@@ -395,6 +413,21 @@ TEST_F(DataReductionProxyMetricsObserverTest, OnCompletePingback) {
timing_.load_event_start = base::nullopt;
RunTestAndNavigateToUntrackedUrl(true, false);
ValidateTimes();
+ ValidateLoFiInPingback(false);
+
+ ResetTest();
+
+ // Verify LoFi is tracked when a LoFi response is received.
+ page_load_metrics::ExtraRequestInfo resource = {
+ true /*was_cached*/, 1024 * 40 /* raw_body_bytes */,
+ false /* data_reduction_proxy_used*/, true /* was_lofi_response */,
+ 0 /* original_network_content_length */};
+
+ RunTest(true, false);
+ SimulateLoadedResource(resource);
+ NavigateToUntrackedUrl();
+ ValidateTimes();
+ ValidateLoFiInPingback(true);
ResetTest();
// Verify that when data reduction proxy was not used, SendPingback is not
@@ -420,19 +453,19 @@ TEST_F(DataReductionProxyMetricsObserverTest, ByteInformationCompression) {
page_load_metrics::ExtraRequestInfo resources[] = {
// Cached request.
{true /*was_cached*/, 1024 * 40 /* raw_body_bytes */,
- false /* data_reduction_proxy_used*/,
+ false /* data_reduction_proxy_used*/, false /* was_lofi_response */,
bengr 2017/04/20 17:36:18 you have two spaces after /*
RyanSturm 2017/04/20 20:25:44 Acknowledged.
0 /* original_network_content_length */},
// Uncached non-proxied request.
{false /*was_cached*/, 1024 * 40 /* raw_body_bytes */,
- false /* data_reduction_proxy_used*/,
+ false /* data_reduction_proxy_used*/, false /* was_lofi_response */,
1024 * 40 /* original_network_content_length */},
// Uncached proxied request with .1 compression ratio.
{false /*was_cached*/, 1024 * 40 /* raw_body_bytes */,
- true /* data_reduction_proxy_used*/,
+ true /* data_reduction_proxy_used*/, false /* was_lofi_response */,
1024 * 40 * 10 /* original_network_content_length */},
// Uncached proxied request with .5 compression ratio.
{false /*was_cached*/, 1024 * 40 /* raw_body_bytes */,
- true /* data_reduction_proxy_used*/,
+ true /* data_reduction_proxy_used*/, false /* was_lofi_response */,
1024 * 40 * 5 /* original_network_content_length */},
};
@@ -469,19 +502,19 @@ TEST_F(DataReductionProxyMetricsObserverTest, ByteInformationInflation) {
page_load_metrics::ExtraRequestInfo resources[] = {
// Cached request.
{true /*was_cached*/, 1024 * 40 /* raw_body_bytes */,
- false /* data_reduction_proxy_used*/,
+ false /* data_reduction_proxy_used*/, false /* was_lofi_response */,
0 /* original_network_content_length */},
// Uncached non-proxied request.
{false /*was_cached*/, 1024 * 40 /* raw_body_bytes */,
- false /* data_reduction_proxy_used*/,
+ false /* data_reduction_proxy_used*/, false /* was_lofi_response */,
1024 * 40 /* original_network_content_length */},
// Uncached proxied request with .1 compression ratio.
{false /*was_cached*/, 1024 * 40 * 10 /* raw_body_bytes */,
- true /* data_reduction_proxy_used*/,
+ true /* data_reduction_proxy_used*/, false /* was_lofi_response */,
1024 * 40 /* original_network_content_length */},
// Uncached proxied request with .5 compression ratio.
{false /*was_cached*/, 1024 * 40 * 5 /* raw_body_bytes */,
- true /* data_reduction_proxy_used*/,
+ true /* data_reduction_proxy_used*/, false /* was_lofi_response */,
1024 * 40 /* original_network_content_length */},
};

Powered by Google App Engine
This is Rietveld 408576698