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

Side by Side Diff: content/browser/loader/resource_dispatcher_host_unittest.cc

Issue 1564963002: [on hold] Remove dependency on RenderViewHost from LoadState notifications Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix unittests Created 4 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 817 matching lines...) Expand 10 before | Expand all | Expand 10 after
828 } 828 }
829 829
830 private: 830 private:
831 int resource_request_redirect_count_; 831 int resource_request_redirect_count_;
832 int resource_response_start_count_; 832 int resource_response_start_count_;
833 }; 833 };
834 834
835 // Information used to create resource requests that use URLRequestLoadInfoJobs. 835 // Information used to create resource requests that use URLRequestLoadInfoJobs.
836 // The child_id is just that of ResourceDispatcherHostTest::filter_. 836 // The child_id is just that of ResourceDispatcherHostTest::filter_.
837 struct LoadInfoTestRequestInfo { 837 struct LoadInfoTestRequestInfo {
838 int route_id; 838 GlobalFrameRoutingId route_id;
839 GURL url; 839 GURL url;
840 net::LoadState load_state; 840 net::LoadState load_state;
841 net::UploadProgress upload_progress; 841 net::UploadProgress upload_progress;
842 }; 842 };
843 843
844 enum class TestConfig { 844 enum class TestConfig {
845 kDefault, 845 kDefault,
846 kOptimizeIPCForSmallResourceEnabled, 846 kOptimizeIPCForSmallResourceEnabled,
847 }; 847 };
848 848
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
929 return true; 929 return true;
930 } 930 }
931 931
932 std::unique_ptr<LoadInfoMap> RunLoadInfoTest( 932 std::unique_ptr<LoadInfoMap> RunLoadInfoTest(
933 LoadInfoTestRequestInfo* request_info, 933 LoadInfoTestRequestInfo* request_info,
934 size_t num_requests) { 934 size_t num_requests) {
935 for (size_t i = 0; i < num_requests; ++i) { 935 for (size_t i = 0; i < num_requests; ++i) {
936 loader_test_request_info_.reset( 936 loader_test_request_info_.reset(
937 new LoadInfoTestRequestInfo(request_info[i])); 937 new LoadInfoTestRequestInfo(request_info[i]));
938 wait_for_request_create_loop_.reset(new base::RunLoop()); 938 wait_for_request_create_loop_.reset(new base::RunLoop());
939 MakeTestRequest(request_info[i].route_id, i + 1, request_info[i].url); 939 MakeTestRequestWithRenderFrame(
940 0, request_info[i].route_id.frame_routing_id, i + 1,
941 request_info[i].url, RESOURCE_TYPE_SUB_RESOURCE);
940 wait_for_request_create_loop_->Run(); 942 wait_for_request_create_loop_->Run();
941 wait_for_request_create_loop_.reset(); 943 wait_for_request_create_loop_.reset();
942 } 944 }
943 return ResourceDispatcherHostImpl::Get()->GetLoadInfoForAllRoutes(); 945 return ResourceDispatcherHostImpl::Get()->GetLoadInfoForAllRoutes();
944 } 946 }
945 947
946 protected: 948 protected:
947 friend class TestURLRequestJobFactory; 949 friend class TestURLRequestJobFactory;
948 950
949 // testing::Test 951 // testing::Test
(...skipping 2643 matching lines...) Expand 10 before | Expand all | Expand 10 after
3593 3595
3594 // Tests GetLoadInfoForAllRoutes when there are no pending requests. 3596 // Tests GetLoadInfoForAllRoutes when there are no pending requests.
3595 TEST_P(ResourceDispatcherHostTest, LoadInfoNoRequests) { 3597 TEST_P(ResourceDispatcherHostTest, LoadInfoNoRequests) {
3596 std::unique_ptr<LoadInfoMap> load_info_map = RunLoadInfoTest(nullptr, 0); 3598 std::unique_ptr<LoadInfoMap> load_info_map = RunLoadInfoTest(nullptr, 0);
3597 EXPECT_EQ(0u, load_info_map->size()); 3599 EXPECT_EQ(0u, load_info_map->size());
3598 } 3600 }
3599 3601
3600 // Tests GetLoadInfoForAllRoutes when there are 3 requests from the same 3602 // Tests GetLoadInfoForAllRoutes when there are 3 requests from the same
3601 // RenderView. The second one is farthest along. 3603 // RenderView. The second one is farthest along.
3602 TEST_P(ResourceDispatcherHostTest, LoadInfo) { 3604 TEST_P(ResourceDispatcherHostTest, LoadInfo) {
3603 const GlobalRoutingID kId(filter_->child_id(), 0); 3605 const GlobalFrameRoutingId kId(filter_->child_id(), 0);
3604 LoadInfoTestRequestInfo request_info[] = { 3606 LoadInfoTestRequestInfo request_info[] = {
3605 {kId.route_id, 3607 {kId, GURL("test://1/"), net::LOAD_STATE_SENDING_REQUEST,
3606 GURL("test://1/"),
3607 net::LOAD_STATE_SENDING_REQUEST,
3608 net::UploadProgress(0, 0)}, 3608 net::UploadProgress(0, 0)},
3609 {kId.route_id, 3609 {kId, GURL("test://2/"), net::LOAD_STATE_READING_RESPONSE,
3610 GURL("test://2/"),
3611 net::LOAD_STATE_READING_RESPONSE,
3612 net::UploadProgress(0, 0)}, 3610 net::UploadProgress(0, 0)},
3613 {kId.route_id, 3611 {kId, GURL("test://3/"), net::LOAD_STATE_SENDING_REQUEST,
3614 GURL("test://3/"),
3615 net::LOAD_STATE_SENDING_REQUEST,
3616 net::UploadProgress(0, 0)}, 3612 net::UploadProgress(0, 0)},
3617 }; 3613 };
3618 std::unique_ptr<LoadInfoMap> load_info_map = 3614 std::unique_ptr<LoadInfoMap> load_info_map =
3619 RunLoadInfoTest(request_info, arraysize(request_info)); 3615 RunLoadInfoTest(request_info, arraysize(request_info));
3620 ASSERT_EQ(1u, load_info_map->size()); 3616 ASSERT_EQ(1u, load_info_map->size());
3621 ASSERT_TRUE(load_info_map->find(kId) != load_info_map->end()); 3617 ASSERT_TRUE(load_info_map->find(kId) != load_info_map->end());
3622 EXPECT_EQ(GURL("test://2/"), (*load_info_map)[kId].url); 3618 EXPECT_EQ(GURL("test://2/"), (*load_info_map)[kId].url);
3623 EXPECT_EQ(net::LOAD_STATE_READING_RESPONSE, 3619 EXPECT_EQ(net::LOAD_STATE_READING_RESPONSE,
3624 (*load_info_map)[kId].load_state.state); 3620 (*load_info_map)[kId].load_state.state);
3625 EXPECT_EQ(0u, (*load_info_map)[kId].upload_position); 3621 EXPECT_EQ(0u, (*load_info_map)[kId].upload_position);
3626 EXPECT_EQ(0u, (*load_info_map)[kId].upload_size); 3622 EXPECT_EQ(0u, (*load_info_map)[kId].upload_size);
3627 } 3623 }
3628 3624
3629 // Tests GetLoadInfoForAllRoutes when there are 2 requests with the same 3625 // Tests GetLoadInfoForAllRoutes when there are 2 requests with the same
3630 // priority. The first one (Which will have the lowest ID) should be returned. 3626 // priority. The first one (Which will have the lowest ID) should be returned.
3631 TEST_P(ResourceDispatcherHostTest, LoadInfoSamePriority) { 3627 TEST_P(ResourceDispatcherHostTest, LoadInfoSamePriority) {
3632 const GlobalRoutingID kId(filter_->child_id(), 0); 3628 const GlobalFrameRoutingId kId(filter_->child_id(), 0);
3633 LoadInfoTestRequestInfo request_info[] = { 3629 LoadInfoTestRequestInfo request_info[] = {
3634 {kId.route_id, 3630 {kId, GURL("test://1/"), net::LOAD_STATE_IDLE, net::UploadProgress(0, 0)},
3635 GURL("test://1/"), 3631 {kId, GURL("test://2/"), net::LOAD_STATE_IDLE, net::UploadProgress(0, 0)},
3636 net::LOAD_STATE_IDLE,
3637 net::UploadProgress(0, 0)},
3638 {kId.route_id,
3639 GURL("test://2/"),
3640 net::LOAD_STATE_IDLE,
3641 net::UploadProgress(0, 0)},
3642 }; 3632 };
3643 std::unique_ptr<LoadInfoMap> load_info_map = 3633 std::unique_ptr<LoadInfoMap> load_info_map =
3644 RunLoadInfoTest(request_info, arraysize(request_info)); 3634 RunLoadInfoTest(request_info, arraysize(request_info));
3645 ASSERT_EQ(1u, load_info_map->size()); 3635 ASSERT_EQ(1u, load_info_map->size());
3646 ASSERT_TRUE(load_info_map->find(kId) != load_info_map->end()); 3636 ASSERT_TRUE(load_info_map->find(kId) != load_info_map->end());
3647 EXPECT_EQ(GURL("test://1/"), (*load_info_map)[kId].url); 3637 EXPECT_EQ(GURL("test://1/"), (*load_info_map)[kId].url);
3648 EXPECT_EQ(net::LOAD_STATE_IDLE, (*load_info_map)[kId].load_state.state); 3638 EXPECT_EQ(net::LOAD_STATE_IDLE, (*load_info_map)[kId].load_state.state);
3649 EXPECT_EQ(0u, (*load_info_map)[kId].upload_position); 3639 EXPECT_EQ(0u, (*load_info_map)[kId].upload_position);
3650 EXPECT_EQ(0u, (*load_info_map)[kId].upload_size); 3640 EXPECT_EQ(0u, (*load_info_map)[kId].upload_size);
3651 } 3641 }
3652 3642
3653 // Tests GetLoadInfoForAllRoutes when a request is uploading a body. 3643 // Tests GetLoadInfoForAllRoutes when a request is uploading a body.
3654 TEST_P(ResourceDispatcherHostTest, LoadInfoUploadProgress) { 3644 TEST_P(ResourceDispatcherHostTest, LoadInfoUploadProgress) {
3655 const GlobalRoutingID kId(filter_->child_id(), 0); 3645 const GlobalFrameRoutingId kId(filter_->child_id(), 0);
3656 LoadInfoTestRequestInfo request_info[] = { 3646 LoadInfoTestRequestInfo request_info[] = {
3657 {kId.route_id, 3647 {kId, GURL("test://1/"), net::LOAD_STATE_READING_RESPONSE,
3658 GURL("test://1/"),
3659 net::LOAD_STATE_READING_RESPONSE,
3660 net::UploadProgress(0, 0)}, 3648 net::UploadProgress(0, 0)},
3661 {kId.route_id, 3649 {kId, GURL("test://1/"), net::LOAD_STATE_READING_RESPONSE,
3662 GURL("test://1/"),
3663 net::LOAD_STATE_READING_RESPONSE,
3664 net::UploadProgress(1000, 1000)}, 3650 net::UploadProgress(1000, 1000)},
3665 {kId.route_id, 3651 {kId, GURL("test://2/"), net::LOAD_STATE_SENDING_REQUEST,
3666 GURL("test://2/"),
3667 net::LOAD_STATE_SENDING_REQUEST,
3668 net::UploadProgress(50, 100)}, 3652 net::UploadProgress(50, 100)},
3669 {kId.route_id, 3653 {kId, GURL("test://1/"), net::LOAD_STATE_READING_RESPONSE,
3670 GURL("test://1/"),
3671 net::LOAD_STATE_READING_RESPONSE,
3672 net::UploadProgress(1000, 1000)}, 3654 net::UploadProgress(1000, 1000)},
3673 {kId.route_id, 3655 {kId, GURL("test://3/"), net::LOAD_STATE_READING_RESPONSE,
3674 GURL("test://3/"),
3675 net::LOAD_STATE_READING_RESPONSE,
3676 net::UploadProgress(0, 0)}, 3656 net::UploadProgress(0, 0)},
3677 }; 3657 };
3678 std::unique_ptr<LoadInfoMap> load_info_map = 3658 std::unique_ptr<LoadInfoMap> load_info_map =
3679 RunLoadInfoTest(request_info, arraysize(request_info)); 3659 RunLoadInfoTest(request_info, arraysize(request_info));
3680 ASSERT_EQ(1u, load_info_map->size()); 3660 ASSERT_EQ(1u, load_info_map->size());
3681 ASSERT_TRUE(load_info_map->find(kId) != load_info_map->end()); 3661 ASSERT_TRUE(load_info_map->find(kId) != load_info_map->end());
3682 EXPECT_EQ(GURL("test://2/"), (*load_info_map)[kId].url); 3662 EXPECT_EQ(GURL("test://2/"), (*load_info_map)[kId].url);
3683 EXPECT_EQ(net::LOAD_STATE_SENDING_REQUEST, 3663 EXPECT_EQ(net::LOAD_STATE_SENDING_REQUEST,
3684 (*load_info_map)[kId].load_state.state); 3664 (*load_info_map)[kId].load_state.state);
3685 EXPECT_EQ(50u, (*load_info_map)[kId].upload_position); 3665 EXPECT_EQ(50u, (*load_info_map)[kId].upload_position);
3686 EXPECT_EQ(100u, (*load_info_map)[kId].upload_size); 3666 EXPECT_EQ(100u, (*load_info_map)[kId].upload_size);
3687 } 3667 }
3688 3668
3689 // Tests GetLoadInfoForAllRoutes when there are 4 requests from 2 different 3669 // Tests GetLoadInfoForAllRoutes when there are 4 requests from 2 different
3690 // RenderViews. Also tests the case where the first / last requests are the 3670 // RenderViews. Also tests the case where the first / last requests are the
3691 // most interesting ones. 3671 // most interesting ones.
3692 TEST_P(ResourceDispatcherHostTest, LoadInfoTwoRenderViews) { 3672 TEST_P(ResourceDispatcherHostTest, LoadInfoTwoRenderViews) {
3693 const GlobalRoutingID kId1(filter_->child_id(), 0); 3673 const GlobalFrameRoutingId kId1(filter_->child_id(), 0);
3694 const GlobalRoutingID kId2(filter_->child_id(), 1); 3674 const GlobalFrameRoutingId kId2(filter_->child_id(), 1);
3695 LoadInfoTestRequestInfo request_info[] = { 3675 LoadInfoTestRequestInfo request_info[] = {
3696 {kId1.route_id, 3676 {kId1, GURL("test://1/"), net::LOAD_STATE_CONNECTING,
3697 GURL("test://1/"),
3698 net::LOAD_STATE_CONNECTING,
3699 net::UploadProgress(0, 0)}, 3677 net::UploadProgress(0, 0)},
3700 {kId2.route_id, 3678 {kId2, GURL("test://2/"), net::LOAD_STATE_IDLE,
3701 GURL("test://2/"),
3702 net::LOAD_STATE_IDLE,
3703 net::UploadProgress(0, 0)}, 3679 net::UploadProgress(0, 0)},
3704 {kId1.route_id, 3680 {kId1, GURL("test://3/"), net::LOAD_STATE_IDLE,
3705 GURL("test://3/"),
3706 net::LOAD_STATE_IDLE,
3707 net::UploadProgress(0, 0)}, 3681 net::UploadProgress(0, 0)},
3708 {kId2.route_id, 3682 {kId2, GURL("test://4/"), net::LOAD_STATE_CONNECTING,
3709 GURL("test://4/"),
3710 net::LOAD_STATE_CONNECTING,
3711 net::UploadProgress(0, 0)}, 3683 net::UploadProgress(0, 0)},
3712 }; 3684 };
3713 std::unique_ptr<LoadInfoMap> load_info_map = 3685 std::unique_ptr<LoadInfoMap> load_info_map =
3714 RunLoadInfoTest(request_info, arraysize(request_info)); 3686 RunLoadInfoTest(request_info, arraysize(request_info));
3715 ASSERT_EQ(2u, load_info_map->size()); 3687 ASSERT_EQ(2u, load_info_map->size());
3716 3688
3717 ASSERT_TRUE(load_info_map->find(kId1) != load_info_map->end()); 3689 ASSERT_TRUE(load_info_map->find(kId1) != load_info_map->end());
3718 EXPECT_EQ(GURL("test://1/"), (*load_info_map)[kId1].url); 3690 EXPECT_EQ(GURL("test://1/"), (*load_info_map)[kId1].url);
3719 EXPECT_EQ(net::LOAD_STATE_CONNECTING, 3691 EXPECT_EQ(net::LOAD_STATE_CONNECTING,
3720 (*load_info_map)[kId1].load_state.state); 3692 (*load_info_map)[kId1].load_state.state);
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
3904 return nullptr; 3876 return nullptr;
3905 } 3877 }
3906 3878
3907 INSTANTIATE_TEST_CASE_P( 3879 INSTANTIATE_TEST_CASE_P(
3908 ResourceDispatcherHostTests, 3880 ResourceDispatcherHostTests,
3909 ResourceDispatcherHostTest, 3881 ResourceDispatcherHostTest,
3910 testing::Values(TestConfig::kDefault, 3882 testing::Values(TestConfig::kDefault,
3911 TestConfig::kOptimizeIPCForSmallResourceEnabled)); 3883 TestConfig::kOptimizeIPCForSmallResourceEnabled));
3912 3884
3913 } // namespace content 3885 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698