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

Side by Side Diff: net/url_request/url_request_ftp_job_unittest.cc

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 | Annotate | Revision Log
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 "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_vector.h" 8 #include "base/memory/scoped_vector.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "net/base/request_priority.h" 10 #include "net/base/request_priority.h"
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 using URLRequestFtpJob::Start; 104 using URLRequestFtpJob::Start;
105 using URLRequestFtpJob::Kill; 105 using URLRequestFtpJob::Kill;
106 using URLRequestFtpJob::priority; 106 using URLRequestFtpJob::priority;
107 107
108 protected: 108 protected:
109 virtual ~TestURLRequestFtpJob() {} 109 virtual ~TestURLRequestFtpJob() {}
110 }; 110 };
111 111
112 class MockFtpTransactionFactory : public FtpTransactionFactory { 112 class MockFtpTransactionFactory : public FtpTransactionFactory {
113 public: 113 public:
114 virtual FtpTransaction* CreateTransaction() OVERRIDE { 114 virtual FtpTransaction* CreateTransaction() OVERRIDE { return NULL; }
115 return NULL;
116 }
117 115
118 virtual void Suspend(bool suspend) OVERRIDE {} 116 virtual void Suspend(bool suspend) OVERRIDE {}
119 }; 117 };
120 118
121 // Fixture for priority-related tests. Priority matters when there is 119 // Fixture for priority-related tests. Priority matters when there is
122 // an HTTP proxy. 120 // an HTTP proxy.
123 class URLRequestFtpJobPriorityTest : public testing::Test { 121 class URLRequestFtpJobPriorityTest : public testing::Test {
124 protected: 122 protected:
125 URLRequestFtpJobPriorityTest() 123 URLRequestFtpJobPriorityTest()
126 : proxy_service_(new SimpleProxyConfigService, NULL, NULL), 124 : proxy_service_(new SimpleProxyConfigService, NULL, NULL),
(...skipping 10 matching lines...) Expand all
137 MockFtpTransactionFactory ftp_factory_; 135 MockFtpTransactionFactory ftp_factory_;
138 FtpAuthCache ftp_auth_cache_; 136 FtpAuthCache ftp_auth_cache_;
139 TestURLRequestContext context_; 137 TestURLRequestContext context_;
140 TestDelegate delegate_; 138 TestDelegate delegate_;
141 TestURLRequest req_; 139 TestURLRequest req_;
142 }; 140 };
143 141
144 // Make sure that SetPriority actually sets the URLRequestFtpJob's 142 // Make sure that SetPriority actually sets the URLRequestFtpJob's
145 // priority, both before and after start. 143 // priority, both before and after start.
146 TEST_F(URLRequestFtpJobPriorityTest, SetPriorityBasic) { 144 TEST_F(URLRequestFtpJobPriorityTest, SetPriorityBasic) {
147 scoped_refptr<TestURLRequestFtpJob> job(new TestURLRequestFtpJob( 145 scoped_refptr<TestURLRequestFtpJob> job(
148 &req_, &ftp_factory_, &ftp_auth_cache_)); 146 new TestURLRequestFtpJob(&req_, &ftp_factory_, &ftp_auth_cache_));
149 EXPECT_EQ(DEFAULT_PRIORITY, job->priority()); 147 EXPECT_EQ(DEFAULT_PRIORITY, job->priority());
150 148
151 job->SetPriority(LOWEST); 149 job->SetPriority(LOWEST);
152 EXPECT_EQ(LOWEST, job->priority()); 150 EXPECT_EQ(LOWEST, job->priority());
153 151
154 job->SetPriority(LOW); 152 job->SetPriority(LOW);
155 EXPECT_EQ(LOW, job->priority()); 153 EXPECT_EQ(LOW, job->priority());
156 154
157 job->Start(); 155 job->Start();
158 EXPECT_EQ(LOW, job->priority()); 156 EXPECT_EQ(LOW, job->priority());
159 157
160 job->SetPriority(MEDIUM); 158 job->SetPriority(MEDIUM);
161 EXPECT_EQ(MEDIUM, job->priority()); 159 EXPECT_EQ(MEDIUM, job->priority());
162 } 160 }
163 161
164 // Make sure that URLRequestFtpJob passes on its priority to its 162 // Make sure that URLRequestFtpJob passes on its priority to its
165 // transaction on start. 163 // transaction on start.
166 TEST_F(URLRequestFtpJobPriorityTest, SetTransactionPriorityOnStart) { 164 TEST_F(URLRequestFtpJobPriorityTest, SetTransactionPriorityOnStart) {
167 scoped_refptr<TestURLRequestFtpJob> job(new TestURLRequestFtpJob( 165 scoped_refptr<TestURLRequestFtpJob> job(
168 &req_, &ftp_factory_, &ftp_auth_cache_)); 166 new TestURLRequestFtpJob(&req_, &ftp_factory_, &ftp_auth_cache_));
169 job->SetPriority(LOW); 167 job->SetPriority(LOW);
170 168
171 EXPECT_FALSE(network_layer_.last_transaction()); 169 EXPECT_FALSE(network_layer_.last_transaction());
172 170
173 job->Start(); 171 job->Start();
174 172
175 ASSERT_TRUE(network_layer_.last_transaction()); 173 ASSERT_TRUE(network_layer_.last_transaction());
176 EXPECT_EQ(LOW, network_layer_.last_transaction()->priority()); 174 EXPECT_EQ(LOW, network_layer_.last_transaction()->priority());
177 } 175 }
178 176
179 // Make sure that URLRequestFtpJob passes on its priority updates to 177 // Make sure that URLRequestFtpJob passes on its priority updates to
180 // its transaction. 178 // its transaction.
181 TEST_F(URLRequestFtpJobPriorityTest, SetTransactionPriority) { 179 TEST_F(URLRequestFtpJobPriorityTest, SetTransactionPriority) {
182 scoped_refptr<TestURLRequestFtpJob> job(new TestURLRequestFtpJob( 180 scoped_refptr<TestURLRequestFtpJob> job(
183 &req_, &ftp_factory_, &ftp_auth_cache_)); 181 new TestURLRequestFtpJob(&req_, &ftp_factory_, &ftp_auth_cache_));
184 job->SetPriority(LOW); 182 job->SetPriority(LOW);
185 job->Start(); 183 job->Start();
186 ASSERT_TRUE(network_layer_.last_transaction()); 184 ASSERT_TRUE(network_layer_.last_transaction());
187 EXPECT_EQ(LOW, network_layer_.last_transaction()->priority()); 185 EXPECT_EQ(LOW, network_layer_.last_transaction()->priority());
188 186
189 job->SetPriority(HIGHEST); 187 job->SetPriority(HIGHEST);
190 EXPECT_EQ(HIGHEST, network_layer_.last_transaction()->priority()); 188 EXPECT_EQ(HIGHEST, network_layer_.last_transaction()->priority());
191 } 189 }
192 190
193 // Make sure that URLRequestFtpJob passes on its priority updates to 191 // Make sure that URLRequestFtpJob passes on its priority updates to
194 // newly-created transactions after the first one. 192 // newly-created transactions after the first one.
195 TEST_F(URLRequestFtpJobPriorityTest, SetSubsequentTransactionPriority) { 193 TEST_F(URLRequestFtpJobPriorityTest, SetSubsequentTransactionPriority) {
196 scoped_refptr<TestURLRequestFtpJob> job(new TestURLRequestFtpJob( 194 scoped_refptr<TestURLRequestFtpJob> job(
197 &req_, &ftp_factory_, &ftp_auth_cache_)); 195 new TestURLRequestFtpJob(&req_, &ftp_factory_, &ftp_auth_cache_));
198 job->Start(); 196 job->Start();
199 197
200 job->SetPriority(LOW); 198 job->SetPriority(LOW);
201 ASSERT_TRUE(network_layer_.last_transaction()); 199 ASSERT_TRUE(network_layer_.last_transaction());
202 EXPECT_EQ(LOW, network_layer_.last_transaction()->priority()); 200 EXPECT_EQ(LOW, network_layer_.last_transaction()->priority());
203 201
204 job->Kill(); 202 job->Kill();
205 network_layer_.ClearLastTransaction(); 203 network_layer_.ClearLastTransaction();
206 204
207 // Creates a second transaction. 205 // Creates a second transaction.
208 job->Start(); 206 job->Start();
209 ASSERT_TRUE(network_layer_.last_transaction()); 207 ASSERT_TRUE(network_layer_.last_transaction());
210 EXPECT_EQ(LOW, network_layer_.last_transaction()->priority()); 208 EXPECT_EQ(LOW, network_layer_.last_transaction()->priority());
211 } 209 }
212 210
213 class URLRequestFtpJobTest : public testing::Test { 211 class URLRequestFtpJobTest : public testing::Test {
214 public: 212 public:
215 URLRequestFtpJobTest() 213 URLRequestFtpJobTest()
216 : request_context_(&socket_factory_, 214 : request_context_(
217 new ProxyService( 215 &socket_factory_,
218 new SimpleProxyConfigService, NULL, NULL), 216 new ProxyService(new SimpleProxyConfigService, NULL, NULL),
219 &network_delegate_, 217 &network_delegate_,
220 &ftp_transaction_factory_) { 218 &ftp_transaction_factory_) {}
221 }
222 219
223 virtual ~URLRequestFtpJobTest() { 220 virtual ~URLRequestFtpJobTest() {
224 // Clean up any remaining tasks that mess up unrelated tests. 221 // Clean up any remaining tasks that mess up unrelated tests.
225 base::RunLoop run_loop; 222 base::RunLoop run_loop;
226 run_loop.RunUntilIdle(); 223 run_loop.RunUntilIdle();
227 } 224 }
228 225
229 void AddSocket(MockRead* reads, size_t reads_size, 226 void AddSocket(MockRead* reads,
230 MockWrite* writes, size_t writes_size) { 227 size_t reads_size,
231 DeterministicSocketData* socket_data = new DeterministicSocketData( 228 MockWrite* writes,
232 reads, reads_size, writes, writes_size); 229 size_t writes_size) {
230 DeterministicSocketData* socket_data =
231 new DeterministicSocketData(reads, reads_size, writes, writes_size);
233 socket_data->set_connect_data(MockConnect(SYNCHRONOUS, OK)); 232 socket_data->set_connect_data(MockConnect(SYNCHRONOUS, OK));
234 socket_data->StopAfter(reads_size + writes_size - 1); 233 socket_data->StopAfter(reads_size + writes_size - 1);
235 socket_factory_.AddSocketDataProvider(socket_data); 234 socket_factory_.AddSocketDataProvider(socket_data);
236 235
237 socket_data_.push_back(socket_data); 236 socket_data_.push_back(socket_data);
238 } 237 }
239 238
240 FtpTestURLRequestContext* request_context() { return &request_context_; } 239 FtpTestURLRequestContext* request_context() { return &request_context_; }
241 TestNetworkDelegate* network_delegate() { return &network_delegate_; } 240 TestNetworkDelegate* network_delegate() { return &network_delegate_; }
242 DeterministicSocketData* socket_data(size_t index) { 241 DeterministicSocketData* socket_data(size_t index) {
243 return socket_data_[index]; 242 return socket_data_[index];
244 } 243 }
245 244
246 private: 245 private:
247 ScopedVector<DeterministicSocketData> socket_data_; 246 ScopedVector<DeterministicSocketData> socket_data_;
248 DeterministicMockClientSocketFactory socket_factory_; 247 DeterministicMockClientSocketFactory socket_factory_;
249 TestNetworkDelegate network_delegate_; 248 TestNetworkDelegate network_delegate_;
250 MockFtpTransactionFactory ftp_transaction_factory_; 249 MockFtpTransactionFactory ftp_transaction_factory_;
251 250
252 FtpTestURLRequestContext request_context_; 251 FtpTestURLRequestContext request_context_;
253 }; 252 };
254 253
255 TEST_F(URLRequestFtpJobTest, FtpProxyRequest) { 254 TEST_F(URLRequestFtpJobTest, FtpProxyRequest) {
256 MockWrite writes[] = { 255 MockWrite writes[] = {
257 MockWrite(ASYNC, 0, "GET ftp://ftp.example.com/ HTTP/1.1\r\n" 256 MockWrite(ASYNC,
258 "Host: ftp.example.com\r\n" 257 0,
259 "Proxy-Connection: keep-alive\r\n\r\n"), 258 "GET ftp://ftp.example.com/ HTTP/1.1\r\n"
259 "Host: ftp.example.com\r\n"
260 "Proxy-Connection: keep-alive\r\n\r\n"),
260 }; 261 };
261 MockRead reads[] = { 262 MockRead reads[] = {
262 MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"), 263 MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"),
263 MockRead(ASYNC, 2, "Content-Length: 9\r\n\r\n"), 264 MockRead(ASYNC, 2, "Content-Length: 9\r\n\r\n"),
264 MockRead(ASYNC, 3, "test.html"), 265 MockRead(ASYNC, 3, "test.html"),
265 }; 266 };
266 267
267 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); 268 AddSocket(reads, arraysize(reads), writes, arraysize(writes));
268 269
269 TestDelegate request_delegate; 270 TestDelegate request_delegate;
270 URLRequest url_request(GURL("ftp://ftp.example.com/"), 271 URLRequest url_request(GURL("ftp://ftp.example.com/"),
271 DEFAULT_PRIORITY, 272 DEFAULT_PRIORITY,
272 &request_delegate, 273 &request_delegate,
273 request_context()); 274 request_context());
274 url_request.Start(); 275 url_request.Start();
275 ASSERT_TRUE(url_request.is_pending()); 276 ASSERT_TRUE(url_request.is_pending());
276 socket_data(0)->RunFor(4); 277 socket_data(0)->RunFor(4);
277 278
278 EXPECT_TRUE(url_request.status().is_success()); 279 EXPECT_TRUE(url_request.status().is_success());
279 EXPECT_EQ(1, network_delegate()->completed_requests()); 280 EXPECT_EQ(1, network_delegate()->completed_requests());
280 EXPECT_EQ(0, network_delegate()->error_count()); 281 EXPECT_EQ(0, network_delegate()->error_count());
281 EXPECT_FALSE(request_delegate.auth_required_called()); 282 EXPECT_FALSE(request_delegate.auth_required_called());
282 EXPECT_EQ("test.html", request_delegate.data_received()); 283 EXPECT_EQ("test.html", request_delegate.data_received());
283 } 284 }
284 285
285 // Regression test for http://crbug.com/237526 . 286 // Regression test for http://crbug.com/237526 .
286 TEST_F(URLRequestFtpJobTest, FtpProxyRequestOrphanJob) { 287 TEST_F(URLRequestFtpJobTest, FtpProxyRequestOrphanJob) {
287 // Use a PAC URL so that URLRequestFtpJob's |pac_request_| field is non-NULL. 288 // Use a PAC URL so that URLRequestFtpJob's |pac_request_| field is non-NULL.
288 request_context()->set_proxy_service( 289 request_context()->set_proxy_service(new ProxyService(
289 new ProxyService( 290 new ProxyConfigServiceFixed(
290 new ProxyConfigServiceFixed( 291 ProxyConfig::CreateFromCustomPacURL(GURL("http://foo"))),
291 ProxyConfig::CreateFromCustomPacURL(GURL("http://foo"))), 292 new MockAsyncProxyResolver,
292 new MockAsyncProxyResolver, NULL)); 293 NULL));
293 294
294 TestDelegate request_delegate; 295 TestDelegate request_delegate;
295 URLRequest url_request(GURL("ftp://ftp.example.com/"), 296 URLRequest url_request(GURL("ftp://ftp.example.com/"),
296 DEFAULT_PRIORITY, 297 DEFAULT_PRIORITY,
297 &request_delegate, 298 &request_delegate,
298 request_context()); 299 request_context());
299 url_request.Start(); 300 url_request.Start();
300 301
301 // Now |url_request| will be deleted before its completion, 302 // Now |url_request| will be deleted before its completion,
302 // resulting in it being orphaned. It should not crash. 303 // resulting in it being orphaned. It should not crash.
303 } 304 }
304 305
305 TEST_F(URLRequestFtpJobTest, FtpProxyRequestNeedProxyAuthNoCredentials) { 306 TEST_F(URLRequestFtpJobTest, FtpProxyRequestNeedProxyAuthNoCredentials) {
306 MockWrite writes[] = { 307 MockWrite writes[] = {
307 MockWrite(ASYNC, 0, "GET ftp://ftp.example.com/ HTTP/1.1\r\n" 308 MockWrite(ASYNC,
308 "Host: ftp.example.com\r\n" 309 0,
309 "Proxy-Connection: keep-alive\r\n\r\n"), 310 "GET ftp://ftp.example.com/ HTTP/1.1\r\n"
311 "Host: ftp.example.com\r\n"
312 "Proxy-Connection: keep-alive\r\n\r\n"),
310 }; 313 };
311 MockRead reads[] = { 314 MockRead reads[] = {
312 // No credentials. 315 // No credentials.
313 MockRead(ASYNC, 1, "HTTP/1.1 407 Proxy Authentication Required\r\n"), 316 MockRead(ASYNC, 1, "HTTP/1.1 407 Proxy Authentication Required\r\n"),
314 MockRead(ASYNC, 2, "Proxy-Authenticate: Basic " 317 MockRead(ASYNC,
315 "realm=\"MyRealm1\"\r\n"), 318 2,
316 MockRead(ASYNC, 3, "Content-Length: 9\r\n\r\n"), 319 "Proxy-Authenticate: Basic "
317 MockRead(ASYNC, 4, "test.html"), 320 "realm=\"MyRealm1\"\r\n"),
321 MockRead(ASYNC, 3, "Content-Length: 9\r\n\r\n"),
322 MockRead(ASYNC, 4, "test.html"),
318 }; 323 };
319 324
320 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); 325 AddSocket(reads, arraysize(reads), writes, arraysize(writes));
321 326
322 TestDelegate request_delegate; 327 TestDelegate request_delegate;
323 URLRequest url_request(GURL("ftp://ftp.example.com/"), 328 URLRequest url_request(GURL("ftp://ftp.example.com/"),
324 DEFAULT_PRIORITY, 329 DEFAULT_PRIORITY,
325 &request_delegate, 330 &request_delegate,
326 request_context()); 331 request_context());
327 url_request.Start(); 332 url_request.Start();
328 ASSERT_TRUE(url_request.is_pending()); 333 ASSERT_TRUE(url_request.is_pending());
329 socket_data(0)->RunFor(5); 334 socket_data(0)->RunFor(5);
330 335
331 EXPECT_TRUE(url_request.status().is_success()); 336 EXPECT_TRUE(url_request.status().is_success());
332 EXPECT_EQ(1, network_delegate()->completed_requests()); 337 EXPECT_EQ(1, network_delegate()->completed_requests());
333 EXPECT_EQ(0, network_delegate()->error_count()); 338 EXPECT_EQ(0, network_delegate()->error_count());
334 EXPECT_TRUE(request_delegate.auth_required_called()); 339 EXPECT_TRUE(request_delegate.auth_required_called());
335 EXPECT_EQ("test.html", request_delegate.data_received()); 340 EXPECT_EQ("test.html", request_delegate.data_received());
336 } 341 }
337 342
338 TEST_F(URLRequestFtpJobTest, FtpProxyRequestNeedProxyAuthWithCredentials) { 343 TEST_F(URLRequestFtpJobTest, FtpProxyRequestNeedProxyAuthWithCredentials) {
339 MockWrite writes[] = { 344 MockWrite writes[] = {
340 MockWrite(ASYNC, 0, "GET ftp://ftp.example.com/ HTTP/1.1\r\n" 345 MockWrite(ASYNC,
341 "Host: ftp.example.com\r\n" 346 0,
342 "Proxy-Connection: keep-alive\r\n\r\n"), 347 "GET ftp://ftp.example.com/ HTTP/1.1\r\n"
343 MockWrite(ASYNC, 5, "GET ftp://ftp.example.com/ HTTP/1.1\r\n" 348 "Host: ftp.example.com\r\n"
344 "Host: ftp.example.com\r\n" 349 "Proxy-Connection: keep-alive\r\n\r\n"),
345 "Proxy-Connection: keep-alive\r\n" 350 MockWrite(ASYNC,
346 "Proxy-Authorization: Basic bXl1c2VyOm15cGFzcw==\r\n\r\n"), 351 5,
352 "GET ftp://ftp.example.com/ HTTP/1.1\r\n"
353 "Host: ftp.example.com\r\n"
354 "Proxy-Connection: keep-alive\r\n"
355 "Proxy-Authorization: Basic bXl1c2VyOm15cGFzcw==\r\n\r\n"),
347 }; 356 };
348 MockRead reads[] = { 357 MockRead reads[] = {
349 // No credentials. 358 // No credentials.
350 MockRead(ASYNC, 1, "HTTP/1.1 407 Proxy Authentication Required\r\n"), 359 MockRead(ASYNC, 1, "HTTP/1.1 407 Proxy Authentication Required\r\n"),
351 MockRead(ASYNC, 2, "Proxy-Authenticate: Basic " 360 MockRead(ASYNC,
352 "realm=\"MyRealm1\"\r\n"), 361 2,
353 MockRead(ASYNC, 3, "Content-Length: 9\r\n\r\n"), 362 "Proxy-Authenticate: Basic "
354 MockRead(ASYNC, 4, "test.html"), 363 "realm=\"MyRealm1\"\r\n"),
364 MockRead(ASYNC, 3, "Content-Length: 9\r\n\r\n"),
365 MockRead(ASYNC, 4, "test.html"),
355 366
356 // Second response. 367 // Second response.
357 MockRead(ASYNC, 6, "HTTP/1.1 200 OK\r\n"), 368 MockRead(ASYNC, 6, "HTTP/1.1 200 OK\r\n"),
358 MockRead(ASYNC, 7, "Content-Length: 10\r\n\r\n"), 369 MockRead(ASYNC, 7, "Content-Length: 10\r\n\r\n"),
359 MockRead(ASYNC, 8, "test2.html"), 370 MockRead(ASYNC, 8, "test2.html"),
360 }; 371 };
361 372
362 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); 373 AddSocket(reads, arraysize(reads), writes, arraysize(writes));
363 374
364 TestDelegate request_delegate; 375 TestDelegate request_delegate;
365 request_delegate.set_credentials( 376 request_delegate.set_credentials(
366 AuthCredentials(ASCIIToUTF16("myuser"), ASCIIToUTF16("mypass"))); 377 AuthCredentials(ASCIIToUTF16("myuser"), ASCIIToUTF16("mypass")));
367 URLRequest url_request(GURL("ftp://ftp.example.com/"), 378 URLRequest url_request(GURL("ftp://ftp.example.com/"),
368 DEFAULT_PRIORITY, 379 DEFAULT_PRIORITY,
369 &request_delegate, 380 &request_delegate,
370 request_context()); 381 request_context());
371 url_request.Start(); 382 url_request.Start();
372 ASSERT_TRUE(url_request.is_pending()); 383 ASSERT_TRUE(url_request.is_pending());
373 socket_data(0)->RunFor(9); 384 socket_data(0)->RunFor(9);
374 385
375 EXPECT_TRUE(url_request.status().is_success()); 386 EXPECT_TRUE(url_request.status().is_success());
376 EXPECT_EQ(1, network_delegate()->completed_requests()); 387 EXPECT_EQ(1, network_delegate()->completed_requests());
377 EXPECT_EQ(0, network_delegate()->error_count()); 388 EXPECT_EQ(0, network_delegate()->error_count());
378 EXPECT_TRUE(request_delegate.auth_required_called()); 389 EXPECT_TRUE(request_delegate.auth_required_called());
379 EXPECT_EQ("test2.html", request_delegate.data_received()); 390 EXPECT_EQ("test2.html", request_delegate.data_received());
380 } 391 }
381 392
382 TEST_F(URLRequestFtpJobTest, FtpProxyRequestNeedServerAuthNoCredentials) { 393 TEST_F(URLRequestFtpJobTest, FtpProxyRequestNeedServerAuthNoCredentials) {
383 MockWrite writes[] = { 394 MockWrite writes[] = {
384 MockWrite(ASYNC, 0, "GET ftp://ftp.example.com/ HTTP/1.1\r\n" 395 MockWrite(ASYNC,
385 "Host: ftp.example.com\r\n" 396 0,
386 "Proxy-Connection: keep-alive\r\n\r\n"), 397 "GET ftp://ftp.example.com/ HTTP/1.1\r\n"
398 "Host: ftp.example.com\r\n"
399 "Proxy-Connection: keep-alive\r\n\r\n"),
387 }; 400 };
388 MockRead reads[] = { 401 MockRead reads[] = {// No credentials.
389 // No credentials. 402 MockRead(ASYNC, 1, "HTTP/1.1 401 Unauthorized\r\n"),
390 MockRead(ASYNC, 1, "HTTP/1.1 401 Unauthorized\r\n"), 403 MockRead(ASYNC,
391 MockRead(ASYNC, 2, "WWW-Authenticate: Basic " 404 2,
392 "realm=\"MyRealm1\"\r\n"), 405 "WWW-Authenticate: Basic "
393 MockRead(ASYNC, 3, "Content-Length: 9\r\n\r\n"), 406 "realm=\"MyRealm1\"\r\n"),
394 MockRead(ASYNC, 4, "test.html"), 407 MockRead(ASYNC, 3, "Content-Length: 9\r\n\r\n"),
408 MockRead(ASYNC, 4, "test.html"),
395 }; 409 };
396 410
397 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); 411 AddSocket(reads, arraysize(reads), writes, arraysize(writes));
398 412
399 TestDelegate request_delegate; 413 TestDelegate request_delegate;
400 URLRequest url_request(GURL("ftp://ftp.example.com/"), 414 URLRequest url_request(GURL("ftp://ftp.example.com/"),
401 DEFAULT_PRIORITY, 415 DEFAULT_PRIORITY,
402 &request_delegate, 416 &request_delegate,
403 request_context()); 417 request_context());
404 url_request.Start(); 418 url_request.Start();
405 ASSERT_TRUE(url_request.is_pending()); 419 ASSERT_TRUE(url_request.is_pending());
406 socket_data(0)->RunFor(5); 420 socket_data(0)->RunFor(5);
407 421
408 EXPECT_TRUE(url_request.status().is_success()); 422 EXPECT_TRUE(url_request.status().is_success());
409 EXPECT_EQ(1, network_delegate()->completed_requests()); 423 EXPECT_EQ(1, network_delegate()->completed_requests());
410 EXPECT_EQ(0, network_delegate()->error_count()); 424 EXPECT_EQ(0, network_delegate()->error_count());
411 EXPECT_TRUE(request_delegate.auth_required_called()); 425 EXPECT_TRUE(request_delegate.auth_required_called());
412 EXPECT_EQ("test.html", request_delegate.data_received()); 426 EXPECT_EQ("test.html", request_delegate.data_received());
413 } 427 }
414 428
415 TEST_F(URLRequestFtpJobTest, FtpProxyRequestNeedServerAuthWithCredentials) { 429 TEST_F(URLRequestFtpJobTest, FtpProxyRequestNeedServerAuthWithCredentials) {
416 MockWrite writes[] = { 430 MockWrite writes[] = {
417 MockWrite(ASYNC, 0, "GET ftp://ftp.example.com/ HTTP/1.1\r\n" 431 MockWrite(ASYNC,
418 "Host: ftp.example.com\r\n" 432 0,
419 "Proxy-Connection: keep-alive\r\n\r\n"), 433 "GET ftp://ftp.example.com/ HTTP/1.1\r\n"
420 MockWrite(ASYNC, 5, "GET ftp://ftp.example.com/ HTTP/1.1\r\n" 434 "Host: ftp.example.com\r\n"
421 "Host: ftp.example.com\r\n" 435 "Proxy-Connection: keep-alive\r\n\r\n"),
422 "Proxy-Connection: keep-alive\r\n" 436 MockWrite(ASYNC,
423 "Authorization: Basic bXl1c2VyOm15cGFzcw==\r\n\r\n"), 437 5,
438 "GET ftp://ftp.example.com/ HTTP/1.1\r\n"
439 "Host: ftp.example.com\r\n"
440 "Proxy-Connection: keep-alive\r\n"
441 "Authorization: Basic bXl1c2VyOm15cGFzcw==\r\n\r\n"),
424 }; 442 };
425 MockRead reads[] = { 443 MockRead reads[] = {// No credentials.
426 // No credentials. 444 MockRead(ASYNC, 1, "HTTP/1.1 401 Unauthorized\r\n"),
427 MockRead(ASYNC, 1, "HTTP/1.1 401 Unauthorized\r\n"), 445 MockRead(ASYNC,
428 MockRead(ASYNC, 2, "WWW-Authenticate: Basic " 446 2,
429 "realm=\"MyRealm1\"\r\n"), 447 "WWW-Authenticate: Basic "
430 MockRead(ASYNC, 3, "Content-Length: 9\r\n\r\n"), 448 "realm=\"MyRealm1\"\r\n"),
431 MockRead(ASYNC, 4, "test.html"), 449 MockRead(ASYNC, 3, "Content-Length: 9\r\n\r\n"),
450 MockRead(ASYNC, 4, "test.html"),
432 451
433 // Second response. 452 // Second response.
434 MockRead(ASYNC, 6, "HTTP/1.1 200 OK\r\n"), 453 MockRead(ASYNC, 6, "HTTP/1.1 200 OK\r\n"),
435 MockRead(ASYNC, 7, "Content-Length: 10\r\n\r\n"), 454 MockRead(ASYNC, 7, "Content-Length: 10\r\n\r\n"),
436 MockRead(ASYNC, 8, "test2.html"), 455 MockRead(ASYNC, 8, "test2.html"),
437 }; 456 };
438 457
439 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); 458 AddSocket(reads, arraysize(reads), writes, arraysize(writes));
440 459
441 TestDelegate request_delegate; 460 TestDelegate request_delegate;
442 request_delegate.set_credentials( 461 request_delegate.set_credentials(
443 AuthCredentials(ASCIIToUTF16("myuser"), ASCIIToUTF16("mypass"))); 462 AuthCredentials(ASCIIToUTF16("myuser"), ASCIIToUTF16("mypass")));
444 URLRequest url_request(GURL("ftp://ftp.example.com/"), 463 URLRequest url_request(GURL("ftp://ftp.example.com/"),
445 DEFAULT_PRIORITY, 464 DEFAULT_PRIORITY,
446 &request_delegate, 465 &request_delegate,
447 request_context()); 466 request_context());
448 url_request.Start(); 467 url_request.Start();
449 ASSERT_TRUE(url_request.is_pending()); 468 ASSERT_TRUE(url_request.is_pending());
450 socket_data(0)->RunFor(9); 469 socket_data(0)->RunFor(9);
451 470
452 EXPECT_TRUE(url_request.status().is_success()); 471 EXPECT_TRUE(url_request.status().is_success());
453 EXPECT_EQ(1, network_delegate()->completed_requests()); 472 EXPECT_EQ(1, network_delegate()->completed_requests());
454 EXPECT_EQ(0, network_delegate()->error_count()); 473 EXPECT_EQ(0, network_delegate()->error_count());
455 EXPECT_TRUE(request_delegate.auth_required_called()); 474 EXPECT_TRUE(request_delegate.auth_required_called());
456 EXPECT_EQ("test2.html", request_delegate.data_received()); 475 EXPECT_EQ("test2.html", request_delegate.data_received());
457 } 476 }
458 477
459 TEST_F(URLRequestFtpJobTest, FtpProxyRequestNeedProxyAndServerAuth) { 478 TEST_F(URLRequestFtpJobTest, FtpProxyRequestNeedProxyAndServerAuth) {
460 MockWrite writes[] = { 479 MockWrite writes[] = {
461 MockWrite(ASYNC, 0, "GET ftp://ftp.example.com/ HTTP/1.1\r\n" 480 MockWrite(ASYNC,
462 "Host: ftp.example.com\r\n" 481 0,
463 "Proxy-Connection: keep-alive\r\n\r\n"), 482 "GET ftp://ftp.example.com/ HTTP/1.1\r\n"
464 MockWrite(ASYNC, 5, "GET ftp://ftp.example.com/ HTTP/1.1\r\n" 483 "Host: ftp.example.com\r\n"
465 "Host: ftp.example.com\r\n" 484 "Proxy-Connection: keep-alive\r\n\r\n"),
466 "Proxy-Connection: keep-alive\r\n" 485 MockWrite(ASYNC,
467 "Proxy-Authorization: Basic " 486 5,
468 "cHJveHl1c2VyOnByb3h5cGFzcw==\r\n\r\n"), 487 "GET ftp://ftp.example.com/ HTTP/1.1\r\n"
469 MockWrite(ASYNC, 10, "GET ftp://ftp.example.com/ HTTP/1.1\r\n" 488 "Host: ftp.example.com\r\n"
470 "Host: ftp.example.com\r\n" 489 "Proxy-Connection: keep-alive\r\n"
471 "Proxy-Connection: keep-alive\r\n" 490 "Proxy-Authorization: Basic "
472 "Proxy-Authorization: Basic " 491 "cHJveHl1c2VyOnByb3h5cGFzcw==\r\n\r\n"),
473 "cHJveHl1c2VyOnByb3h5cGFzcw==\r\n" 492 MockWrite(ASYNC,
474 "Authorization: Basic bXl1c2VyOm15cGFzcw==\r\n\r\n"), 493 10,
494 "GET ftp://ftp.example.com/ HTTP/1.1\r\n"
495 "Host: ftp.example.com\r\n"
496 "Proxy-Connection: keep-alive\r\n"
497 "Proxy-Authorization: Basic "
498 "cHJveHl1c2VyOnByb3h5cGFzcw==\r\n"
499 "Authorization: Basic bXl1c2VyOm15cGFzcw==\r\n\r\n"),
475 }; 500 };
476 MockRead reads[] = { 501 MockRead reads[] = {
477 // No credentials. 502 // No credentials.
478 MockRead(ASYNC, 1, "HTTP/1.1 407 Proxy Authentication Required\r\n"), 503 MockRead(ASYNC, 1, "HTTP/1.1 407 Proxy Authentication Required\r\n"),
479 MockRead(ASYNC, 2, "Proxy-Authenticate: Basic " 504 MockRead(ASYNC,
480 "realm=\"MyRealm1\"\r\n"), 505 2,
481 MockRead(ASYNC, 3, "Content-Length: 9\r\n\r\n"), 506 "Proxy-Authenticate: Basic "
482 MockRead(ASYNC, 4, "test.html"), 507 "realm=\"MyRealm1\"\r\n"),
508 MockRead(ASYNC, 3, "Content-Length: 9\r\n\r\n"),
509 MockRead(ASYNC, 4, "test.html"),
483 510
484 // Second response. 511 // Second response.
485 MockRead(ASYNC, 6, "HTTP/1.1 401 Unauthorized\r\n"), 512 MockRead(ASYNC, 6, "HTTP/1.1 401 Unauthorized\r\n"),
486 MockRead(ASYNC, 7, "WWW-Authenticate: Basic " 513 MockRead(ASYNC,
487 "realm=\"MyRealm1\"\r\n"), 514 7,
488 MockRead(ASYNC, 8, "Content-Length: 9\r\n\r\n"), 515 "WWW-Authenticate: Basic "
489 MockRead(ASYNC, 9, "test.html"), 516 "realm=\"MyRealm1\"\r\n"),
517 MockRead(ASYNC, 8, "Content-Length: 9\r\n\r\n"),
518 MockRead(ASYNC, 9, "test.html"),
490 519
491 // Third response. 520 // Third response.
492 MockRead(ASYNC, 11, "HTTP/1.1 200 OK\r\n"), 521 MockRead(ASYNC, 11, "HTTP/1.1 200 OK\r\n"),
493 MockRead(ASYNC, 12, "Content-Length: 10\r\n\r\n"), 522 MockRead(ASYNC, 12, "Content-Length: 10\r\n\r\n"),
494 MockRead(ASYNC, 13, "test2.html"), 523 MockRead(ASYNC, 13, "test2.html"),
495 }; 524 };
496 525
497 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); 526 AddSocket(reads, arraysize(reads), writes, arraysize(writes));
498 527
499 GURL url("ftp://ftp.example.com"); 528 GURL url("ftp://ftp.example.com");
500 529
501 // Make sure cached FTP credentials are not used for proxy authentication. 530 // Make sure cached FTP credentials are not used for proxy authentication.
502 request_context()->GetFtpAuthCache()->Add( 531 request_context()->GetFtpAuthCache()->Add(
503 url.GetOrigin(), 532 url.GetOrigin(),
504 AuthCredentials(ASCIIToUTF16("userdonotuse"), 533 AuthCredentials(ASCIIToUTF16("userdonotuse"),
(...skipping 14 matching lines...) Expand all
519 548
520 EXPECT_TRUE(url_request.status().is_success()); 549 EXPECT_TRUE(url_request.status().is_success());
521 EXPECT_EQ(1, network_delegate()->completed_requests()); 550 EXPECT_EQ(1, network_delegate()->completed_requests());
522 EXPECT_EQ(0, network_delegate()->error_count()); 551 EXPECT_EQ(0, network_delegate()->error_count());
523 EXPECT_TRUE(request_delegate.auth_required_called()); 552 EXPECT_TRUE(request_delegate.auth_required_called());
524 EXPECT_EQ("test2.html", request_delegate.data_received()); 553 EXPECT_EQ("test2.html", request_delegate.data_received());
525 } 554 }
526 555
527 TEST_F(URLRequestFtpJobTest, FtpProxyRequestDoNotSaveCookies) { 556 TEST_F(URLRequestFtpJobTest, FtpProxyRequestDoNotSaveCookies) {
528 MockWrite writes[] = { 557 MockWrite writes[] = {
529 MockWrite(ASYNC, 0, "GET ftp://ftp.example.com/ HTTP/1.1\r\n" 558 MockWrite(ASYNC,
530 "Host: ftp.example.com\r\n" 559 0,
531 "Proxy-Connection: keep-alive\r\n\r\n"), 560 "GET ftp://ftp.example.com/ HTTP/1.1\r\n"
561 "Host: ftp.example.com\r\n"
562 "Proxy-Connection: keep-alive\r\n\r\n"),
532 }; 563 };
533 MockRead reads[] = { 564 MockRead reads[] = {
534 MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"), 565 MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"),
535 MockRead(ASYNC, 2, "Content-Length: 9\r\n"), 566 MockRead(ASYNC, 2, "Content-Length: 9\r\n"),
536 MockRead(ASYNC, 3, "Set-Cookie: name=value\r\n\r\n"), 567 MockRead(ASYNC, 3, "Set-Cookie: name=value\r\n\r\n"),
537 MockRead(ASYNC, 4, "test.html"), 568 MockRead(ASYNC, 4, "test.html"),
538 }; 569 };
539 570
540 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); 571 AddSocket(reads, arraysize(reads), writes, arraysize(writes));
541 572
542 TestDelegate request_delegate; 573 TestDelegate request_delegate;
543 URLRequest url_request(GURL("ftp://ftp.example.com/"), 574 URLRequest url_request(GURL("ftp://ftp.example.com/"),
544 DEFAULT_PRIORITY, 575 DEFAULT_PRIORITY,
545 &request_delegate, 576 &request_delegate,
546 request_context()); 577 request_context());
547 url_request.Start(); 578 url_request.Start();
548 ASSERT_TRUE(url_request.is_pending()); 579 ASSERT_TRUE(url_request.is_pending());
549 580
550 socket_data(0)->RunFor(5); 581 socket_data(0)->RunFor(5);
551 582
552 EXPECT_TRUE(url_request.status().is_success()); 583 EXPECT_TRUE(url_request.status().is_success());
553 EXPECT_EQ(1, network_delegate()->completed_requests()); 584 EXPECT_EQ(1, network_delegate()->completed_requests());
554 EXPECT_EQ(0, network_delegate()->error_count()); 585 EXPECT_EQ(0, network_delegate()->error_count());
555 586
556 // Make sure we do not accept cookies. 587 // Make sure we do not accept cookies.
557 EXPECT_EQ(0, network_delegate()->set_cookie_count()); 588 EXPECT_EQ(0, network_delegate()->set_cookie_count());
558 589
559 EXPECT_FALSE(request_delegate.auth_required_called()); 590 EXPECT_FALSE(request_delegate.auth_required_called());
560 EXPECT_EQ("test.html", request_delegate.data_received()); 591 EXPECT_EQ("test.html", request_delegate.data_received());
561 } 592 }
562 593
563 TEST_F(URLRequestFtpJobTest, FtpProxyRequestDoNotFollowRedirects) { 594 TEST_F(URLRequestFtpJobTest, FtpProxyRequestDoNotFollowRedirects) {
564 MockWrite writes[] = { 595 MockWrite writes[] = {
565 MockWrite(SYNCHRONOUS, 0, "GET ftp://ftp.example.com/ HTTP/1.1\r\n" 596 MockWrite(SYNCHRONOUS,
566 "Host: ftp.example.com\r\n" 597 0,
567 "Proxy-Connection: keep-alive\r\n\r\n"), 598 "GET ftp://ftp.example.com/ HTTP/1.1\r\n"
599 "Host: ftp.example.com\r\n"
600 "Proxy-Connection: keep-alive\r\n\r\n"),
568 }; 601 };
569 MockRead reads[] = { 602 MockRead reads[] = {
570 MockRead(SYNCHRONOUS, 1, "HTTP/1.1 302 Found\r\n"), 603 MockRead(SYNCHRONOUS, 1, "HTTP/1.1 302 Found\r\n"),
571 MockRead(ASYNC, 2, "Location: http://other.example.com/\r\n\r\n"), 604 MockRead(ASYNC, 2, "Location: http://other.example.com/\r\n\r\n"),
572 }; 605 };
573 606
574 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); 607 AddSocket(reads, arraysize(reads), writes, arraysize(writes));
575 608
576 TestDelegate request_delegate; 609 TestDelegate request_delegate;
577 URLRequest url_request(GURL("ftp://ftp.example.com/"), 610 URLRequest url_request(GURL("ftp://ftp.example.com/"),
578 DEFAULT_PRIORITY, 611 DEFAULT_PRIORITY,
579 &request_delegate, 612 &request_delegate,
580 request_context()); 613 request_context());
581 url_request.Start(); 614 url_request.Start();
(...skipping 10 matching lines...) Expand all
592 625
593 EXPECT_EQ(1, network_delegate()->completed_requests()); 626 EXPECT_EQ(1, network_delegate()->completed_requests());
594 EXPECT_EQ(1, network_delegate()->error_count()); 627 EXPECT_EQ(1, network_delegate()->error_count());
595 EXPECT_FALSE(url_request.status().is_success()); 628 EXPECT_FALSE(url_request.status().is_success());
596 EXPECT_EQ(ERR_UNSAFE_REDIRECT, url_request.status().error()); 629 EXPECT_EQ(ERR_UNSAFE_REDIRECT, url_request.status().error());
597 } 630 }
598 631
599 // We should re-use socket for requests using the same scheme, host, and port. 632 // We should re-use socket for requests using the same scheme, host, and port.
600 TEST_F(URLRequestFtpJobTest, FtpProxyRequestReuseSocket) { 633 TEST_F(URLRequestFtpJobTest, FtpProxyRequestReuseSocket) {
601 MockWrite writes[] = { 634 MockWrite writes[] = {
602 MockWrite(ASYNC, 0, "GET ftp://ftp.example.com/first HTTP/1.1\r\n" 635 MockWrite(ASYNC,
603 "Host: ftp.example.com\r\n" 636 0,
604 "Proxy-Connection: keep-alive\r\n\r\n"), 637 "GET ftp://ftp.example.com/first HTTP/1.1\r\n"
605 MockWrite(ASYNC, 4, "GET ftp://ftp.example.com/second HTTP/1.1\r\n" 638 "Host: ftp.example.com\r\n"
606 "Host: ftp.example.com\r\n" 639 "Proxy-Connection: keep-alive\r\n\r\n"),
607 "Proxy-Connection: keep-alive\r\n\r\n"), 640 MockWrite(ASYNC,
641 4,
642 "GET ftp://ftp.example.com/second HTTP/1.1\r\n"
643 "Host: ftp.example.com\r\n"
644 "Proxy-Connection: keep-alive\r\n\r\n"),
608 }; 645 };
609 MockRead reads[] = { 646 MockRead reads[] = {
610 MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"), 647 MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"),
611 MockRead(ASYNC, 2, "Content-Length: 10\r\n\r\n"), 648 MockRead(ASYNC, 2, "Content-Length: 10\r\n\r\n"),
612 MockRead(ASYNC, 3, "test1.html"), 649 MockRead(ASYNC, 3, "test1.html"),
613 MockRead(ASYNC, 5, "HTTP/1.1 200 OK\r\n"), 650 MockRead(ASYNC, 5, "HTTP/1.1 200 OK\r\n"),
614 MockRead(ASYNC, 6, "Content-Length: 10\r\n\r\n"), 651 MockRead(ASYNC, 6, "Content-Length: 10\r\n\r\n"),
615 MockRead(ASYNC, 7, "test2.html"), 652 MockRead(ASYNC, 7, "test2.html"),
616 }; 653 };
617 654
618 AddSocket(reads, arraysize(reads), writes, arraysize(writes)); 655 AddSocket(reads, arraysize(reads), writes, arraysize(writes));
619 656
620 TestDelegate request_delegate1; 657 TestDelegate request_delegate1;
621 URLRequest url_request1(GURL("ftp://ftp.example.com/first"), 658 URLRequest url_request1(GURL("ftp://ftp.example.com/first"),
622 DEFAULT_PRIORITY, 659 DEFAULT_PRIORITY,
623 &request_delegate1, 660 &request_delegate1,
624 request_context()); 661 request_context());
625 url_request1.Start(); 662 url_request1.Start();
(...skipping 19 matching lines...) Expand all
645 EXPECT_EQ(2, network_delegate()->completed_requests()); 682 EXPECT_EQ(2, network_delegate()->completed_requests());
646 EXPECT_EQ(0, network_delegate()->error_count()); 683 EXPECT_EQ(0, network_delegate()->error_count());
647 EXPECT_FALSE(request_delegate2.auth_required_called()); 684 EXPECT_FALSE(request_delegate2.auth_required_called());
648 EXPECT_EQ("test2.html", request_delegate2.data_received()); 685 EXPECT_EQ("test2.html", request_delegate2.data_received());
649 } 686 }
650 687
651 // We should not re-use socket when there are two requests to the same host, 688 // We should not re-use socket when there are two requests to the same host,
652 // but one is FTP and the other is HTTP. 689 // but one is FTP and the other is HTTP.
653 TEST_F(URLRequestFtpJobTest, FtpProxyRequestDoNotReuseSocket) { 690 TEST_F(URLRequestFtpJobTest, FtpProxyRequestDoNotReuseSocket) {
654 MockWrite writes1[] = { 691 MockWrite writes1[] = {
655 MockWrite(ASYNC, 0, "GET ftp://ftp.example.com/first HTTP/1.1\r\n" 692 MockWrite(ASYNC,
656 "Host: ftp.example.com\r\n" 693 0,
657 "Proxy-Connection: keep-alive\r\n\r\n"), 694 "GET ftp://ftp.example.com/first HTTP/1.1\r\n"
695 "Host: ftp.example.com\r\n"
696 "Proxy-Connection: keep-alive\r\n\r\n"),
658 }; 697 };
659 MockWrite writes2[] = { 698 MockWrite writes2[] = {
660 MockWrite(ASYNC, 0, "GET /second HTTP/1.1\r\n" 699 MockWrite(ASYNC,
661 "Host: ftp.example.com\r\n" 700 0,
662 "Connection: keep-alive\r\n" 701 "GET /second HTTP/1.1\r\n"
663 "User-Agent:\r\n" 702 "Host: ftp.example.com\r\n"
664 "Accept-Encoding: gzip,deflate\r\n" 703 "Connection: keep-alive\r\n"
665 "Accept-Language: en-us,fr\r\n\r\n"), 704 "User-Agent:\r\n"
705 "Accept-Encoding: gzip,deflate\r\n"
706 "Accept-Language: en-us,fr\r\n\r\n"),
666 }; 707 };
667 MockRead reads1[] = { 708 MockRead reads1[] = {
668 MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"), 709 MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"),
669 MockRead(ASYNC, 2, "Content-Length: 10\r\n\r\n"), 710 MockRead(ASYNC, 2, "Content-Length: 10\r\n\r\n"),
670 MockRead(ASYNC, 3, "test1.html"), 711 MockRead(ASYNC, 3, "test1.html"),
671 }; 712 };
672 MockRead reads2[] = { 713 MockRead reads2[] = {
673 MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"), 714 MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"),
674 MockRead(ASYNC, 2, "Content-Length: 10\r\n\r\n"), 715 MockRead(ASYNC, 2, "Content-Length: 10\r\n\r\n"),
675 MockRead(ASYNC, 3, "test2.html"), 716 MockRead(ASYNC, 3, "test2.html"),
676 }; 717 };
677 718
678 AddSocket(reads1, arraysize(reads1), writes1, arraysize(writes1)); 719 AddSocket(reads1, arraysize(reads1), writes1, arraysize(writes1));
679 AddSocket(reads2, arraysize(reads2), writes2, arraysize(writes2)); 720 AddSocket(reads2, arraysize(reads2), writes2, arraysize(writes2));
680 721
681 TestDelegate request_delegate1; 722 TestDelegate request_delegate1;
682 URLRequest url_request1(GURL("ftp://ftp.example.com/first"), 723 URLRequest url_request1(GURL("ftp://ftp.example.com/first"),
683 DEFAULT_PRIORITY, 724 DEFAULT_PRIORITY,
684 &request_delegate1, 725 &request_delegate1,
685 request_context()); 726 request_context());
(...skipping 19 matching lines...) Expand all
705 EXPECT_TRUE(url_request2.status().is_success()); 746 EXPECT_TRUE(url_request2.status().is_success());
706 EXPECT_EQ(2, network_delegate()->completed_requests()); 747 EXPECT_EQ(2, network_delegate()->completed_requests());
707 EXPECT_EQ(0, network_delegate()->error_count()); 748 EXPECT_EQ(0, network_delegate()->error_count());
708 EXPECT_FALSE(request_delegate2.auth_required_called()); 749 EXPECT_FALSE(request_delegate2.auth_required_called());
709 EXPECT_EQ("test2.html", request_delegate2.data_received()); 750 EXPECT_EQ("test2.html", request_delegate2.data_received());
710 } 751 }
711 752
712 } // namespace 753 } // namespace
713 754
714 } // namespace net 755 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698