OLD | NEW |
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 <memory> | 5 #include <memory> |
6 #include <utility> | 6 #include <utility> |
7 | 7 |
8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
10 | 10 |
(...skipping 7873 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7884 std::unique_ptr<URLRequest> req( | 7884 std::unique_ptr<URLRequest> req( |
7885 default_context_.CreateRequest(test_url, DEFAULT_PRIORITY, &d)); | 7885 default_context_.CreateRequest(test_url, DEFAULT_PRIORITY, &d)); |
7886 req->SetLoadFlags(LOAD_ONLY_FROM_CACHE); | 7886 req->SetLoadFlags(LOAD_ONLY_FROM_CACHE); |
7887 | 7887 |
7888 req->Start(); | 7888 req->Start(); |
7889 base::RunLoop().Run(); | 7889 base::RunLoop().Run(); |
7890 | 7890 |
7891 EXPECT_FALSE(req->response_info().network_accessed); | 7891 EXPECT_FALSE(req->response_info().network_accessed); |
7892 } | 7892 } |
7893 | 7893 |
7894 // Test that a single job with a throttled priority completes | 7894 // Test that a single job with a THROTTLED priority completes |
7895 // correctly in the absence of contention. | 7895 // correctly in the absence of contention. |
7896 TEST_F(URLRequestTestHTTP, ThrottledPriority) { | 7896 TEST_F(URLRequestTestHTTP, ThrottledPriority) { |
7897 ASSERT_TRUE(http_test_server()->Start()); | 7897 ASSERT_TRUE(http_test_server()->Start()); |
7898 | 7898 |
7899 TestDelegate d; | 7899 TestDelegate d; |
7900 GURL test_url(http_test_server()->GetURL("/")); | 7900 GURL test_url(http_test_server()->GetURL("/")); |
7901 std::unique_ptr<URLRequest> req( | 7901 std::unique_ptr<URLRequest> req( |
7902 default_context_.CreateRequest(test_url, THROTTLED, &d)); | 7902 default_context_.CreateRequest(test_url, THROTTLED, &d)); |
7903 req->Start(); | 7903 req->Start(); |
7904 base::RunLoop().Run(); | 7904 base::RunLoop().Run(); |
7905 | 7905 |
7906 EXPECT_TRUE(req->status().is_success()); | 7906 EXPECT_TRUE(req->status().is_success()); |
7907 } | 7907 } |
7908 | 7908 |
| 7909 // Test that three jobs with THROTTLED priorities complete |
| 7910 // correctly in the absence of contention (the completion of the |
| 7911 // first one will unthrottle the third, but there is no visibility |
| 7912 // to that at this level). |
| 7913 TEST_F(URLRequestTestHTTP, MultiThrottledPriority) { |
| 7914 ASSERT_TRUE(http_test_server()->Start()); |
| 7915 |
| 7916 TestDelegate d; |
| 7917 GURL test_url(http_test_server()->GetURL("/")); |
| 7918 std::unique_ptr<URLRequest> req1( |
| 7919 default_context_.CreateRequest(test_url, THROTTLED, &d)); |
| 7920 std::unique_ptr<URLRequest> req2( |
| 7921 default_context_.CreateRequest(test_url, THROTTLED, &d)); |
| 7922 std::unique_ptr<URLRequest> req3( |
| 7923 default_context_.CreateRequest(test_url, THROTTLED, &d)); |
| 7924 req1->Start(); |
| 7925 req2->Start(); |
| 7926 req3->Start(); |
| 7927 base::RunLoop().Run(); |
| 7928 |
| 7929 EXPECT_TRUE(req1->status().is_success()); |
| 7930 EXPECT_TRUE(req2->status().is_success()); |
| 7931 EXPECT_TRUE(req3->status().is_success()); |
| 7932 } |
| 7933 |
7909 class URLRequestInterceptorTestHTTP : public URLRequestTestHTTP { | 7934 class URLRequestInterceptorTestHTTP : public URLRequestTestHTTP { |
7910 public: | 7935 public: |
7911 // TODO(bengr): Merge this with the URLRequestInterceptorHTTPTest fixture, | 7936 // TODO(bengr): Merge this with the URLRequestInterceptorHTTPTest fixture, |
7912 // ideally remove the dependency on URLRequestTestJob, and maybe move these | 7937 // ideally remove the dependency on URLRequestTestJob, and maybe move these |
7913 // tests into the factory tests. | 7938 // tests into the factory tests. |
7914 URLRequestInterceptorTestHTTP() : URLRequestTestHTTP(), interceptor_(NULL) { | 7939 URLRequestInterceptorTestHTTP() : URLRequestTestHTTP(), interceptor_(NULL) { |
7915 } | 7940 } |
7916 | 7941 |
7917 void SetUpFactory() override { | 7942 void SetUpFactory() override { |
7918 interceptor_ = new MockURLRequestInterceptor(); | 7943 interceptor_ = new MockURLRequestInterceptor(); |
(...skipping 2195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10114 AddTestInterceptor()->set_main_intercept_job(std::move(job)); | 10139 AddTestInterceptor()->set_main_intercept_job(std::move(job)); |
10115 | 10140 |
10116 req->Start(); | 10141 req->Start(); |
10117 req->Cancel(); | 10142 req->Cancel(); |
10118 base::RunLoop().RunUntilIdle(); | 10143 base::RunLoop().RunUntilIdle(); |
10119 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); | 10144 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); |
10120 EXPECT_EQ(0, d.received_redirect_count()); | 10145 EXPECT_EQ(0, d.received_redirect_count()); |
10121 } | 10146 } |
10122 | 10147 |
10123 } // namespace net | 10148 } // namespace net |
OLD | NEW |