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

Unified Diff: content/browser/loader/resource_loader_unittest.cc

Issue 2557433005: Revert of Fix a pair of ResourceLoader cancellation/error bugs. (Closed)
Patch Set: Created 4 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
« no previous file with comments | « content/browser/loader/resource_loader.cc ('k') | content/browser/loader/test_resource_handler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/loader/resource_loader_unittest.cc
diff --git a/content/browser/loader/resource_loader_unittest.cc b/content/browser/loader/resource_loader_unittest.cc
index 7a65e17369c3a6dbf3e5b801f9c8c0e179be421e..6ca2ac10da28978c4b8678b8264b62465151aa4a 100644
--- a/content/browser/loader/resource_loader_unittest.cc
+++ b/content/browser/loader/resource_loader_unittest.cc
@@ -22,7 +22,6 @@
#include "content/browser/browser_thread_impl.h"
#include "content/browser/loader/redirect_to_file_resource_handler.h"
#include "content/browser/loader/resource_loader_delegate.h"
-#include "content/browser/loader/test_resource_handler.h"
#include "content/public/browser/client_certificate_delegate.h"
#include "content/public/browser/resource_request_info.h"
#include "content/public/common/content_paths.h"
@@ -50,7 +49,6 @@
#include "net/test/cert_test_util.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
#include "net/test/test_data_directory.h"
-#include "net/test/url_request/url_request_failed_job.h"
#include "net/url_request/url_request.h"
#include "net/url_request/url_request_filter.h"
#include "net/url_request/url_request_interceptor.h"
@@ -267,6 +265,177 @@
};
// Arbitrary read buffer size.
+const int kReadBufSize = 1024;
+
+// Dummy implementation of ResourceHandler, instance of which is needed to
+// initialize ResourceLoader.
+class ResourceHandlerStub : public ResourceHandler {
+ public:
+ explicit ResourceHandlerStub(net::URLRequest* request)
+ : ResourceHandler(request),
+ read_buffer_(new net::IOBuffer(kReadBufSize)),
+ defer_request_on_will_start_(false),
+ expect_reads_(true),
+ cancel_on_read_completed_(false),
+ defer_eof_(false),
+ received_on_will_read_(false),
+ received_eof_(false),
+ received_response_completed_(false),
+ received_request_redirected_(false),
+ total_bytes_downloaded_(0),
+ observed_effective_connection_type_(
+ net::EFFECTIVE_CONNECTION_TYPE_UNKNOWN) {}
+
+ // If true, defers the resource load in OnWillStart.
+ void set_defer_request_on_will_start(bool defer_request_on_will_start) {
+ defer_request_on_will_start_ = defer_request_on_will_start;
+ }
+
+ // If true, expect OnWillRead / OnReadCompleted pairs for handling
+ // data. Otherwise, expect OnDataDownloaded.
+ void set_expect_reads(bool expect_reads) { expect_reads_ = expect_reads; }
+
+ // If true, cancel the request in OnReadCompleted by returning false.
+ void set_cancel_on_read_completed(bool cancel_on_read_completed) {
+ cancel_on_read_completed_ = cancel_on_read_completed;
+ }
+
+ // If true, cancel the request in OnReadCompleted by returning false.
+ void set_defer_eof(bool defer_eof) { defer_eof_ = defer_eof; }
+
+ const GURL& start_url() const { return start_url_; }
+ ResourceResponse* response() const { return response_.get(); }
+ ResourceResponse* redirect_response() const {
+ return redirect_response_.get();
+ }
+ bool received_response_completed() const {
+ return received_response_completed_;
+ }
+ bool received_request_redirected() const {
+ return received_request_redirected_;
+ }
+ const net::URLRequestStatus& status() const { return status_; }
+ int total_bytes_downloaded() const { return total_bytes_downloaded_; }
+
+ net::EffectiveConnectionType observed_effective_connection_type() const {
+ return observed_effective_connection_type_;
+ }
+
+ void Resume() {
+ controller()->Resume();
+ }
+
+ bool OnRequestRedirected(const net::RedirectInfo& redirect_info,
+ ResourceResponse* response,
+ bool* defer) override {
+ redirect_response_ = response;
+ received_request_redirected_ = true;
+ return true;
+ }
+
+ bool OnResponseStarted(ResourceResponse* response, bool* defer) override {
+ EXPECT_FALSE(response_.get());
+ response_ = response;
+ observed_effective_connection_type_ =
+ response->head.effective_connection_type;
+ return true;
+ }
+
+ bool OnWillStart(const GURL& url, bool* defer) override {
+ EXPECT_TRUE(start_url_.is_empty());
+ start_url_ = url;
+ if (defer_request_on_will_start_) {
+ *defer = true;
+ deferred_run_loop_.Quit();
+ }
+ return true;
+ }
+
+ bool OnWillRead(scoped_refptr<net::IOBuffer>* buf,
+ int* buf_size,
+ int min_size) override {
+ EXPECT_TRUE(expect_reads_);
+ EXPECT_FALSE(received_on_will_read_);
+ EXPECT_FALSE(received_eof_);
+ EXPECT_FALSE(received_response_completed_);
+
+ *buf = read_buffer_;
+ *buf_size = kReadBufSize;
+ received_on_will_read_ = true;
+ return true;
+ }
+
+ bool OnReadCompleted(int bytes_read, bool* defer) override {
+ EXPECT_TRUE(received_on_will_read_);
+ EXPECT_TRUE(expect_reads_);
+ EXPECT_FALSE(received_response_completed_);
+
+ if (bytes_read == 0) {
+ received_eof_ = true;
+ if (defer_eof_) {
+ defer_eof_ = false;
+ *defer = true;
+ deferred_run_loop_.Quit();
+ }
+ }
+
+ // Need another OnWillRead() call before seeing an OnReadCompleted().
+ received_on_will_read_ = false;
+
+ return !cancel_on_read_completed_;
+ }
+
+ void OnResponseCompleted(const net::URLRequestStatus& status,
+ bool* defer) override {
+ EXPECT_FALSE(received_response_completed_);
+ if (status.is_success() && expect_reads_)
+ EXPECT_TRUE(received_eof_);
+
+ received_response_completed_ = true;
+ status_ = status;
+ response_completed_run_loop_.Quit();
+ }
+
+ void OnDataDownloaded(int bytes_downloaded) override {
+ EXPECT_FALSE(expect_reads_);
+ total_bytes_downloaded_ += bytes_downloaded;
+ }
+
+ // Waits for the the first deferred step to run, if there is one.
+ void WaitForDeferredStep() {
+ DCHECK(defer_request_on_will_start_ || defer_eof_);
+ deferred_run_loop_.Run();
+ }
+
+ // Waits until the response has completed.
+ void WaitForResponseComplete() {
+ response_completed_run_loop_.Run();
+ EXPECT_TRUE(received_response_completed_);
+ }
+
+ private:
+ scoped_refptr<net::IOBuffer> read_buffer_;
+
+ bool defer_request_on_will_start_;
+ bool expect_reads_;
+ bool cancel_on_read_completed_;
+ bool defer_eof_;
+
+ GURL start_url_;
+ scoped_refptr<ResourceResponse> response_;
+ scoped_refptr<ResourceResponse> redirect_response_;
+ bool received_on_will_read_;
+ bool received_eof_;
+ bool received_response_completed_;
+ bool received_request_redirected_;
+ net::URLRequestStatus status_;
+ int total_bytes_downloaded_;
+ base::RunLoop deferred_run_loop_;
+ base::RunLoop response_completed_run_loop_;
+ std::unique_ptr<base::RunLoop> wait_for_progress_run_loop_;
+ net::EffectiveConnectionType observed_effective_connection_type_;
+};
+
// Test browser client that captures calls to SelectClientCertificates and
// records the arguments of the most recent call for later inspection.
class SelectCertificateBrowserClient : public TestContentBrowserClient {
@@ -396,21 +565,14 @@
test_url_request_context_.Init();
}
- // URL with a response body of test_data().
- GURL test_direct_url() const { return net::URLRequestTestJob::test_url_1(); }
-
- // URL that redirects to test_direct_url(). The ResourceLoader is set up to
- // use this URL by default.
- GURL test_redirect_url() const {
- return net::URLRequestTestJob::test_url_redirect_to_url_1();
+ GURL test_url() const { return net::URLRequestTestJob::test_url_1(); }
+
+ TestNetworkQualityEstimator* network_quality_estimator() {
+ return &network_quality_estimator_;
}
std::string test_data() const {
return net::URLRequestTestJob::test_data_1();
- }
-
- TestNetworkQualityEstimator* network_quality_estimator() {
- return &network_quality_estimator_;
}
virtual std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler>
@@ -419,7 +581,7 @@
}
virtual std::unique_ptr<ResourceHandler> WrapResourceHandler(
- std::unique_ptr<TestResourceHandler> leaf_handler,
+ std::unique_ptr<ResourceHandlerStub> leaf_handler,
net::URLRequest* request) {
return std::move(leaf_handler);
}
@@ -442,8 +604,8 @@
rfh->GetRoutingID(), belongs_to_main_frame,
false /* parent_is_main_frame */, true /* allow_download */,
false /* is_async */, false /* is_using_lofi_ */);
- std::unique_ptr<TestResourceHandler> resource_handler(
- new TestResourceHandler(nullptr, nullptr));
+ std::unique_ptr<ResourceHandlerStub> resource_handler(
+ new ResourceHandlerStub(request.get()));
raw_ptr_resource_handler_ = resource_handler.get();
loader_.reset(new ResourceLoader(
std::move(request),
@@ -451,23 +613,19 @@
this));
}
- void SetUpResourceLoaderForUrl(const GURL& test_url) {
- std::unique_ptr<net::URLRequest> request(
- resource_context_.GetRequestContext()->CreateRequest(
- test_url, net::DEFAULT_PRIORITY, nullptr /* delegate */));
- SetUpResourceLoader(std::move(request), RESOURCE_TYPE_MAIN_FRAME, true);
- }
-
void SetUp() override {
job_factory_.SetProtocolHandler("test", CreateProtocolHandler());
- net::URLRequestFailedJob::AddUrlHandler();
browser_context_.reset(new TestBrowserContext());
scoped_refptr<SiteInstance> site_instance =
SiteInstance::Create(browser_context_.get());
web_contents_.reset(
TestWebContents::Create(browser_context_.get(), site_instance.get()));
- SetUpResourceLoaderForUrl(test_redirect_url());
+
+ std::unique_ptr<net::URLRequest> request(
+ resource_context_.GetRequestContext()->CreateRequest(
+ test_url(), net::DEFAULT_PRIORITY, nullptr /* delegate */));
+ SetUpResourceLoader(std::move(request), RESOURCE_TYPE_MAIN_FRAME, true);
}
void TearDown() override {
@@ -475,10 +633,6 @@
// |rvh_test_enabler_| and |thread_bundle_|. This lets asynchronous cleanup
// tasks complete.
web_contents_.reset();
-
- // Clean up handlers.
- net::URLRequestFilter::GetInstance()->ClearHandlers();
-
base::RunLoop().RunUntilIdle();
}
@@ -494,36 +648,14 @@
}
bool HandleExternalProtocol(ResourceLoader* loader,
const GURL& url) override {
- EXPECT_EQ(loader, loader_.get());
return false;
}
- void DidStartRequest(ResourceLoader* loader) override {
- EXPECT_EQ(loader, loader_.get());
- EXPECT_EQ(0, did_finish_loading_);
- EXPECT_EQ(0, did_start_request_);
- ++did_start_request_;
- }
+ void DidStartRequest(ResourceLoader* loader) override {}
void DidReceiveRedirect(ResourceLoader* loader,
const GURL& new_url,
- ResourceResponse* response) override {
- EXPECT_EQ(loader, loader_.get());
- EXPECT_EQ(0, did_finish_loading_);
- EXPECT_EQ(0, did_receive_response_);
- EXPECT_EQ(1, did_start_request_);
- ++did_received_redirect_;
- }
- void DidReceiveResponse(ResourceLoader* loader) override {
- EXPECT_EQ(loader, loader_.get());
- EXPECT_EQ(0, did_finish_loading_);
- EXPECT_EQ(0, did_receive_response_);
- EXPECT_EQ(1, did_start_request_);
- ++did_receive_response_;
- }
- void DidFinishLoading(ResourceLoader* loader) override {
- EXPECT_EQ(loader, loader_.get());
- EXPECT_EQ(0, did_finish_loading_);
- ++did_finish_loading_;
- }
+ ResourceResponse* response) override {}
+ void DidReceiveResponse(ResourceLoader* loader) override {}
+ void DidFinishLoading(ResourceLoader* loader) override {}
std::unique_ptr<net::ClientCertStore> CreateClientCertStore(
ResourceLoader* loader) override {
return std::move(dummy_cert_store_);
@@ -531,12 +663,6 @@
TestBrowserThreadBundle thread_bundle_;
RenderViewHostTestEnabler rvh_test_enabler_;
-
- // Record which ResourceDispatcherHostDelegate methods have been invoked.
- int did_start_request_ = 0;
- int did_received_redirect_ = 0;
- int did_receive_response_ = 0;
- int did_finish_loading_ = 0;
net::URLRequestJobFactoryImpl job_factory_;
TestNetworkQualityEstimator network_quality_estimator_;
@@ -547,7 +673,7 @@
std::unique_ptr<net::ClientCertStore> dummy_cert_store_;
// The ResourceLoader owns the URLRequest and the ResourceHandler.
- TestResourceHandler* raw_ptr_resource_handler_;
+ ResourceHandlerStub* raw_ptr_resource_handler_;
net::URLRequest* raw_ptr_to_request_;
std::unique_ptr<ResourceLoader> loader_;
};
@@ -557,12 +683,6 @@
std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler>
CreateProtocolHandler() override {
return base::WrapUnique(new MockClientCertJobProtocolHandler);
- }
-
- void SetUp() override {
- ResourceLoaderTest::SetUp();
- // These tests don't expect any redirects.
- SetUpResourceLoaderForUrl(test_direct_url());
}
};
@@ -620,7 +740,7 @@
loader_->StartRequest();
test_client.WaitForSelectCertificate();
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
+ EXPECT_FALSE(raw_ptr_resource_handler_->received_response_completed());
// Check if the test store was queried against correct |cert_authorities|.
EXPECT_EQ(1, store_request_count);
@@ -634,8 +754,8 @@
// Continue the request.
test_client.ContinueWithCertificate(nullptr);
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error());
+ raw_ptr_resource_handler_->WaitForResponseComplete();
+ EXPECT_EQ(net::OK, raw_ptr_resource_handler_->status().error());
// Restore the original content browser client.
SetBrowserClientForTesting(old_client);
@@ -659,8 +779,8 @@
// Continue the request.
test_client.ContinueWithCertificate(nullptr);
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error());
+ raw_ptr_resource_handler_->WaitForResponseComplete();
+ EXPECT_EQ(net::OK, raw_ptr_resource_handler_->status().error());
// Restore the original content browser client.
SetBrowserClientForTesting(old_client);
@@ -683,9 +803,9 @@
// Cancel the request.
test_client.CancelCertificateSelection();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
+ raw_ptr_resource_handler_->WaitForResponseComplete();
EXPECT_EQ(net::ERR_SSL_CLIENT_AUTH_CERT_NEEDED,
- raw_ptr_resource_handler_->final_status().error());
+ raw_ptr_resource_handler_->status().error());
// Restore the original content browser client.
SetBrowserClientForTesting(old_client);
@@ -702,12 +822,12 @@
// Start the request and wait for it to complete.
loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
+ raw_ptr_resource_handler_->WaitForResponseComplete();
// Check that SelectClientCertificate wasn't called and the request aborted.
EXPECT_EQ(0, test_client.call_count());
EXPECT_EQ(net::ERR_SSL_CLIENT_AUTH_CERT_NEEDED,
- raw_ptr_resource_handler_->final_status().error());
+ raw_ptr_resource_handler_->status().error());
// Restore the original content browser client.
SetBrowserClientForTesting(old_client);
@@ -730,433 +850,41 @@
base::RunLoop().RunUntilIdle();
}
-// Test the case the ResourceHandler defers nothing.
-TEST_F(ResourceLoaderTest, SyncResourceHandler) {
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- EXPECT_EQ(1, did_start_request_);
- EXPECT_EQ(1, did_received_redirect_);
- EXPECT_EQ(1, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
- EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error());
- EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
-}
-
-// Test the case the ResourceHandler defers everything.
-TEST_F(ResourceLoaderTest, AsyncResourceHandler) {
- raw_ptr_resource_handler_->set_defer_on_will_start(true);
- raw_ptr_resource_handler_->set_defer_on_request_redirected(true);
- raw_ptr_resource_handler_->set_defer_on_response_started(true);
- raw_ptr_resource_handler_->set_defer_on_read_completed(true);
- raw_ptr_resource_handler_->set_defer_on_read_eof(true);
- raw_ptr_resource_handler_->set_defer_on_response_completed(true);
-
- // Start and run until OnWillStart.
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilDeferred();
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
-
- // Spinning the message loop should not advance the state further.
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(0, did_start_request_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
-
- // Resume and run until OnRequestRedirected.
- raw_ptr_resource_handler_->Resume();
- raw_ptr_resource_handler_->WaitUntilDeferred();
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called());
-
- // Spinning the message loop should not advance the state further.
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, did_received_redirect_);
- EXPECT_EQ(0, did_receive_response_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
-
- // Resume and run until OnResponseStarted.
- raw_ptr_resource_handler_->Resume();
- raw_ptr_resource_handler_->WaitUntilDeferred();
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called());
-
- // Spinning the message loop should not advance the state further.
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, did_receive_response_);
- EXPECT_EQ(0, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
-
- // Resume and run until OnReadCompleted.
- raw_ptr_resource_handler_->Resume();
- raw_ptr_resource_handler_->WaitUntilDeferred();
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
-
- // Spinning the message loop should not advance the state further.
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_read_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
-
- // Resume and run until the final 0-byte read, signalling EOF.
- raw_ptr_resource_handler_->Resume();
- raw_ptr_resource_handler_->WaitUntilDeferred();
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof());
-
- // Spinning the message loop should not advance the state further.
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
- EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
-
- // Resume and run until OnResponseCompleted is called, which again defers the
- // request.
- raw_ptr_resource_handler_->Resume();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- EXPECT_EQ(0, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
- EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error());
- EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
-
- // Resume and run until all pending tasks. Note that OnResponseCompleted was
- // invoked in the previous section, so can't use RunUntilCompleted().
- raw_ptr_resource_handler_->Resume();
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
-
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
- EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error());
- EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
-}
-
-TEST_F(ResourceLoaderTest, SyncCancelOnWillStart) {
- raw_ptr_resource_handler_->set_on_will_start_result(false);
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(0, did_start_request_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
-
- EXPECT_EQ(net::ERR_ABORTED,
- raw_ptr_resource_handler_->final_status().error());
- EXPECT_EQ("", raw_ptr_resource_handler_->body());
-}
-
-TEST_F(ResourceLoaderTest, SyncCancelOnRequestRedirected) {
- raw_ptr_resource_handler_->set_on_request_redirected_result(false);
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, did_received_redirect_);
- EXPECT_EQ(0, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
-
- EXPECT_EQ(net::ERR_ABORTED,
- raw_ptr_resource_handler_->final_status().error());
- EXPECT_EQ("", raw_ptr_resource_handler_->body());
-}
-
-TEST_F(ResourceLoaderTest, SyncCancelOnResponseStarted) {
- raw_ptr_resource_handler_->set_on_response_started_result(false);
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
-
- EXPECT_EQ(net::ERR_ABORTED,
- raw_ptr_resource_handler_->final_status().error());
- EXPECT_EQ("", raw_ptr_resource_handler_->body());
-}
-
-TEST_F(ResourceLoaderTest, SyncCancelOnWillRead) {
- raw_ptr_resource_handler_->set_on_will_read_result(false);
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_read_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
-
- EXPECT_EQ(net::ERR_ABORTED,
- raw_ptr_resource_handler_->final_status().error());
- EXPECT_EQ("", raw_ptr_resource_handler_->body());
-}
-
-TEST_F(ResourceLoaderTest, SyncCancelOnReadCompleted) {
- raw_ptr_resource_handler_->set_on_read_completed_result(false);
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
-
- EXPECT_EQ(net::ERR_ABORTED,
- raw_ptr_resource_handler_->final_status().error());
- EXPECT_LT(0u, raw_ptr_resource_handler_->body().size());
-}
-
-// This test is broken because ResourceLoader assumes when
-// URLRequest::was_pending() is false, canceling the request will not result in
-// a completion notification. This isn't the case - whether or not there's a
-// notification depends on whether URLRequestJob::NotifyDone() has been invoked
-// yet - something the URLRequest doesn't even know about, itself. As a result,
-// the ResourceLoader is notified of cancellation twice.
-// TODO(mmenke): Fix this.
-TEST_F(ResourceLoaderTest, DISABLED_SyncCancelOnReceivedEof) {
- raw_ptr_resource_handler_->set_on_on_read_eof_result(false);
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
-
- EXPECT_EQ(net::ERR_ABORTED,
- raw_ptr_resource_handler_->final_status().error());
- EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
-}
-
-TEST_F(ResourceLoaderTest, AsyncCancelOnWillStart) {
- raw_ptr_resource_handler_->set_defer_on_will_start(true);
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilDeferred();
- raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED);
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(0, did_start_request_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
-
- EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
- EXPECT_EQ("", raw_ptr_resource_handler_->body());
-}
-
-TEST_F(ResourceLoaderTest, AsyncCancelOnRequestRedirected) {
- raw_ptr_resource_handler_->set_defer_on_request_redirected(true);
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilDeferred();
- raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED);
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, did_received_redirect_);
- EXPECT_EQ(0, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
-
- EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
- EXPECT_EQ("", raw_ptr_resource_handler_->body());
-}
-
-TEST_F(ResourceLoaderTest, AsyncCancelOnResponseStarted) {
- raw_ptr_resource_handler_->set_defer_on_response_started(true);
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilDeferred();
- raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED);
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
-
- EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
- EXPECT_EQ("", raw_ptr_resource_handler_->body());
-}
-
-TEST_F(ResourceLoaderTest, AsyncCancelOnReadCompleted) {
- raw_ptr_resource_handler_->set_defer_on_read_completed(true);
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilDeferred();
- raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED);
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
-
- EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
- EXPECT_LT(0u, raw_ptr_resource_handler_->body().size());
-}
-
-TEST_F(ResourceLoaderTest, AsyncCancelOnReceivedEof) {
- raw_ptr_resource_handler_->set_defer_on_read_eof(true);
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilDeferred();
- // Have to spin the message loop for the test to pass - see comment on sync
- // version of this test for explanation.
- // TODO(mmenke): Remove this line once that's fixed.
- base::RunLoop().RunUntilIdle();
- raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED);
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
-
- EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
- EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
-}
-
-TEST_F(ResourceLoaderTest, RequestFailsOnStart) {
- SetUpResourceLoaderForUrl(
- net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase(
- net::URLRequestFailedJob::START, net::ERR_FAILED));
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(0, did_received_redirect_);
- EXPECT_EQ(0, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
- EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
- EXPECT_EQ("", raw_ptr_resource_handler_->body());
-}
-
-TEST_F(ResourceLoaderTest, RequestFailsOnReadSync) {
- SetUpResourceLoaderForUrl(
- net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase(
- net::URLRequestFailedJob::READ_SYNC, net::ERR_FAILED));
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(0, did_received_redirect_);
- EXPECT_EQ(1, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
- EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
- EXPECT_EQ("", raw_ptr_resource_handler_->body());
-}
-
-TEST_F(ResourceLoaderTest, RequestFailsOnReadAsync) {
- SetUpResourceLoaderForUrl(
- net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase(
- net::URLRequestFailedJob::READ_ASYNC, net::ERR_FAILED));
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(0, did_received_redirect_);
- EXPECT_EQ(1, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
- EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
- EXPECT_EQ("", raw_ptr_resource_handler_->body());
-}
-
-TEST_F(ResourceLoaderTest, OutOfBandCancelDuringStart) {
- SetUpResourceLoaderForUrl(
- net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase(
- net::URLRequestFailedJob::START, net::ERR_IO_PENDING));
-
- loader_->StartRequest();
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
-
- raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED);
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
-
- EXPECT_EQ(0, did_received_redirect_);
- EXPECT_EQ(0, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
- EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
- EXPECT_EQ("", raw_ptr_resource_handler_->body());
-}
-
-TEST_F(ResourceLoaderTest, OutOfBandCancelDuringRead) {
- SetUpResourceLoaderForUrl(
- net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase(
- net::URLRequestFailedJob::READ_SYNC, net::ERR_IO_PENDING));
-
- loader_->StartRequest();
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
-
- raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED);
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- EXPECT_EQ(0, did_received_redirect_);
- EXPECT_EQ(1, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
- EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
- EXPECT_EQ("", raw_ptr_resource_handler_->body());
-}
-
-TEST_F(ResourceLoaderTest, ResumeCanceledRequest) {
- raw_ptr_resource_handler_->set_defer_on_will_start(true);
+TEST_F(ResourceLoaderTest, ResumeCancelledRequest) {
+ raw_ptr_resource_handler_->set_defer_request_on_will_start(true);
loader_->StartRequest();
loader_->CancelRequest(true);
static_cast<ResourceController*>(loader_.get())->Resume();
+}
+
+// Tests that no invariants are broken if a ResourceHandler cancels during
+// OnReadCompleted.
+TEST_F(ResourceLoaderTest, CancelOnReadCompleted) {
+ raw_ptr_resource_handler_->set_cancel_on_read_completed(true);
+
+ loader_->StartRequest();
+ raw_ptr_resource_handler_->WaitForResponseComplete();
+
+ EXPECT_EQ(test_url(), raw_ptr_resource_handler_->start_url());
+ EXPECT_EQ(net::URLRequestStatus::CANCELED,
+ raw_ptr_resource_handler_->status().status());
+}
+
+// Tests that no invariants are broken if a ResourceHandler defers EOF.
+TEST_F(ResourceLoaderTest, DeferEOF) {
+ raw_ptr_resource_handler_->set_defer_eof(true);
+
+ loader_->StartRequest();
+ raw_ptr_resource_handler_->WaitForDeferredStep();
+
+ EXPECT_EQ(test_url(), raw_ptr_resource_handler_->start_url());
+ EXPECT_FALSE(raw_ptr_resource_handler_->received_response_completed());
+
+ raw_ptr_resource_handler_->Resume();
+ raw_ptr_resource_handler_->WaitForResponseComplete();
+ EXPECT_EQ(net::URLRequestStatus::SUCCESS,
+ raw_ptr_resource_handler_->status().status());
}
class ResourceLoaderRedirectToFileTest : public ResourceLoaderTest {
@@ -1188,9 +916,9 @@
}
std::unique_ptr<ResourceHandler> WrapResourceHandler(
- std::unique_ptr<TestResourceHandler> leaf_handler,
+ std::unique_ptr<ResourceHandlerStub> leaf_handler,
net::URLRequest* request) override {
- leaf_handler->set_expect_on_data_downloaded(true);
+ leaf_handler->set_expect_reads(false);
// Make a temporary file.
CHECK(base::CreateTemporaryFile(&temp_path_));
@@ -1240,15 +968,14 @@
TEST_F(ResourceLoaderRedirectToFileTest, Basic) {
// Run it to completion.
loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
+ raw_ptr_resource_handler_->WaitForResponseComplete();
// Check that the handler forwarded all information to the downstream handler.
- EXPECT_EQ(
- temp_path(),
- raw_ptr_resource_handler_->resource_response()->head.download_file_path);
- EXPECT_EQ(test_redirect_url(), raw_ptr_resource_handler_->start_url());
+ EXPECT_EQ(temp_path(),
+ raw_ptr_resource_handler_->response()->head.download_file_path);
+ EXPECT_EQ(test_url(), raw_ptr_resource_handler_->start_url());
EXPECT_EQ(net::URLRequestStatus::SUCCESS,
- raw_ptr_resource_handler_->final_status().status());
+ raw_ptr_resource_handler_->status().status());
EXPECT_EQ(test_data().size(), static_cast<size_t>(
raw_ptr_resource_handler_->total_bytes_downloaded()));
@@ -1268,11 +995,11 @@
// Run it to completion.
loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
+ raw_ptr_resource_handler_->WaitForResponseComplete();
// To downstream, the request was canceled.
EXPECT_EQ(net::URLRequestStatus::CANCELED,
- raw_ptr_resource_handler_->final_status().status());
+ raw_ptr_resource_handler_->status().status());
EXPECT_EQ(0, raw_ptr_resource_handler_->total_bytes_downloaded());
}
@@ -1282,16 +1009,15 @@
// Run it to completion.
loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
+ raw_ptr_resource_handler_->WaitForResponseComplete();
// To downstream, the request was canceled sometime after it started, but
// before any data was written.
- EXPECT_EQ(
- temp_path(),
- raw_ptr_resource_handler_->resource_response()->head.download_file_path);
- EXPECT_EQ(test_redirect_url(), raw_ptr_resource_handler_->start_url());
+ EXPECT_EQ(temp_path(),
+ raw_ptr_resource_handler_->response()->head.download_file_path);
+ EXPECT_EQ(test_url(), raw_ptr_resource_handler_->start_url());
EXPECT_EQ(net::URLRequestStatus::CANCELED,
- raw_ptr_resource_handler_->final_status().status());
+ raw_ptr_resource_handler_->status().status());
EXPECT_EQ(0, raw_ptr_resource_handler_->total_bytes_downloaded());
}
@@ -1301,16 +1027,15 @@
// Run it to completion.
loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
+ raw_ptr_resource_handler_->WaitForResponseComplete();
// To downstream, the request was canceled sometime after it started, but
// before any data was written.
- EXPECT_EQ(
- temp_path(),
- raw_ptr_resource_handler_->resource_response()->head.download_file_path);
- EXPECT_EQ(test_redirect_url(), raw_ptr_resource_handler_->start_url());
+ EXPECT_EQ(temp_path(),
+ raw_ptr_resource_handler_->response()->head.download_file_path);
+ EXPECT_EQ(test_url(), raw_ptr_resource_handler_->start_url());
EXPECT_EQ(net::URLRequestStatus::CANCELED,
- raw_ptr_resource_handler_->final_status().status());
+ raw_ptr_resource_handler_->status().status());
EXPECT_EQ(0, raw_ptr_resource_handler_->total_bytes_downloaded());
}
@@ -1332,50 +1057,48 @@
// However, the resource loader stack is stuck somewhere after receiving the
// response.
- EXPECT_EQ(
- temp_path(),
- raw_ptr_resource_handler_->resource_response()->head.download_file_path);
- EXPECT_EQ(test_redirect_url(), raw_ptr_resource_handler_->start_url());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
+ EXPECT_EQ(temp_path(),
+ raw_ptr_resource_handler_->response()->head.download_file_path);
+ EXPECT_EQ(test_url(), raw_ptr_resource_handler_->start_url());
+ EXPECT_FALSE(raw_ptr_resource_handler_->received_response_completed());
EXPECT_EQ(0, raw_ptr_resource_handler_->total_bytes_downloaded());
// Now, release the floodgates.
file_stream()->ReleaseCallbacks();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
+ raw_ptr_resource_handler_->WaitForResponseComplete();
// Although the URLRequest was successful, the leaf handler sees a failure
// because the write never completed.
EXPECT_EQ(net::URLRequestStatus::CANCELED,
- raw_ptr_resource_handler_->final_status().status());
+ raw_ptr_resource_handler_->status().status());
}
// Tests that a RedirectToFileResourceHandler behaves properly when the
// downstream handler defers OnWillStart.
TEST_F(ResourceLoaderRedirectToFileTest, DownstreamDeferStart) {
// Defer OnWillStart.
- raw_ptr_resource_handler_->set_defer_on_will_start(true);
+ raw_ptr_resource_handler_->set_defer_request_on_will_start(true);
// Run as far as we'll go.
loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilDeferred();
+ raw_ptr_resource_handler_->WaitForDeferredStep();
// The request should have stopped at OnWillStart.
- EXPECT_EQ(test_redirect_url(), raw_ptr_resource_handler_->start_url());
- EXPECT_FALSE(raw_ptr_resource_handler_->resource_response());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
+ EXPECT_EQ(test_url(), raw_ptr_resource_handler_->start_url());
+ EXPECT_FALSE(raw_ptr_resource_handler_->response());
+ EXPECT_FALSE(raw_ptr_resource_handler_->received_response_completed());
EXPECT_EQ(0, raw_ptr_resource_handler_->total_bytes_downloaded());
// Now resume the request. Now we complete.
raw_ptr_resource_handler_->Resume();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
+ raw_ptr_resource_handler_->WaitForResponseComplete();
// Check that the handler forwarded all information to the downstream handler.
- EXPECT_EQ(
- temp_path(),
- raw_ptr_resource_handler_->resource_response()->head.download_file_path);
- EXPECT_EQ(test_redirect_url(), raw_ptr_resource_handler_->start_url());
+ EXPECT_EQ(temp_path(),
+ raw_ptr_resource_handler_->response()->head.download_file_path);
+ EXPECT_EQ(test_url(), raw_ptr_resource_handler_->start_url());
EXPECT_EQ(net::URLRequestStatus::SUCCESS,
- raw_ptr_resource_handler_->final_status().status());
+ raw_ptr_resource_handler_->status().status());
EXPECT_EQ(test_data().size(), static_cast<size_t>(
raw_ptr_resource_handler_->total_bytes_downloaded()));
@@ -1397,19 +1120,18 @@
// Start the request and wait for it to finish.
std::unique_ptr<net::URLRequest> request(
resource_context_.GetRequestContext()->CreateRequest(
- test_redirect_url(), net::DEFAULT_PRIORITY,
- nullptr /* delegate */));
+ test_url(), net::DEFAULT_PRIORITY, nullptr /* delegate */));
SetUpResourceLoader(std::move(request), resource_type,
belongs_to_main_frame);
// Send the request and wait until it completes.
loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
+ raw_ptr_resource_handler_->WaitForResponseComplete();
ASSERT_EQ(net::URLRequestStatus::SUCCESS,
raw_ptr_to_request_->status().status());
- EXPECT_EQ(expected_type, raw_ptr_resource_handler_->resource_response()
- ->head.effective_connection_type);
+ EXPECT_EQ(expected_type,
+ raw_ptr_resource_handler_->observed_effective_connection_type());
}
};
« no previous file with comments | « content/browser/loader/resource_loader.cc ('k') | content/browser/loader/test_resource_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698