| Index: net/url_request/url_request_job_unittest.cc
|
| diff --git a/net/url_request/url_request_job_unittest.cc b/net/url_request/url_request_job_unittest.cc
|
| index f9ea1fe6170e34d08926435bb08cf97daeb3f0b4..e0d19b3068274d8c27ca1bb4a1539412e243ef0b 100644
|
| --- a/net/url_request/url_request_job_unittest.cc
|
| +++ b/net/url_request/url_request_job_unittest.cc
|
| @@ -76,6 +76,24 @@ const MockTransaction kRedirect_Transaction = {
|
| OK,
|
| };
|
|
|
| +const MockTransaction kEmptyBodyGzip_Transaction = {
|
| + "http://www.google.com/empty_body",
|
| + "GET",
|
| + base::Time(),
|
| + "",
|
| + LOAD_NORMAL,
|
| + "HTTP/1.1 200 OK",
|
| + "Content-Encoding: gzip\n",
|
| + base::Time(),
|
| + "",
|
| + TEST_MODE_NORMAL,
|
| + nullptr,
|
| + nullptr,
|
| + 0,
|
| + 0,
|
| + OK,
|
| +};
|
| +
|
| } // namespace
|
|
|
| TEST(URLRequestJob, TransactionNotifiedWhenDone) {
|
| @@ -187,4 +205,30 @@ TEST(URLRequestJob, TransactionNotCachedWhenNetworkDelegateRedirects) {
|
| RemoveMockTransaction(&kGZip_Transaction);
|
| }
|
|
|
| +// Makes sure that ReadRawDataComplete correctly updates request status before
|
| +// calling ReadFilteredData.
|
| +// Regression test for crbug.com/553300.
|
| +TEST(URLRequestJob, EmptyBodySkipFilter) {
|
| + MockNetworkLayer network_layer;
|
| + TestURLRequestContext context;
|
| + context.set_http_transaction_factory(&network_layer);
|
| +
|
| + TestDelegate d;
|
| + scoped_ptr<URLRequest> req(context.CreateRequest(
|
| + GURL(kEmptyBodyGzip_Transaction.url), DEFAULT_PRIORITY, &d));
|
| + AddMockTransaction(&kEmptyBodyGzip_Transaction);
|
| +
|
| + req->set_method("GET");
|
| + req->Start();
|
| +
|
| + base::MessageLoop::current()->Run();
|
| +
|
| + EXPECT_FALSE(d.request_failed());
|
| + EXPECT_EQ(200, req->GetResponseCode());
|
| + EXPECT_TRUE(d.data_received().empty());
|
| + EXPECT_TRUE(network_layer.done_reading_called());
|
| +
|
| + RemoveMockTransaction(&kEmptyBodyGzip_Transaction);
|
| +}
|
| +
|
| } // namespace net
|
|
|