OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/file_path.h" | 7 #include "base/file_path.h" |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "base/process_util.h" | 9 #include "base/process_util.h" |
10 #include "chrome/browser/child_process_security_policy.h" | 10 #include "chrome/browser/child_process_security_policy.h" |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
247 ASSERT_EQ(3U, msgs.size()); | 247 ASSERT_EQ(3U, msgs.size()); |
248 | 248 |
249 CheckSuccessfulRequest(msgs[0], URLRequestTestJob::test_data_1()); | 249 CheckSuccessfulRequest(msgs[0], URLRequestTestJob::test_data_1()); |
250 CheckSuccessfulRequest(msgs[1], URLRequestTestJob::test_data_2()); | 250 CheckSuccessfulRequest(msgs[1], URLRequestTestJob::test_data_2()); |
251 CheckSuccessfulRequest(msgs[2], URLRequestTestJob::test_data_3()); | 251 CheckSuccessfulRequest(msgs[2], URLRequestTestJob::test_data_3()); |
252 } | 252 } |
253 | 253 |
254 // Tests whether messages get canceled properly. We issue three requests, | 254 // Tests whether messages get canceled properly. We issue three requests, |
255 // cancel one of them, and make sure that each sent the proper notifications. | 255 // cancel one of them, and make sure that each sent the proper notifications. |
256 TEST_F(ResourceDispatcherHostTest, Cancel) { | 256 TEST_F(ResourceDispatcherHostTest, Cancel) { |
257 ResourceDispatcherHost host(NULL); | |
258 | |
259 EXPECT_EQ(0, host_.GetOutstandingRequestsMemoryCost(0)); | 257 EXPECT_EQ(0, host_.GetOutstandingRequestsMemoryCost(0)); |
260 | 258 |
261 MakeTestRequest(0, 0, 1, URLRequestTestJob::test_url_1()); | 259 MakeTestRequest(0, 0, 1, URLRequestTestJob::test_url_1()); |
262 MakeTestRequest(0, 0, 2, URLRequestTestJob::test_url_2()); | 260 MakeTestRequest(0, 0, 2, URLRequestTestJob::test_url_2()); |
263 MakeTestRequest(0, 0, 3, URLRequestTestJob::test_url_3()); | 261 MakeTestRequest(0, 0, 3, URLRequestTestJob::test_url_3()); |
264 MakeCancelRequest(2); | 262 MakeCancelRequest(2); |
265 | 263 |
266 // flush all the pending requests | 264 // flush all the pending requests |
267 while (URLRequestTestJob::ProcessOnePendingMessage()); | 265 while (URLRequestTestJob::ProcessOnePendingMessage()); |
268 MessageLoop::current()->RunAllPending(); | 266 MessageLoop::current()->RunAllPending(); |
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
535 // Since the upload throttling is disabled, this has no effect on the cost. | 533 // Since the upload throttling is disabled, this has no effect on the cost. |
536 EXPECT_EQ(4434, ResourceDispatcherHost::CalculateApproximateMemoryCost(&req)); | 534 EXPECT_EQ(4434, ResourceDispatcherHost::CalculateApproximateMemoryCost(&req)); |
537 | 535 |
538 // Add a file upload -- should have no effect. | 536 // Add a file upload -- should have no effect. |
539 req.AppendFileToUpload(FilePath(FILE_PATH_LITERAL("does-not-exist.png"))); | 537 req.AppendFileToUpload(FilePath(FILE_PATH_LITERAL("does-not-exist.png"))); |
540 EXPECT_EQ(4434, ResourceDispatcherHost::CalculateApproximateMemoryCost(&req)); | 538 EXPECT_EQ(4434, ResourceDispatcherHost::CalculateApproximateMemoryCost(&req)); |
541 } | 539 } |
542 | 540 |
543 // Test the private helper method "IncrementOutstandingRequestsMemoryCost()". | 541 // Test the private helper method "IncrementOutstandingRequestsMemoryCost()". |
544 TEST_F(ResourceDispatcherHostTest, IncrementOutstandingRequestsMemoryCost) { | 542 TEST_F(ResourceDispatcherHostTest, IncrementOutstandingRequestsMemoryCost) { |
545 ResourceDispatcherHost host(NULL); | |
546 | |
547 // Add some counts for render_process_host=7 | 543 // Add some counts for render_process_host=7 |
548 EXPECT_EQ(0, host.GetOutstandingRequestsMemoryCost(7)); | 544 EXPECT_EQ(0, host_.GetOutstandingRequestsMemoryCost(7)); |
549 EXPECT_EQ(1, host.IncrementOutstandingRequestsMemoryCost(1, 7)); | 545 EXPECT_EQ(1, host_.IncrementOutstandingRequestsMemoryCost(1, 7)); |
550 EXPECT_EQ(2, host.IncrementOutstandingRequestsMemoryCost(1, 7)); | 546 EXPECT_EQ(2, host_.IncrementOutstandingRequestsMemoryCost(1, 7)); |
551 EXPECT_EQ(3, host.IncrementOutstandingRequestsMemoryCost(1, 7)); | 547 EXPECT_EQ(3, host_.IncrementOutstandingRequestsMemoryCost(1, 7)); |
552 | 548 |
553 // Add some counts for render_process_host=3 | 549 // Add some counts for render_process_host=3 |
554 EXPECT_EQ(0, host.GetOutstandingRequestsMemoryCost(3)); | 550 EXPECT_EQ(0, host_.GetOutstandingRequestsMemoryCost(3)); |
555 EXPECT_EQ(1, host.IncrementOutstandingRequestsMemoryCost(1, 3)); | 551 EXPECT_EQ(1, host_.IncrementOutstandingRequestsMemoryCost(1, 3)); |
556 EXPECT_EQ(2, host.IncrementOutstandingRequestsMemoryCost(1, 3)); | 552 EXPECT_EQ(2, host_.IncrementOutstandingRequestsMemoryCost(1, 3)); |
557 | 553 |
558 // Remove all the counts for render_process_host=7 | 554 // Remove all the counts for render_process_host=7 |
559 EXPECT_EQ(3, host.GetOutstandingRequestsMemoryCost(7)); | 555 EXPECT_EQ(3, host_.GetOutstandingRequestsMemoryCost(7)); |
560 EXPECT_EQ(2, host.IncrementOutstandingRequestsMemoryCost(-1, 7)); | 556 EXPECT_EQ(2, host_.IncrementOutstandingRequestsMemoryCost(-1, 7)); |
561 EXPECT_EQ(1, host.IncrementOutstandingRequestsMemoryCost(-1, 7)); | 557 EXPECT_EQ(1, host_.IncrementOutstandingRequestsMemoryCost(-1, 7)); |
562 EXPECT_EQ(0, host.IncrementOutstandingRequestsMemoryCost(-1, 7)); | 558 EXPECT_EQ(0, host_.IncrementOutstandingRequestsMemoryCost(-1, 7)); |
563 EXPECT_EQ(0, host.GetOutstandingRequestsMemoryCost(7)); | 559 EXPECT_EQ(0, host_.GetOutstandingRequestsMemoryCost(7)); |
564 | 560 |
565 // Remove all the counts for render_process_host=3 | 561 // Remove all the counts for render_process_host=3 |
566 EXPECT_EQ(2, host.GetOutstandingRequestsMemoryCost(3)); | 562 EXPECT_EQ(2, host_.GetOutstandingRequestsMemoryCost(3)); |
567 EXPECT_EQ(1, host.IncrementOutstandingRequestsMemoryCost(-1, 3)); | 563 EXPECT_EQ(1, host_.IncrementOutstandingRequestsMemoryCost(-1, 3)); |
568 EXPECT_EQ(0, host.IncrementOutstandingRequestsMemoryCost(-1, 3)); | 564 EXPECT_EQ(0, host_.IncrementOutstandingRequestsMemoryCost(-1, 3)); |
569 EXPECT_EQ(0, host.GetOutstandingRequestsMemoryCost(3)); | 565 EXPECT_EQ(0, host_.GetOutstandingRequestsMemoryCost(3)); |
570 | 566 |
571 // When an entry reaches 0, it should be deleted. | 567 // When an entry reaches 0, it should be deleted. |
572 EXPECT_TRUE(host.outstanding_requests_memory_cost_map_.end() == | 568 EXPECT_TRUE(host_.outstanding_requests_memory_cost_map_.end() == |
573 host.outstanding_requests_memory_cost_map_.find(7)); | 569 host_.outstanding_requests_memory_cost_map_.find(7)); |
574 EXPECT_TRUE(host.outstanding_requests_memory_cost_map_.end() == | 570 EXPECT_TRUE(host_.outstanding_requests_memory_cost_map_.end() == |
575 host.outstanding_requests_memory_cost_map_.find(3)); | 571 host_.outstanding_requests_memory_cost_map_.find(3)); |
576 } | 572 } |
577 | 573 |
578 // Test that when too many requests are outstanding for a particular | 574 // Test that when too many requests are outstanding for a particular |
579 // render_process_host_id, any subsequent request from it fails. | 575 // render_process_host_id, any subsequent request from it fails. |
580 TEST_F(ResourceDispatcherHostTest, TooManyOutstandingRequests) { | 576 TEST_F(ResourceDispatcherHostTest, TooManyOutstandingRequests) { |
581 EXPECT_EQ(0, host_.GetOutstandingRequestsMemoryCost(0)); | 577 EXPECT_EQ(0, host_.GetOutstandingRequestsMemoryCost(0)); |
582 | 578 |
583 // Expected cost of each request as measured by | 579 // Expected cost of each request as measured by |
584 // ResourceDispatcherHost::CalculateApproximateMemoryCost(). | 580 // ResourceDispatcherHost::CalculateApproximateMemoryCost(). |
585 int kMemoryCostOfTest2Req = | 581 int kMemoryCostOfTest2Req = |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
646 EXPECT_EQ(URLRequestStatus::CANCELED, status.status()); | 642 EXPECT_EQ(URLRequestStatus::CANCELED, status.status()); |
647 EXPECT_EQ(net::ERR_INSUFFICIENT_RESOURCES, status.os_error()); | 643 EXPECT_EQ(net::ERR_INSUFFICIENT_RESOURCES, status.os_error()); |
648 } | 644 } |
649 | 645 |
650 // The final 2 requests should have succeeded. | 646 // The final 2 requests should have succeeded. |
651 CheckSuccessfulRequest(msgs[kMaxRequests + 2], | 647 CheckSuccessfulRequest(msgs[kMaxRequests + 2], |
652 URLRequestTestJob::test_data_2()); | 648 URLRequestTestJob::test_data_2()); |
653 CheckSuccessfulRequest(msgs[kMaxRequests + 3], | 649 CheckSuccessfulRequest(msgs[kMaxRequests + 3], |
654 URLRequestTestJob::test_data_2()); | 650 URLRequestTestJob::test_data_2()); |
655 } | 651 } |
OLD | NEW |