| 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);
|
| }
|
|
|
|
|