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

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

Issue 1903133004: Report invalid URLs as ERR_INVALID_URL rather than ERR_ABORTED (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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: content/browser/loader/resource_dispatcher_host_unittest.cc
diff --git a/content/browser/loader/resource_dispatcher_host_unittest.cc b/content/browser/loader/resource_dispatcher_host_unittest.cc
index 1350fd387f4c53cddb24594b1ecf13ba0690de30..f0b4796e52256edef37d6ad46d399e605969ed71 100644
--- a/content/browser/loader/resource_dispatcher_host_unittest.cc
+++ b/content/browser/loader/resource_dispatcher_host_unittest.cc
@@ -1427,7 +1427,6 @@ void CheckSuccessfulRedirect(const std::vector<IPC::Message>& messages,
}
void CheckFailedRequest(const std::vector<IPC::Message>& messages,
- const std::string& reference_data,
int expected_error) {
ASSERT_LT(0U, messages.size());
ASSERT_GE(2U, messages.size());
@@ -1527,6 +1526,42 @@ TEST_P(ResourceDispatcherHostTest, Cancel) {
EXPECT_EQ(0, network_delegate()->error_count());
}
+// Tests that invalid URLs fail with net::ERR_INVALID_URL.
+TEST_P(ResourceDispatcherHostTest, InvalidURL) {
+ MakeTestRequest(0, 1, GURL("https:///"));
+
+ // Sort out all the messages we saw by request.
+ ResourceIPCAccumulator::ClassifiedMessages msgs;
+ accum_.GetClassifiedMessages(&msgs);
+
+ ASSERT_EQ(1U, msgs.size());
+ CheckFailedRequest(msgs[0], net::ERR_INVALID_URL);
+}
+
+// Tests that redirects to invalid URLs fail with net::ERR_INVALID_URL.
+TEST_P(ResourceDispatcherHostTest, InvalidURLRedirect) {
+ static const char kHeaders[] =
+ "HTTP/1.1 302 Moved\n"
+ "Location: http:///\n"
+ "\n";
+ SetResponse(kHeaders);
+ HandleScheme("http");
+
+ MakeTestRequest(0, 1, GURL("http://example.com"));
+
+ // Finish the redirect.
+ ResourceHostMsg_FollowRedirect redirect_msg(1);
+ host_.OnMessageReceived(redirect_msg, filter_.get());
+ base::MessageLoop::current()->RunUntilIdle();
+
+ // Sort out all the messages we saw by request.
+ ResourceIPCAccumulator::ClassifiedMessages msgs;
+ accum_.GetClassifiedMessages(&msgs);
+
+ ASSERT_EQ(1U, msgs.size());
+ CheckFailedRequest(msgs[0], net::ERR_INVALID_URL);
+}
+
// Shows that detachable requests will timeout if the request takes too long to
// complete.
TEST_P(ResourceDispatcherHostTest, DetachedResourceTimesOut) {
@@ -2330,8 +2365,7 @@ TEST_P(ResourceDispatcherHostTest, TooMuchOutstandingRequestsMemory) {
for (int i = 0; i < 2; ++i) {
// Should have sent a single RequestComplete message.
int index = kMaxRequests + i;
- CheckFailedRequest(msgs[index], net::URLRequestTestJob::test_data_2(),
- net::ERR_INSUFFICIENT_RESOURCES);
+ CheckFailedRequest(msgs[index], net::ERR_INSUFFICIENT_RESOURCES);
}
// The final 2 requests should have succeeded.
@@ -2397,12 +2431,10 @@ TEST_P(ResourceDispatcherHostTest, TooManyOutstandingRequests) {
CheckSuccessfulRequest(msgs[i], net::URLRequestTestJob::test_data_2());
CheckFailedRequest(msgs[kMaxRequestsPerProcess + 0],
- net::URLRequestTestJob::test_data_2(),
net::ERR_INSUFFICIENT_RESOURCES);
CheckSuccessfulRequest(msgs[kMaxRequestsPerProcess + 1],
net::URLRequestTestJob::test_data_2());
CheckFailedRequest(msgs[kMaxRequestsPerProcess + 2],
- net::URLRequestTestJob::test_data_2(),
net::ERR_INSUFFICIENT_RESOURCES);
}

Powered by Google App Engine
This is Rietveld 408576698