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

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

Issue 2597563002: Revert of Move ResourceHandler deferred actions ahead of external protocol handling. (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') | no next file » | 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 cda1a544b5be20f5026f72d247ddb45010e3a0cf..6515453be66ce231384b8924578637c0bfd2bba7 100644
--- a/content/browser/loader/resource_loader_unittest.cc
+++ b/content/browser/loader/resource_loader_unittest.cc
@@ -7,10 +7,8 @@
#include <stddef.h>
#include <stdint.h>
-#include <deque>
#include <memory>
#include <utility>
-#include <vector>
#include "base/files/file.h"
#include "base/files/file_util.h"
@@ -503,18 +501,7 @@
bool HandleExternalProtocol(ResourceLoader* loader,
const GURL& url) override {
EXPECT_EQ(loader, loader_.get());
- ++handle_external_protocol_;
-
- // Check that calls to HandleExternalProtocol always happen after the calls
- // to the ResourceHandler's OnWillStart and OnRequestRedirected.
- EXPECT_EQ(handle_external_protocol_,
- raw_ptr_resource_handler_->on_will_start_called() +
- raw_ptr_resource_handler_->on_request_redirected_called());
-
- bool return_value = handle_external_protocol_results_.front();
- if (handle_external_protocol_results_.size() > 1)
- handle_external_protocol_results_.pop_front();
- return return_value;
+ return false;
}
void DidStartRequest(ResourceLoader* loader) override {
EXPECT_EQ(loader, loader_.get());
@@ -561,12 +548,6 @@
int did_received_redirect_ = 0;
int did_receive_response_ = 0;
int did_finish_loading_ = 0;
- int handle_external_protocol_ = 0;
-
- // Allows controlling the return values of sequential calls to
- // HandleExternalProtocol. Values are removed by the measure they are used
- // but the last one which is used for all following calls.
- std::deque<bool> handle_external_protocol_results_{false};
net::URLRequestJobFactoryImpl job_factory_;
TestNetworkQualityEstimator network_quality_estimator_;
@@ -768,7 +749,6 @@
EXPECT_EQ(1, did_received_redirect_);
EXPECT_EQ(1, did_receive_response_);
EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(2, handle_external_protocol_);
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());
@@ -785,51 +765,10 @@
EXPECT_EQ(0, did_received_redirect_);
EXPECT_EQ(1, did_receive_response_);
EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, handle_external_protocol_);
EXPECT_EQ(0, 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 where ResourceHandler defers nothing and the request is handled
-// as an external protocol on start.
-TEST_F(ResourceLoaderTest, SyncExternalProtocolHandlingOnStart) {
- handle_external_protocol_results_ = {true};
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- EXPECT_EQ(0, did_start_request_);
- EXPECT_EQ(0, did_received_redirect_);
- EXPECT_EQ(0, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, handle_external_protocol_);
- 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_completed_called());
- EXPECT_EQ(net::ERR_ABORTED,
- raw_ptr_resource_handler_->final_status().error());
- EXPECT_TRUE(raw_ptr_resource_handler_->body().empty());
-}
-
-// Test the case where ResourceHandler defers nothing and the request is handled
-// as an external protocol on redirect.
-TEST_F(ResourceLoaderTest, SyncExternalProtocolHandlingOnRedirect) {
- handle_external_protocol_results_ = {false, true};
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- EXPECT_EQ(1, did_start_request_);
- EXPECT_EQ(1, did_received_redirect_);
- EXPECT_EQ(0, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(2, handle_external_protocol_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
- 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::ERR_ABORTED,
- raw_ptr_resource_handler_->final_status().error());
- EXPECT_TRUE(raw_ptr_resource_handler_->body().empty());
}
// Test the case the ResourceHandler defers everything.
@@ -852,13 +791,11 @@
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());
- EXPECT_EQ(0, handle_external_protocol_);
// 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());
- EXPECT_EQ(1, handle_external_protocol_);
// Spinning the message loop should not advance the state further.
base::RunLoop().RunUntilIdle();
@@ -867,13 +804,11 @@
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());
- EXPECT_EQ(1, handle_external_protocol_);
// 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());
- EXPECT_EQ(2, handle_external_protocol_);
// Spinning the message loop should not advance the state further.
base::RunLoop().RunUntilIdle();
@@ -895,7 +830,7 @@
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, signaling EOF.
+ // 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());
@@ -925,7 +860,6 @@
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());
- EXPECT_EQ(2, handle_external_protocol_);
}
// Same as above, except reads complete asynchronously and there's no redirect.
@@ -949,13 +883,11 @@
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());
- EXPECT_EQ(0, handle_external_protocol_);
// 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());
- EXPECT_EQ(1, handle_external_protocol_);
// Spinning the message loop should not advance the state further.
base::RunLoop().RunUntilIdle();
@@ -1007,7 +939,6 @@
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());
- EXPECT_EQ(1, handle_external_protocol_);
}
TEST_F(ResourceLoaderTest, SyncCancelOnWillStart) {
@@ -1018,7 +949,6 @@
base::RunLoop().RunUntilIdle();
EXPECT_EQ(0, did_start_request_);
EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(0, handle_external_protocol_);
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());
@@ -1038,7 +968,6 @@
EXPECT_EQ(1, did_received_redirect_);
EXPECT_EQ(0, did_receive_response_);
EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, handle_external_protocol_);
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());
@@ -1161,7 +1090,6 @@
base::RunLoop().RunUntilIdle();
EXPECT_EQ(0, did_start_request_);
EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(0, handle_external_protocol_);
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());
@@ -1181,7 +1109,6 @@
EXPECT_EQ(1, did_received_redirect_);
EXPECT_EQ(0, did_receive_response_);
EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, handle_external_protocol_);
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());
@@ -1275,67 +1202,6 @@
EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
-}
-
-// Tests the request being deferred and then being handled as an external
-// protocol, both on start.
-TEST_F(ResourceLoaderTest, AsyncExternalProtocolHandlingOnStart) {
- handle_external_protocol_results_ = {true};
- raw_ptr_resource_handler_->set_defer_on_will_start(true);
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilDeferred();
- EXPECT_EQ(0, did_finish_loading_);
- EXPECT_EQ(0, handle_external_protocol_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
-
- raw_ptr_resource_handler_->Resume();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- EXPECT_EQ(0, did_start_request_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, handle_external_protocol_);
- 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());
-}
-
-// Tests the request being deferred and then being handled as an external
-// protocol, both on redirect.
-TEST_F(ResourceLoaderTest, AsyncExternalProtocolHandlingOnRedirect) {
- handle_external_protocol_results_ = {false, true};
- raw_ptr_resource_handler_->set_defer_on_request_redirected(true);
-
- loader_->StartRequest();
- raw_ptr_resource_handler_->WaitUntilDeferred();
- EXPECT_EQ(1, did_start_request_);
- EXPECT_EQ(1, did_received_redirect_);
- EXPECT_EQ(0, did_finish_loading_);
- EXPECT_EQ(1, handle_external_protocol_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called());
- EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
-
- raw_ptr_resource_handler_->Resume();
- raw_ptr_resource_handler_->WaitUntilResponseComplete();
- EXPECT_EQ(1, did_start_request_);
- EXPECT_EQ(1, did_received_redirect_);
- EXPECT_EQ(0, did_receive_response_);
- EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(2, handle_external_protocol_);
- EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
- EXPECT_EQ(1, 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, RequestFailsOnStart) {
@@ -1349,7 +1215,6 @@
EXPECT_EQ(0, did_received_redirect_);
EXPECT_EQ(0, did_receive_response_);
EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, handle_external_protocol_);
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());
@@ -1409,7 +1274,6 @@
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());
- EXPECT_EQ(1, handle_external_protocol_);
raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED);
raw_ptr_resource_handler_->WaitUntilResponseComplete();
@@ -1417,7 +1281,6 @@
EXPECT_EQ(0, did_received_redirect_);
EXPECT_EQ(0, did_receive_response_);
EXPECT_EQ(1, did_finish_loading_);
- EXPECT_EQ(1, handle_external_protocol_);
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());
@@ -1438,14 +1301,12 @@
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());
- EXPECT_EQ(1, handle_external_protocol_);
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, handle_external_protocol_);
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());
« no previous file with comments | « content/browser/loader/resource_loader.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698