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 "net/url_request/url_request_ftp_job.h" | 5 #include "net/url_request/url_request_ftp_job.h" |
6 | 6 |
7 #include "base/memory/ref_counted.h" | 7 #include "base/memory/ref_counted.h" |
| 8 #include "base/memory/scoped_ptr.h" |
8 #include "base/memory/scoped_vector.h" | 9 #include "base/memory/scoped_vector.h" |
9 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
10 #include "net/base/host_port_pair.h" | 11 #include "net/base/host_port_pair.h" |
11 #include "net/base/request_priority.h" | 12 #include "net/base/request_priority.h" |
12 #include "net/ftp/ftp_auth_cache.h" | 13 #include "net/ftp/ftp_auth_cache.h" |
13 #include "net/http/http_transaction_test_util.h" | 14 #include "net/http/http_transaction_test_util.h" |
14 #include "net/proxy/mock_proxy_resolver.h" | 15 #include "net/proxy/mock_proxy_resolver.h" |
15 #include "net/proxy/proxy_config_service.h" | 16 #include "net/proxy/proxy_config_service.h" |
16 #include "net/proxy/proxy_config_service_fixed.h" | 17 #include "net/proxy/proxy_config_service_fixed.h" |
17 #include "net/socket/socket_test_util.h" | 18 #include "net/socket/socket_test_util.h" |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 | 119 |
119 virtual void Suspend(bool suspend) OVERRIDE {} | 120 virtual void Suspend(bool suspend) OVERRIDE {} |
120 }; | 121 }; |
121 | 122 |
122 // Fixture for priority-related tests. Priority matters when there is | 123 // Fixture for priority-related tests. Priority matters when there is |
123 // an HTTP proxy. | 124 // an HTTP proxy. |
124 class URLRequestFtpJobPriorityTest : public testing::Test { | 125 class URLRequestFtpJobPriorityTest : public testing::Test { |
125 protected: | 126 protected: |
126 URLRequestFtpJobPriorityTest() | 127 URLRequestFtpJobPriorityTest() |
127 : proxy_service_(new SimpleProxyConfigService, NULL, NULL), | 128 : proxy_service_(new SimpleProxyConfigService, NULL, NULL), |
128 req_(GURL("ftp://ftp.example.com"), | 129 req_(context_.CreateRequest(GURL("ftp://ftp.example.com"), |
129 DEFAULT_PRIORITY, | 130 DEFAULT_PRIORITY, |
130 &delegate_, | 131 &delegate_, |
131 &context_) { | 132 NULL)) { |
132 context_.set_proxy_service(&proxy_service_); | 133 context_.set_proxy_service(&proxy_service_); |
133 context_.set_http_transaction_factory(&network_layer_); | 134 context_.set_http_transaction_factory(&network_layer_); |
134 } | 135 } |
135 | 136 |
136 ProxyService proxy_service_; | 137 ProxyService proxy_service_; |
137 MockNetworkLayer network_layer_; | 138 MockNetworkLayer network_layer_; |
138 MockFtpTransactionFactory ftp_factory_; | 139 MockFtpTransactionFactory ftp_factory_; |
139 FtpAuthCache ftp_auth_cache_; | 140 FtpAuthCache ftp_auth_cache_; |
140 TestURLRequestContext context_; | 141 TestURLRequestContext context_; |
141 TestDelegate delegate_; | 142 TestDelegate delegate_; |
142 TestURLRequest req_; | 143 scoped_ptr<URLRequest> req_; |
143 }; | 144 }; |
144 | 145 |
145 // Make sure that SetPriority actually sets the URLRequestFtpJob's | 146 // Make sure that SetPriority actually sets the URLRequestFtpJob's |
146 // priority, both before and after start. | 147 // priority, both before and after start. |
147 TEST_F(URLRequestFtpJobPriorityTest, SetPriorityBasic) { | 148 TEST_F(URLRequestFtpJobPriorityTest, SetPriorityBasic) { |
148 scoped_refptr<TestURLRequestFtpJob> job(new TestURLRequestFtpJob( | 149 scoped_refptr<TestURLRequestFtpJob> job(new TestURLRequestFtpJob( |
149 &req_, &ftp_factory_, &ftp_auth_cache_)); | 150 req_.get(), &ftp_factory_, &ftp_auth_cache_)); |
150 EXPECT_EQ(DEFAULT_PRIORITY, job->priority()); | 151 EXPECT_EQ(DEFAULT_PRIORITY, job->priority()); |
151 | 152 |
152 job->SetPriority(LOWEST); | 153 job->SetPriority(LOWEST); |
153 EXPECT_EQ(LOWEST, job->priority()); | 154 EXPECT_EQ(LOWEST, job->priority()); |
154 | 155 |
155 job->SetPriority(LOW); | 156 job->SetPriority(LOW); |
156 EXPECT_EQ(LOW, job->priority()); | 157 EXPECT_EQ(LOW, job->priority()); |
157 | 158 |
158 job->Start(); | 159 job->Start(); |
159 EXPECT_EQ(LOW, job->priority()); | 160 EXPECT_EQ(LOW, job->priority()); |
160 | 161 |
161 job->SetPriority(MEDIUM); | 162 job->SetPriority(MEDIUM); |
162 EXPECT_EQ(MEDIUM, job->priority()); | 163 EXPECT_EQ(MEDIUM, job->priority()); |
163 } | 164 } |
164 | 165 |
165 // Make sure that URLRequestFtpJob passes on its priority to its | 166 // Make sure that URLRequestFtpJob passes on its priority to its |
166 // transaction on start. | 167 // transaction on start. |
167 TEST_F(URLRequestFtpJobPriorityTest, SetTransactionPriorityOnStart) { | 168 TEST_F(URLRequestFtpJobPriorityTest, SetTransactionPriorityOnStart) { |
168 scoped_refptr<TestURLRequestFtpJob> job(new TestURLRequestFtpJob( | 169 scoped_refptr<TestURLRequestFtpJob> job(new TestURLRequestFtpJob( |
169 &req_, &ftp_factory_, &ftp_auth_cache_)); | 170 req_.get(), &ftp_factory_, &ftp_auth_cache_)); |
170 job->SetPriority(LOW); | 171 job->SetPriority(LOW); |
171 | 172 |
172 EXPECT_FALSE(network_layer_.last_transaction()); | 173 EXPECT_FALSE(network_layer_.last_transaction()); |
173 | 174 |
174 job->Start(); | 175 job->Start(); |
175 | 176 |
176 ASSERT_TRUE(network_layer_.last_transaction()); | 177 ASSERT_TRUE(network_layer_.last_transaction()); |
177 EXPECT_EQ(LOW, network_layer_.last_transaction()->priority()); | 178 EXPECT_EQ(LOW, network_layer_.last_transaction()->priority()); |
178 } | 179 } |
179 | 180 |
180 // Make sure that URLRequestFtpJob passes on its priority updates to | 181 // Make sure that URLRequestFtpJob passes on its priority updates to |
181 // its transaction. | 182 // its transaction. |
182 TEST_F(URLRequestFtpJobPriorityTest, SetTransactionPriority) { | 183 TEST_F(URLRequestFtpJobPriorityTest, SetTransactionPriority) { |
183 scoped_refptr<TestURLRequestFtpJob> job(new TestURLRequestFtpJob( | 184 scoped_refptr<TestURLRequestFtpJob> job(new TestURLRequestFtpJob( |
184 &req_, &ftp_factory_, &ftp_auth_cache_)); | 185 req_.get(), &ftp_factory_, &ftp_auth_cache_)); |
185 job->SetPriority(LOW); | 186 job->SetPriority(LOW); |
186 job->Start(); | 187 job->Start(); |
187 ASSERT_TRUE(network_layer_.last_transaction()); | 188 ASSERT_TRUE(network_layer_.last_transaction()); |
188 EXPECT_EQ(LOW, network_layer_.last_transaction()->priority()); | 189 EXPECT_EQ(LOW, network_layer_.last_transaction()->priority()); |
189 | 190 |
190 job->SetPriority(HIGHEST); | 191 job->SetPriority(HIGHEST); |
191 EXPECT_EQ(HIGHEST, network_layer_.last_transaction()->priority()); | 192 EXPECT_EQ(HIGHEST, network_layer_.last_transaction()->priority()); |
192 } | 193 } |
193 | 194 |
194 // Make sure that URLRequestFtpJob passes on its priority updates to | 195 // Make sure that URLRequestFtpJob passes on its priority updates to |
195 // newly-created transactions after the first one. | 196 // newly-created transactions after the first one. |
196 TEST_F(URLRequestFtpJobPriorityTest, SetSubsequentTransactionPriority) { | 197 TEST_F(URLRequestFtpJobPriorityTest, SetSubsequentTransactionPriority) { |
197 scoped_refptr<TestURLRequestFtpJob> job(new TestURLRequestFtpJob( | 198 scoped_refptr<TestURLRequestFtpJob> job(new TestURLRequestFtpJob( |
198 &req_, &ftp_factory_, &ftp_auth_cache_)); | 199 req_.get(), &ftp_factory_, &ftp_auth_cache_)); |
199 job->Start(); | 200 job->Start(); |
200 | 201 |
201 job->SetPriority(LOW); | 202 job->SetPriority(LOW); |
202 ASSERT_TRUE(network_layer_.last_transaction()); | 203 ASSERT_TRUE(network_layer_.last_transaction()); |
203 EXPECT_EQ(LOW, network_layer_.last_transaction()->priority()); | 204 EXPECT_EQ(LOW, network_layer_.last_transaction()->priority()); |
204 | 205 |
205 job->Kill(); | 206 job->Kill(); |
206 network_layer_.ClearLastTransaction(); | 207 network_layer_.ClearLastTransaction(); |
207 | 208 |
208 // Creates a second transaction. | 209 // Creates a second transaction. |
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
701 EXPECT_TRUE(url_request2->status().is_success()); | 702 EXPECT_TRUE(url_request2->status().is_success()); |
702 EXPECT_EQ(2, network_delegate()->completed_requests()); | 703 EXPECT_EQ(2, network_delegate()->completed_requests()); |
703 EXPECT_EQ(0, network_delegate()->error_count()); | 704 EXPECT_EQ(0, network_delegate()->error_count()); |
704 EXPECT_FALSE(request_delegate2.auth_required_called()); | 705 EXPECT_FALSE(request_delegate2.auth_required_called()); |
705 EXPECT_EQ("test2.html", request_delegate2.data_received()); | 706 EXPECT_EQ("test2.html", request_delegate2.data_received()); |
706 } | 707 } |
707 | 708 |
708 } // namespace | 709 } // namespace |
709 | 710 |
710 } // namespace net | 711 } // namespace net |
OLD | NEW |