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 "net/url_request/url_request_unittest.h" | 5 #include "net/url_request/url_request_unittest.h" |
6 | 6 |
7 #include "build/build_config.h" | 7 #include "build/build_config.h" |
8 | 8 |
9 #if defined(OS_WIN) | 9 #if defined(OS_WIN) |
10 #include <windows.h> | 10 #include <windows.h> |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 } | 48 } |
49 | 49 |
50 virtual ~URLRequestHttpCacheContext() { | 50 virtual ~URLRequestHttpCacheContext() { |
51 delete http_transaction_factory_; | 51 delete http_transaction_factory_; |
52 delete proxy_service_; | 52 delete proxy_service_; |
53 } | 53 } |
54 }; | 54 }; |
55 | 55 |
56 class TestURLRequest : public URLRequest { | 56 class TestURLRequest : public URLRequest { |
57 public: | 57 public: |
58 TestURLRequest(const GURL& url, Delegate* delegate) | 58 TestURLRequest(const GURL& url, Delegate* delegate) |
59 : URLRequest(url, delegate) { | 59 : URLRequest(url, delegate) { |
60 set_context(new URLRequestHttpCacheContext()); | 60 set_context(new URLRequestHttpCacheContext()); |
61 } | 61 } |
62 }; | 62 }; |
63 | 63 |
64 StringPiece TestNetResourceProvider(int key) { | 64 StringPiece TestNetResourceProvider(int key) { |
65 return "header"; | 65 return "header"; |
66 } | 66 } |
67 | 67 |
68 // Do a case-insensitive search through |haystack| for |needle|. | 68 // Do a case-insensitive search through |haystack| for |needle|. |
69 bool ContainsString(const std::string& haystack, const char* needle) { | 69 bool ContainsString(const std::string& haystack, const char* needle) { |
70 std::string::const_iterator it = | 70 std::string::const_iterator it = |
71 std::search(haystack.begin(), | 71 std::search(haystack.begin(), |
72 haystack.end(), | 72 haystack.end(), |
73 needle, | 73 needle, |
74 needle + strlen(needle), | 74 needle + strlen(needle), |
75 CaseInsensitiveCompare<char>()); | 75 CaseInsensitiveCompare<char>()); |
76 return it != haystack.end(); | 76 return it != haystack.end(); |
77 } | 77 } |
78 | 78 |
79 } // namespace | 79 } // namespace |
80 | 80 |
81 // Inherit PlatformTest since we require the autorelease pool on Mac OS X.f | 81 // Inherit PlatformTest since we require the autorelease pool on Mac OS X.f |
82 class URLRequestTest : public PlatformTest { | 82 class URLRequestTest : public PlatformTest { |
83 }; | 83 }; |
84 | 84 |
| 85 TEST_F(URLRequestTest, ProxyTunnelRedirectTest) { |
| 86 // In this unit test, we're using the HTTPTestServer as a proxy server and |
| 87 // issue a CONNECT request with the magic host name "www.redirect.com" to |
| 88 // it. The HTTPTestServer will return a 302 response, which we should not |
| 89 // follow. |
| 90 scoped_refptr<HTTPTestServer> server = |
| 91 HTTPTestServer::CreateServer(L"", NULL); |
| 92 ASSERT_TRUE(NULL != server.get()); |
| 93 TestDelegate d; |
| 94 { |
| 95 URLRequest r(GURL("https://www.redirect.com/"), &d); |
| 96 std::string proxy("localhost:"); |
| 97 proxy.append(IntToString(kHTTPDefaultPort)); |
| 98 r.set_context(new TestURLRequestContext(proxy)); |
| 99 |
| 100 r.Start(); |
| 101 EXPECT_TRUE(r.is_pending()); |
| 102 |
| 103 MessageLoop::current()->Run(); |
| 104 |
| 105 EXPECT_EQ(1, d.response_started_count()); |
| 106 // We should have rewritten the 302 response code as 500. |
| 107 EXPECT_EQ(500, r.GetResponseCode()); |
| 108 // We should not have followed the redirect. |
| 109 EXPECT_EQ(0, d.received_redirect_count()); |
| 110 } |
| 111 } |
| 112 |
85 TEST_F(URLRequestTest, GetTest_NoCache) { | 113 TEST_F(URLRequestTest, GetTest_NoCache) { |
86 scoped_refptr<HTTPTestServer> server = | 114 scoped_refptr<HTTPTestServer> server = |
87 HTTPTestServer::CreateServer(L"", NULL); | 115 HTTPTestServer::CreateServer(L"", NULL); |
88 ASSERT_TRUE(NULL != server.get()); | 116 ASSERT_TRUE(NULL != server.get()); |
89 TestDelegate d; | 117 TestDelegate d; |
90 { | 118 { |
91 TestURLRequest r(server->TestServerPage(""), &d); | 119 TestURLRequest r(server->TestServerPage(""), &d); |
92 | 120 |
93 r.Start(); | 121 r.Start(); |
94 EXPECT_TRUE(r.is_pending()); | 122 EXPECT_TRUE(r.is_pending()); |
95 | 123 |
96 MessageLoop::current()->Run(); | 124 MessageLoop::current()->Run(); |
97 | 125 |
98 EXPECT_EQ(1, d.response_started_count()); | 126 EXPECT_EQ(1, d.response_started_count()); |
99 EXPECT_FALSE(d.received_data_before_response()); | 127 EXPECT_FALSE(d.received_data_before_response()); |
100 EXPECT_NE(0, d.bytes_received()); | 128 EXPECT_NE(0, d.bytes_received()); |
101 } | 129 } |
102 #ifndef NDEBUG | 130 #ifndef NDEBUG |
103 DCHECK_EQ(url_request_metrics.object_count,0); | 131 DCHECK_EQ(url_request_metrics.object_count, 0); |
104 #endif | 132 #endif |
105 } | 133 } |
106 | 134 |
107 TEST_F(URLRequestTest, GetTest) { | 135 TEST_F(URLRequestTest, GetTest) { |
108 scoped_refptr<HTTPTestServer> server = | 136 scoped_refptr<HTTPTestServer> server = |
109 HTTPTestServer::CreateServer(L"", NULL); | 137 HTTPTestServer::CreateServer(L"", NULL); |
110 ASSERT_TRUE(NULL != server.get()); | 138 ASSERT_TRUE(NULL != server.get()); |
111 TestDelegate d; | 139 TestDelegate d; |
112 { | 140 { |
113 TestURLRequest r(server->TestServerPage(""), &d); | 141 TestURLRequest r(server->TestServerPage(""), &d); |
114 | 142 |
115 r.Start(); | 143 r.Start(); |
116 EXPECT_TRUE(r.is_pending()); | 144 EXPECT_TRUE(r.is_pending()); |
117 | 145 |
118 MessageLoop::current()->Run(); | 146 MessageLoop::current()->Run(); |
119 | 147 |
120 EXPECT_EQ(1, d.response_started_count()); | 148 EXPECT_EQ(1, d.response_started_count()); |
121 EXPECT_FALSE(d.received_data_before_response()); | 149 EXPECT_FALSE(d.received_data_before_response()); |
122 EXPECT_NE(0, d.bytes_received()); | 150 EXPECT_NE(0, d.bytes_received()); |
123 } | 151 } |
124 #ifndef NDEBUG | 152 #ifndef NDEBUG |
125 DCHECK_EQ(url_request_metrics.object_count,0); | 153 DCHECK_EQ(url_request_metrics.object_count, 0); |
126 #endif | 154 #endif |
127 } | 155 } |
128 | 156 |
129 class HTTPSRequestTest : public testing::Test { | 157 class HTTPSRequestTest : public testing::Test { |
130 protected: | 158 protected: |
131 HTTPSRequestTest() : util_() {}; | 159 HTTPSRequestTest() : util_() {} |
132 | 160 |
133 SSLTestUtil util_; | 161 SSLTestUtil util_; |
134 }; | 162 }; |
135 | 163 |
136 #if defined(OS_MACOSX) | 164 #if defined(OS_MACOSX) |
137 // TODO(port): support temporary root cert on mac | 165 // TODO(port): support temporary root cert on mac |
138 #define MAYBE_HTTPSGetTest DISABLED_HTTPSGetTest | 166 #define MAYBE_HTTPSGetTest DISABLED_HTTPSGetTest |
139 #else | 167 #else |
140 #define MAYBE_HTTPSGetTest HTTPSGetTest | 168 #define MAYBE_HTTPSGetTest HTTPSGetTest |
141 #endif | 169 #endif |
142 | 170 |
143 TEST_F(HTTPSRequestTest, MAYBE_HTTPSGetTest) { | 171 TEST_F(HTTPSRequestTest, MAYBE_HTTPSGetTest) { |
(...skipping 14 matching lines...) Expand all Loading... |
158 r.Start(); | 186 r.Start(); |
159 EXPECT_TRUE(r.is_pending()); | 187 EXPECT_TRUE(r.is_pending()); |
160 | 188 |
161 MessageLoop::current()->Run(); | 189 MessageLoop::current()->Run(); |
162 | 190 |
163 EXPECT_EQ(1, d.response_started_count()); | 191 EXPECT_EQ(1, d.response_started_count()); |
164 EXPECT_FALSE(d.received_data_before_response()); | 192 EXPECT_FALSE(d.received_data_before_response()); |
165 EXPECT_NE(0, d.bytes_received()); | 193 EXPECT_NE(0, d.bytes_received()); |
166 } | 194 } |
167 #ifndef NDEBUG | 195 #ifndef NDEBUG |
168 DCHECK_EQ(url_request_metrics.object_count,0); | 196 DCHECK_EQ(url_request_metrics.object_count, 0); |
169 #endif | 197 #endif |
170 } | 198 } |
171 | 199 |
172 TEST_F(URLRequestTest, CancelTest) { | 200 TEST_F(URLRequestTest, CancelTest) { |
173 TestDelegate d; | 201 TestDelegate d; |
174 { | 202 { |
175 TestURLRequest r(GURL("http://www.google.com/"), &d); | 203 TestURLRequest r(GURL("http://www.google.com/"), &d); |
176 | 204 |
177 r.Start(); | 205 r.Start(); |
178 EXPECT_TRUE(r.is_pending()); | 206 EXPECT_TRUE(r.is_pending()); |
179 | 207 |
180 r.Cancel(); | 208 r.Cancel(); |
181 | 209 |
182 MessageLoop::current()->Run(); | 210 MessageLoop::current()->Run(); |
183 | 211 |
184 // We expect to receive OnResponseStarted even though the request has been | 212 // We expect to receive OnResponseStarted even though the request has been |
185 // cancelled. | 213 // cancelled. |
186 EXPECT_EQ(1, d.response_started_count()); | 214 EXPECT_EQ(1, d.response_started_count()); |
187 EXPECT_EQ(0, d.bytes_received()); | 215 EXPECT_EQ(0, d.bytes_received()); |
188 EXPECT_FALSE(d.received_data_before_response()); | 216 EXPECT_FALSE(d.received_data_before_response()); |
189 } | 217 } |
190 #ifndef NDEBUG | 218 #ifndef NDEBUG |
191 DCHECK_EQ(url_request_metrics.object_count,0); | 219 DCHECK_EQ(url_request_metrics.object_count, 0); |
192 #endif | 220 #endif |
193 } | 221 } |
194 | 222 |
195 TEST_F(URLRequestTest, CancelTest2) { | 223 TEST_F(URLRequestTest, CancelTest2) { |
196 scoped_refptr<HTTPTestServer> server = | 224 scoped_refptr<HTTPTestServer> server = |
197 HTTPTestServer::CreateServer(L"", NULL); | 225 HTTPTestServer::CreateServer(L"", NULL); |
198 ASSERT_TRUE(NULL != server.get()); | 226 ASSERT_TRUE(NULL != server.get()); |
199 | 227 |
200 // error C2446: '!=' : no conversion from 'HTTPTestServer *const ' | 228 // error C2446: '!=' : no conversion from 'HTTPTestServer *const ' |
201 // to 'const int' | 229 // to 'const int' |
202 | 230 |
203 TestDelegate d; | 231 TestDelegate d; |
204 { | 232 { |
205 TestURLRequest r(server->TestServerPage(""), &d); | 233 TestURLRequest r(server->TestServerPage(""), &d); |
206 | 234 |
207 d.set_cancel_in_response_started(true); | 235 d.set_cancel_in_response_started(true); |
208 | 236 |
209 r.Start(); | 237 r.Start(); |
210 EXPECT_TRUE(r.is_pending()); | 238 EXPECT_TRUE(r.is_pending()); |
211 | 239 |
212 MessageLoop::current()->Run(); | 240 MessageLoop::current()->Run(); |
213 | 241 |
214 EXPECT_EQ(1, d.response_started_count()); | 242 EXPECT_EQ(1, d.response_started_count()); |
215 EXPECT_EQ(0, d.bytes_received()); | 243 EXPECT_EQ(0, d.bytes_received()); |
216 EXPECT_FALSE(d.received_data_before_response()); | 244 EXPECT_FALSE(d.received_data_before_response()); |
217 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); | 245 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); |
218 } | 246 } |
219 #ifndef NDEBUG | 247 #ifndef NDEBUG |
220 DCHECK_EQ(url_request_metrics.object_count,0); | 248 DCHECK_EQ(url_request_metrics.object_count, 0); |
221 #endif | 249 #endif |
222 } | 250 } |
223 | 251 |
224 TEST_F(URLRequestTest, CancelTest3) { | 252 TEST_F(URLRequestTest, CancelTest3) { |
225 scoped_refptr<HTTPTestServer> server = | 253 scoped_refptr<HTTPTestServer> server = |
226 HTTPTestServer::CreateServer(L"", NULL); | 254 HTTPTestServer::CreateServer(L"", NULL); |
227 ASSERT_TRUE(NULL != server.get()); | 255 ASSERT_TRUE(NULL != server.get()); |
228 TestDelegate d; | 256 TestDelegate d; |
229 { | 257 { |
230 TestURLRequest r(server->TestServerPage(""), &d); | 258 TestURLRequest r(server->TestServerPage(""), &d); |
231 | 259 |
232 d.set_cancel_in_received_data(true); | 260 d.set_cancel_in_received_data(true); |
233 | 261 |
234 r.Start(); | 262 r.Start(); |
235 EXPECT_TRUE(r.is_pending()); | 263 EXPECT_TRUE(r.is_pending()); |
236 | 264 |
237 MessageLoop::current()->Run(); | 265 MessageLoop::current()->Run(); |
238 | 266 |
239 EXPECT_EQ(1, d.response_started_count()); | 267 EXPECT_EQ(1, d.response_started_count()); |
240 // There is no guarantee about how much data was received | 268 // There is no guarantee about how much data was received |
241 // before the cancel was issued. It could have been 0 bytes, | 269 // before the cancel was issued. It could have been 0 bytes, |
242 // or it could have been all the bytes. | 270 // or it could have been all the bytes. |
243 // EXPECT_EQ(0, d.bytes_received()); | 271 // EXPECT_EQ(0, d.bytes_received()); |
244 EXPECT_FALSE(d.received_data_before_response()); | 272 EXPECT_FALSE(d.received_data_before_response()); |
245 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); | 273 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); |
246 } | 274 } |
247 #ifndef NDEBUG | 275 #ifndef NDEBUG |
248 DCHECK_EQ(url_request_metrics.object_count,0); | 276 DCHECK_EQ(url_request_metrics.object_count, 0); |
249 #endif | 277 #endif |
250 } | 278 } |
251 | 279 |
252 TEST_F(URLRequestTest, CancelTest4) { | 280 TEST_F(URLRequestTest, CancelTest4) { |
253 scoped_refptr<HTTPTestServer> server = | 281 scoped_refptr<HTTPTestServer> server = |
254 HTTPTestServer::CreateServer(L"", NULL); | 282 HTTPTestServer::CreateServer(L"", NULL); |
255 ASSERT_TRUE(NULL != server.get()); | 283 ASSERT_TRUE(NULL != server.get()); |
256 TestDelegate d; | 284 TestDelegate d; |
257 { | 285 { |
258 TestURLRequest r(server->TestServerPage(""), &d); | 286 TestURLRequest r(server->TestServerPage(""), &d); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
313 | 341 |
314 TEST_F(URLRequestTest, PostTest) { | 342 TEST_F(URLRequestTest, PostTest) { |
315 scoped_refptr<HTTPTestServer> server = | 343 scoped_refptr<HTTPTestServer> server = |
316 HTTPTestServer::CreateServer(L"net/data", NULL); | 344 HTTPTestServer::CreateServer(L"net/data", NULL); |
317 ASSERT_TRUE(NULL != server.get()); | 345 ASSERT_TRUE(NULL != server.get()); |
318 const int kMsgSize = 20000; // multiple of 10 | 346 const int kMsgSize = 20000; // multiple of 10 |
319 const int kIterations = 50; | 347 const int kIterations = 50; |
320 char *uploadBytes = new char[kMsgSize+1]; | 348 char *uploadBytes = new char[kMsgSize+1]; |
321 char *ptr = uploadBytes; | 349 char *ptr = uploadBytes; |
322 char marker = 'a'; | 350 char marker = 'a'; |
323 for(int idx=0; idx<kMsgSize/10; idx++) { | 351 for (int idx = 0; idx < kMsgSize/10; idx++) { |
324 memcpy(ptr, "----------", 10); | 352 memcpy(ptr, "----------", 10); |
325 ptr += 10; | 353 ptr += 10; |
326 if (idx % 100 == 0) { | 354 if (idx % 100 == 0) { |
327 ptr--; | 355 ptr--; |
328 *ptr++ = marker; | 356 *ptr++ = marker; |
329 if (++marker > 'z') | 357 if (++marker > 'z') |
330 marker = 'a'; | 358 marker = 'a'; |
331 } | 359 } |
332 | |
333 } | 360 } |
334 uploadBytes[kMsgSize] = '\0'; | 361 uploadBytes[kMsgSize] = '\0'; |
335 | 362 |
336 scoped_refptr<URLRequestContext> context = | 363 scoped_refptr<URLRequestContext> context = |
337 new URLRequestHttpCacheContext(); | 364 new URLRequestHttpCacheContext(); |
338 | 365 |
339 for (int i = 0; i < kIterations; ++i) { | 366 for (int i = 0; i < kIterations; ++i) { |
340 TestDelegate d; | 367 TestDelegate d; |
341 URLRequest r(server->TestServerPage("echo"), &d); | 368 URLRequest r(server->TestServerPage("echo"), &d); |
342 r.set_context(context); | 369 r.set_context(context); |
343 r.set_method("POST"); | 370 r.set_method("POST"); |
344 | 371 |
345 r.AppendBytesToUpload(uploadBytes, kMsgSize); | 372 r.AppendBytesToUpload(uploadBytes, kMsgSize); |
346 | 373 |
347 r.Start(); | 374 r.Start(); |
348 EXPECT_TRUE(r.is_pending()); | 375 EXPECT_TRUE(r.is_pending()); |
349 | 376 |
350 MessageLoop::current()->Run(); | 377 MessageLoop::current()->Run(); |
351 | 378 |
352 ASSERT_EQ(1, d.response_started_count()) << "request failed: " << | 379 ASSERT_EQ(1, d.response_started_count()) << "request failed: " << |
353 (int) r.status().status() << ", os error: " << r.status().os_error(); | 380 (int) r.status().status() << ", os error: " << r.status().os_error(); |
354 | 381 |
355 EXPECT_FALSE(d.received_data_before_response()); | 382 EXPECT_FALSE(d.received_data_before_response()); |
356 EXPECT_EQ(uploadBytes, d.data_received()); | 383 EXPECT_EQ(uploadBytes, d.data_received()); |
357 EXPECT_EQ(memcmp(uploadBytes, d.data_received().c_str(), kMsgSize),0); | 384 EXPECT_EQ(memcmp(uploadBytes, d.data_received().c_str(), kMsgSize), 0); |
358 EXPECT_EQ(d.data_received().compare(uploadBytes), 0); | 385 EXPECT_EQ(d.data_received().compare(uploadBytes), 0); |
359 } | 386 } |
360 delete[] uploadBytes; | 387 delete[] uploadBytes; |
361 #ifndef NDEBUG | 388 #ifndef NDEBUG |
362 DCHECK_EQ(url_request_metrics.object_count,0); | 389 DCHECK_EQ(url_request_metrics.object_count, 0); |
363 #endif | 390 #endif |
364 } | 391 } |
365 | 392 |
366 TEST_F(URLRequestTest, PostEmptyTest) { | 393 TEST_F(URLRequestTest, PostEmptyTest) { |
367 scoped_refptr<HTTPTestServer> server = | 394 scoped_refptr<HTTPTestServer> server = |
368 HTTPTestServer::CreateServer(L"net/data", NULL); | 395 HTTPTestServer::CreateServer(L"net/data", NULL); |
369 ASSERT_TRUE(NULL != server.get()); | 396 ASSERT_TRUE(NULL != server.get()); |
370 TestDelegate d; | 397 TestDelegate d; |
371 { | 398 { |
372 TestURLRequest r(server->TestServerPage("echo"), &d); | 399 TestURLRequest r(server->TestServerPage("echo"), &d); |
373 r.set_method("POST"); | 400 r.set_method("POST"); |
374 | 401 |
375 r.Start(); | 402 r.Start(); |
376 EXPECT_TRUE(r.is_pending()); | 403 EXPECT_TRUE(r.is_pending()); |
377 | 404 |
378 MessageLoop::current()->Run(); | 405 MessageLoop::current()->Run(); |
379 | 406 |
380 ASSERT_EQ(1, d.response_started_count()) << "request failed: " << | 407 ASSERT_EQ(1, d.response_started_count()) << "request failed: " << |
381 (int) r.status().status() << ", os error: " << r.status().os_error(); | 408 (int) r.status().status() << ", os error: " << r.status().os_error(); |
382 | 409 |
383 EXPECT_FALSE(d.received_data_before_response()); | 410 EXPECT_FALSE(d.received_data_before_response()); |
384 EXPECT_TRUE(d.data_received().empty()); | 411 EXPECT_TRUE(d.data_received().empty()); |
385 } | 412 } |
386 #ifndef NDEBUG | 413 #ifndef NDEBUG |
387 DCHECK_EQ(url_request_metrics.object_count,0); | 414 DCHECK_EQ(url_request_metrics.object_count, 0); |
388 #endif | 415 #endif |
389 } | 416 } |
390 | 417 |
391 TEST_F(URLRequestTest, PostFileTest) { | 418 TEST_F(URLRequestTest, PostFileTest) { |
392 scoped_refptr<HTTPTestServer> server = | 419 scoped_refptr<HTTPTestServer> server = |
393 HTTPTestServer::CreateServer(L"net/data", NULL); | 420 HTTPTestServer::CreateServer(L"net/data", NULL); |
394 ASSERT_TRUE(NULL != server.get()); | 421 ASSERT_TRUE(NULL != server.get()); |
395 TestDelegate d; | 422 TestDelegate d; |
396 { | 423 { |
397 TestURLRequest r(server->TestServerPage("echo"), &d); | 424 TestURLRequest r(server->TestServerPage("echo"), &d); |
(...skipping 30 matching lines...) Expand all Loading... |
428 | 455 |
429 ASSERT_EQ(1, d.response_started_count()) << "request failed: " << | 456 ASSERT_EQ(1, d.response_started_count()) << "request failed: " << |
430 (int) r.status().status() << ", os error: " << r.status().os_error(); | 457 (int) r.status().status() << ", os error: " << r.status().os_error(); |
431 | 458 |
432 EXPECT_FALSE(d.received_data_before_response()); | 459 EXPECT_FALSE(d.received_data_before_response()); |
433 | 460 |
434 ASSERT_EQ(size, d.bytes_received()); | 461 ASSERT_EQ(size, d.bytes_received()); |
435 EXPECT_EQ(0, memcmp(d.data_received().c_str(), buf.get(), size)); | 462 EXPECT_EQ(0, memcmp(d.data_received().c_str(), buf.get(), size)); |
436 } | 463 } |
437 #ifndef NDEBUG | 464 #ifndef NDEBUG |
438 DCHECK_EQ(url_request_metrics.object_count,0); | 465 DCHECK_EQ(url_request_metrics.object_count, 0); |
439 #endif | 466 #endif |
440 } | 467 } |
441 | 468 |
442 TEST_F(URLRequestTest, AboutBlankTest) { | 469 TEST_F(URLRequestTest, AboutBlankTest) { |
443 TestDelegate d; | 470 TestDelegate d; |
444 { | 471 { |
445 TestURLRequest r(GURL("about:blank"), &d); | 472 TestURLRequest r(GURL("about:blank"), &d); |
446 | 473 |
447 r.Start(); | 474 r.Start(); |
448 EXPECT_TRUE(r.is_pending()); | 475 EXPECT_TRUE(r.is_pending()); |
449 | 476 |
450 MessageLoop::current()->Run(); | 477 MessageLoop::current()->Run(); |
451 | 478 |
452 EXPECT_TRUE(!r.is_pending()); | 479 EXPECT_TRUE(!r.is_pending()); |
453 EXPECT_FALSE(d.received_data_before_response()); | 480 EXPECT_FALSE(d.received_data_before_response()); |
454 EXPECT_EQ(d.bytes_received(), 0); | 481 EXPECT_EQ(d.bytes_received(), 0); |
455 } | 482 } |
456 #ifndef NDEBUG | 483 #ifndef NDEBUG |
457 DCHECK_EQ(url_request_metrics.object_count,0); | 484 DCHECK_EQ(url_request_metrics.object_count, 0); |
458 #endif | 485 #endif |
459 } | 486 } |
460 | 487 |
461 TEST_F(URLRequestTest, FileTest) { | 488 TEST_F(URLRequestTest, FileTest) { |
462 FilePath app_path; | 489 FilePath app_path; |
463 PathService::Get(base::FILE_EXE, &app_path); | 490 PathService::Get(base::FILE_EXE, &app_path); |
464 GURL app_url = net::FilePathToFileURL(app_path.ToWStringHack()); | 491 GURL app_url = net::FilePathToFileURL(app_path.ToWStringHack()); |
465 | 492 |
466 TestDelegate d; | 493 TestDelegate d; |
467 { | 494 { |
468 TestURLRequest r(app_url, &d); | 495 TestURLRequest r(app_url, &d); |
469 | 496 |
470 r.Start(); | 497 r.Start(); |
471 EXPECT_TRUE(r.is_pending()); | 498 EXPECT_TRUE(r.is_pending()); |
472 | 499 |
473 MessageLoop::current()->Run(); | 500 MessageLoop::current()->Run(); |
474 | 501 |
475 int64 file_size; | 502 int64 file_size; |
476 file_util::GetFileSize(app_path, &file_size); | 503 file_util::GetFileSize(app_path, &file_size); |
477 | 504 |
478 EXPECT_TRUE(!r.is_pending()); | 505 EXPECT_TRUE(!r.is_pending()); |
479 EXPECT_EQ(1, d.response_started_count()); | 506 EXPECT_EQ(1, d.response_started_count()); |
480 EXPECT_FALSE(d.received_data_before_response()); | 507 EXPECT_FALSE(d.received_data_before_response()); |
481 EXPECT_EQ(d.bytes_received(), static_cast<int>(file_size)); | 508 EXPECT_EQ(d.bytes_received(), static_cast<int>(file_size)); |
482 } | 509 } |
483 #ifndef NDEBUG | 510 #ifndef NDEBUG |
484 DCHECK_EQ(url_request_metrics.object_count,0); | 511 DCHECK_EQ(url_request_metrics.object_count, 0); |
485 #endif | 512 #endif |
486 } | 513 } |
487 | 514 |
488 TEST_F(URLRequestTest, InvalidUrlTest) { | 515 TEST_F(URLRequestTest, InvalidUrlTest) { |
489 TestDelegate d; | 516 TestDelegate d; |
490 { | 517 { |
491 TestURLRequest r(GURL("invalid url"), &d); | 518 TestURLRequest r(GURL("invalid url"), &d); |
492 | 519 |
493 r.Start(); | 520 r.Start(); |
494 EXPECT_TRUE(r.is_pending()); | 521 EXPECT_TRUE(r.is_pending()); |
495 | 522 |
496 MessageLoop::current()->Run(); | 523 MessageLoop::current()->Run(); |
497 EXPECT_TRUE(d.request_failed()); | 524 EXPECT_TRUE(d.request_failed()); |
498 } | 525 } |
499 #ifndef NDEBUG | 526 #ifndef NDEBUG |
500 DCHECK_EQ(url_request_metrics.object_count,0); | 527 DCHECK_EQ(url_request_metrics.object_count, 0); |
501 #endif | 528 #endif |
502 } | 529 } |
503 | 530 |
504 // This test is disabled because it fails on some computers due to proxies | 531 // This test is disabled because it fails on some computers due to proxies |
505 // returning a page in response to this request rather than reporting failure. | 532 // returning a page in response to this request rather than reporting failure. |
506 TEST_F(URLRequestTest, DISABLED_DnsFailureTest) { | 533 TEST_F(URLRequestTest, DISABLED_DnsFailureTest) { |
507 TestDelegate d; | 534 TestDelegate d; |
508 { | 535 { |
509 URLRequest r(GURL("http://thisisnotavalidurl0123456789foo.com/"), &d); | 536 URLRequest r(GURL("http://thisisnotavalidurl0123456789foo.com/"), &d); |
510 | 537 |
511 r.Start(); | 538 r.Start(); |
512 EXPECT_TRUE(r.is_pending()); | 539 EXPECT_TRUE(r.is_pending()); |
513 | 540 |
514 MessageLoop::current()->Run(); | 541 MessageLoop::current()->Run(); |
515 EXPECT_TRUE(d.request_failed()); | 542 EXPECT_TRUE(d.request_failed()); |
516 } | 543 } |
517 #ifndef NDEBUG | 544 #ifndef NDEBUG |
518 DCHECK_EQ(url_request_metrics.object_count,0); | 545 DCHECK_EQ(url_request_metrics.object_count, 0); |
519 #endif | 546 #endif |
520 } | 547 } |
521 | 548 |
522 TEST_F(URLRequestTest, ResponseHeadersTest) { | 549 TEST_F(URLRequestTest, ResponseHeadersTest) { |
523 scoped_refptr<HTTPTestServer> server = | 550 scoped_refptr<HTTPTestServer> server = |
524 HTTPTestServer::CreateServer(L"net/data/url_request_unittest", NULL); | 551 HTTPTestServer::CreateServer(L"net/data/url_request_unittest", NULL); |
525 ASSERT_TRUE(NULL != server.get()); | 552 ASSERT_TRUE(NULL != server.get()); |
526 TestDelegate d; | 553 TestDelegate d; |
527 TestURLRequest req(server->TestServerPage("files/with-headers.html"), &d); | 554 TestURLRequest req(server->TestServerPage("files/with-headers.html"), &d); |
528 req.Start(); | 555 req.Start(); |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
659 EXPECT_TRUE(!r.is_pending()); | 686 EXPECT_TRUE(!r.is_pending()); |
660 EXPECT_EQ(1, d.received_redirect_count()); | 687 EXPECT_EQ(1, d.received_redirect_count()); |
661 EXPECT_EQ(content, d.data_received()); | 688 EXPECT_EQ(content, d.data_received()); |
662 } | 689 } |
663 | 690 |
664 // Clean the shortcut | 691 // Clean the shortcut |
665 DeleteFile(lnk_path.c_str()); | 692 DeleteFile(lnk_path.c_str()); |
666 CoUninitialize(); | 693 CoUninitialize(); |
667 | 694 |
668 #ifndef NDEBUG | 695 #ifndef NDEBUG |
669 DCHECK_EQ(url_request_metrics.object_count,0); | 696 DCHECK_EQ(url_request_metrics.object_count, 0); |
670 #endif | 697 #endif |
671 } | 698 } |
672 #endif // defined(OS_WIN) | 699 #endif // defined(OS_WIN) |
673 | 700 |
674 TEST_F(URLRequestTest, ContentTypeNormalizationTest) { | 701 TEST_F(URLRequestTest, ContentTypeNormalizationTest) { |
675 scoped_refptr<HTTPTestServer> server = | 702 scoped_refptr<HTTPTestServer> server = |
676 HTTPTestServer::CreateServer(L"net/data/url_request_unittest", NULL); | 703 HTTPTestServer::CreateServer(L"net/data/url_request_unittest", NULL); |
677 ASSERT_TRUE(NULL != server.get()); | 704 ASSERT_TRUE(NULL != server.get()); |
678 | 705 |
679 TestDelegate d; | 706 TestDelegate d; |
(...skipping 26 matching lines...) Expand all Loading... |
706 | 733 |
707 TestURLRequest req(net::FilePathToFileURL(file_path), &d); | 734 TestURLRequest req(net::FilePathToFileURL(file_path), &d); |
708 req.Start(); | 735 req.Start(); |
709 EXPECT_TRUE(req.is_pending()); | 736 EXPECT_TRUE(req.is_pending()); |
710 | 737 |
711 d.set_cancel_in_received_data_pending(true); | 738 d.set_cancel_in_received_data_pending(true); |
712 | 739 |
713 MessageLoop::current()->Run(); | 740 MessageLoop::current()->Run(); |
714 } | 741 } |
715 #ifndef NDEBUG | 742 #ifndef NDEBUG |
716 DCHECK_EQ(url_request_metrics.object_count,0); | 743 DCHECK_EQ(url_request_metrics.object_count, 0); |
717 #endif | 744 #endif |
718 | 745 |
719 // Take out mock resource provider. | 746 // Take out mock resource provider. |
720 net::NetModule::SetResourceProvider(NULL); | 747 net::NetModule::SetResourceProvider(NULL); |
721 } | 748 } |
722 | 749 |
723 TEST_F(URLRequestTest, RestrictRedirects) { | 750 TEST_F(URLRequestTest, RestrictRedirects) { |
724 scoped_refptr<HTTPTestServer> server = | 751 scoped_refptr<HTTPTestServer> server = |
725 HTTPTestServer::CreateServer(L"net/data/url_request_unittest", NULL); | 752 HTTPTestServer::CreateServer(L"net/data/url_request_unittest", NULL); |
726 ASSERT_TRUE(NULL != server.get()); | 753 ASSERT_TRUE(NULL != server.get()); |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1032 int64 file_size = 0; | 1059 int64 file_size = 0; |
1033 file_util::GetFileSize(app_path, &file_size); | 1060 file_util::GetFileSize(app_path, &file_size); |
1034 | 1061 |
1035 EXPECT_TRUE(!r.is_pending()); | 1062 EXPECT_TRUE(!r.is_pending()); |
1036 EXPECT_EQ(1, d.response_started_count()); | 1063 EXPECT_EQ(1, d.response_started_count()); |
1037 EXPECT_FALSE(d.received_data_before_response()); | 1064 EXPECT_FALSE(d.received_data_before_response()); |
1038 EXPECT_EQ(d.bytes_received(), 0); | 1065 EXPECT_EQ(d.bytes_received(), 0); |
1039 } | 1066 } |
1040 } | 1067 } |
1041 | 1068 |
OLD | NEW |