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

Unified Diff: components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate_unittest.cc

Issue 1558553002: Lo-Fi snackbar should only be shown for the first q=low response of a page (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: test fix Created 4 years, 11 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/core/browser/data_reduction_proxy_network_delegate_unittest.cc
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate_unittest.cc
index 440053c95a2abaaf7a074460fac442df038b4f8c..20d9861cc0d6ad8fd556a1ac40fa6ac1df26549f 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate_unittest.cc
@@ -111,6 +111,21 @@ class TestLoFiDecider : public LoFiDecider {
bool should_request_lofi_resource_;
};
+class TestLoFiUIService : public LoFiUIService {
+ public:
+ TestLoFiUIService() : on_lofi_response_(false) {}
+ ~TestLoFiUIService() override {}
+
+ bool DidNotifyLoFiResponse() const { return on_lofi_response_; }
+
+ void OnLoFiReponseReceived(const net::URLRequest& request) override {
+ on_lofi_response_ = true;
+ }
+
+ private:
+ bool on_lofi_response_;
+};
+
} // namespace
class DataReductionProxyNetworkDelegateTest : public testing::Test {
@@ -142,6 +157,10 @@ class DataReductionProxyNetworkDelegateTest : public testing::Test {
scoped_ptr<TestLoFiDecider> lofi_decider(new TestLoFiDecider());
lofi_decider_ = lofi_decider.get();
io_data()->set_lofi_decider(std::move(lofi_decider));
+
+ scoped_ptr<TestLoFiUIService> lofi_ui_service(new TestLoFiUIService());
+ lofi_ui_service_ = lofi_ui_service.get();
+ io_data()->set_lofi_ui_service(std::move(lofi_ui_service));
}
const net::ProxyConfig& GetProxyConfig() const { return config_; }
@@ -165,6 +184,10 @@ class DataReductionProxyNetworkDelegateTest : public testing::Test {
test_context_->settings()->WasLoFiModeActiveOnMainFrame());
}
+ void VerifyDidNotifyLoFiResponse(bool lofi_response) {
+ EXPECT_EQ(lofi_response, lofi_ui_service_->DidNotifyLoFiResponse());
+ }
+
int64_t total_received_bytes() {
return data_reduction_proxy_network_delegate_->total_received_bytes_;
}
@@ -238,6 +261,7 @@ class DataReductionProxyNetworkDelegateTest : public testing::Test {
net::ProxyConfig config_;
net::NetworkDelegate* network_delegate_;
TestLoFiDecider* lofi_decider_;
+ TestLoFiUIService* lofi_ui_service_;
scoped_ptr<DataReductionProxyTestContext> test_context_;
scoped_ptr<DataReductionProxyBypassStats> bypass_stats_;
};
@@ -680,4 +704,40 @@ TEST_F(DataReductionProxyNetworkDelegateTest, OnCompletedInternal) {
total_original_received_bytes());
}
+TEST_F(DataReductionProxyNetworkDelegateTest, OnCompletedInternalLoFi) {
+ const int64_t kResponseContentLength = 140;
+ const int64_t kOriginalContentLength = 200;
+
+ set_network_delegate(data_reduction_proxy_network_delegate_.get());
+
+ // Enable Lo-Fi.
+ const struct {
+ bool lofi_response;
+ } tests[] = {
+ {false}, {true},
+ };
+
+ for (size_t i = 0; i < arraysize(tests); ++i) {
+ std::string raw_headers =
+ "HTTP/1.1 200 OK\n"
+ "Date: Wed, 28 Nov 2007 09:40:09 GMT\n"
+ "Expires: Mon, 24 Nov 2014 12:45:26 GMT\n"
+ "Via: 1.1 Chrome-Compression-Proxy\n"
+ "x-original-content-length: " +
+ base::Int64ToString(kOriginalContentLength) + "\n";
+
+ if (tests[i].lofi_response)
+ raw_headers += "Chrome-Proxy: q=low\n";
+
+ HeadersToRaw(&raw_headers);
+ std::string response_headers =
+ net::HttpUtil::ConvertHeadersBackToHTTPResponse(raw_headers);
+
+ FetchURLRequest(GURL("http://www.google.com/"), response_headers,
+ kResponseContentLength);
+
+ VerifyDidNotifyLoFiResponse(tests[i].lofi_response);
+ }
+}
+
} // namespace data_reduction_proxy

Powered by Google App Engine
This is Rietveld 408576698