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

Unified Diff: net/url_request/url_request_http_job_unittest.cc

Issue 1431723002: Add brotli content-encoding filter. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added BrotliSlowRead to u_r_j_unittest Created 5 years 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: net/url_request/url_request_http_job_unittest.cc
diff --git a/net/url_request/url_request_http_job_unittest.cc b/net/url_request/url_request_http_job_unittest.cc
index dca3e8e979e7c2daa3801960b541255a5e1c7ef9..0b49dfc77bd882887c078ab4f12856c082f33f9d 100644
--- a/net/url_request/url_request_http_job_unittest.cc
+++ b/net/url_request/url_request_http_job_unittest.cc
@@ -17,6 +17,7 @@
#include "net/base/request_priority.h"
#include "net/base/test_data_directory.h"
#include "net/cookies/cookie_store_test_helpers.h"
+#include "net/http/http_server_properties_impl.h"
#include "net/http/http_transaction_factory.h"
#include "net/http/http_transaction_test_util.h"
#include "net/socket/socket_test_util.h"
@@ -61,7 +62,7 @@ class URLRequestHttpJobTest : public ::testing::Test {
context_.set_http_transaction_factory(&network_layer_);
}
- bool TransactionAcceptsSdchEncoding() {
+ bool TransactionAcceptsSpecificEncoding(const std::string encoding) {
base::WeakPtr<MockNetworkTransaction> transaction(
network_layer_.last_transaction());
EXPECT_TRUE(transaction);
@@ -82,16 +83,34 @@ class URLRequestHttpJobTest : public ::testing::Test {
for (const std::string& token :
base::SplitString(encoding_headers, ", ", base::KEEP_WHITESPACE,
base::SPLIT_WANT_NONEMPTY)) {
- if (base::EqualsCaseInsensitiveASCII(token, "sdch"))
+ if (base::EqualsCaseInsensitiveASCII(token, encoding))
return true;
}
return false;
}
+ bool TransactionAcceptsSdchEncoding() {
+ return TransactionAcceptsSpecificEncoding("sdch");
+ }
+
+ bool TransactionAcceptsBrotliEncoding() {
+ return TransactionAcceptsSpecificEncoding("br");
+ }
+
void EnableSdch() {
context_.SetSdchManager(scoped_ptr<SdchManager>(new SdchManager).Pass());
}
+ void EnableBrotli() {
+ HttpNetworkSession::Params params;
+ params.enable_brotli = true;
+ params.http_server_properties = http_server_properties_.GetWeakPtr();
+ network_session_.reset(new HttpNetworkSession(params));
+ network_layer_.set_network_session(network_session_.get());
xunjieli 2015/12/02 18:26:31 These two tests should really follow other URLRequ
eustas 2015/12/03 12:32:07 Nice idea. Done!
+ }
+
+ HttpServerPropertiesImpl http_server_properties_;
+ scoped_ptr<HttpNetworkSession> network_session_;
MockNetworkLayer network_layer_;
TestURLRequestContext context_;
TestDelegate delegate_;
@@ -629,6 +648,26 @@ TEST_F(URLRequestHttpJobTest, SdchAdvertisementPost) {
EXPECT_FALSE(TransactionAcceptsSdchEncoding());
}
+TEST_F(URLRequestHttpJobTest, NoBrotliAdvertisementOverHttp) {
+ EnableBrotli();
+ req_->set_method("GET"); // Redundant with default.
+ scoped_refptr<TestURLRequestHttpJob> job(
+ new TestURLRequestHttpJob(req_.get()));
+ job->Start();
+ EXPECT_FALSE(TransactionAcceptsBrotliEncoding());
+}
+
+TEST_F(URLRequestHttpJobTest, BrotliAdvertisement) {
+ EnableBrotli();
+ req_ = context_.CreateRequest(GURL("https://www.example.com"),
+ DEFAULT_PRIORITY, &delegate_);
+ req_->set_method("GET"); // Redundant with default.
+ scoped_refptr<TestURLRequestHttpJob> job(
+ new TestURLRequestHttpJob(req_.get()));
+ job->Start();
+ EXPECT_TRUE(TransactionAcceptsBrotliEncoding());
+}
+
// This base class just serves to set up some things before the TestURLRequest
// constructor is called.
class URLRequestHttpJobWebSocketTestBase : public ::testing::Test {

Powered by Google App Engine
This is Rietveld 408576698