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

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

Issue 10836206: Removed static factories for data, ftp, file, and about jobs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: small fix Created 8 years, 4 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
« no previous file with comments | « net/url_request/url_request_job_manager.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "build/build_config.h" 5 #include "build/build_config.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <windows.h> 8 #include <windows.h>
9 #include <shlobj.h> 9 #include <shlobj.h>
10 #endif 10 #endif
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 #include "net/ftp/ftp_network_layer.h" 45 #include "net/ftp/ftp_network_layer.h"
46 #include "net/http/http_cache.h" 46 #include "net/http/http_cache.h"
47 #include "net/http/http_network_layer.h" 47 #include "net/http/http_network_layer.h"
48 #include "net/http/http_network_session.h" 48 #include "net/http/http_network_session.h"
49 #include "net/http/http_request_headers.h" 49 #include "net/http/http_request_headers.h"
50 #include "net/http/http_response_headers.h" 50 #include "net/http/http_response_headers.h"
51 #include "net/ocsp/nss_ocsp.h" 51 #include "net/ocsp/nss_ocsp.h"
52 #include "net/proxy/proxy_service.h" 52 #include "net/proxy/proxy_service.h"
53 #include "net/socket/ssl_client_socket.h" 53 #include "net/socket/ssl_client_socket.h"
54 #include "net/test/test_server.h" 54 #include "net/test/test_server.h"
55 #include "net/url_request/data_protocol_handler.h"
56 #include "net/url_request/file_protocol_handler.h"
55 #include "net/url_request/ftp_protocol_handler.h" 57 #include "net/url_request/ftp_protocol_handler.h"
56 #include "net/url_request/url_request.h" 58 #include "net/url_request/url_request.h"
57 #include "net/url_request/url_request_file_dir_job.h" 59 #include "net/url_request/url_request_file_dir_job.h"
58 #include "net/url_request/url_request_http_job.h" 60 #include "net/url_request/url_request_http_job.h"
59 #include "net/url_request/url_request_job_factory_impl.h" 61 #include "net/url_request/url_request_job_factory_impl.h"
60 #include "net/url_request/url_request_redirect_job.h" 62 #include "net/url_request/url_request_redirect_job.h"
61 #include "net/url_request/url_request_test_job.h" 63 #include "net/url_request/url_request_test_job.h"
62 #include "net/url_request/url_request_test_util.h" 64 #include "net/url_request/url_request_test_util.h"
63 #include "testing/gtest/include/gtest/gtest.h" 65 #include "testing/gtest/include/gtest/gtest.h"
64 #include "testing/platform_test.h" 66 #include "testing/platform_test.h"
(...skipping 2361 matching lines...) Expand 10 before | Expand all | Expand 10 after
2426 2428
2427 EXPECT_TRUE(!r.is_pending()); 2429 EXPECT_TRUE(!r.is_pending());
2428 EXPECT_FALSE(d.received_data_before_response()); 2430 EXPECT_FALSE(d.received_data_before_response());
2429 EXPECT_EQ(d.bytes_received(), 0); 2431 EXPECT_EQ(d.bytes_received(), 0);
2430 EXPECT_EQ("", r.GetSocketAddress().host()); 2432 EXPECT_EQ("", r.GetSocketAddress().host());
2431 EXPECT_EQ(0, r.GetSocketAddress().port()); 2433 EXPECT_EQ(0, r.GetSocketAddress().port());
2432 } 2434 }
2433 } 2435 }
2434 2436
2435 TEST_F(URLRequestTest, DataURLImageTest) { 2437 TEST_F(URLRequestTest, DataURLImageTest) {
2438 URLRequestJobFactory job_factory;
2439 job_factory.SetProtocolHandler("data", new DataProtocolHandler());
2440 default_context_.set_job_factory(&job_factory);
2441
2436 TestDelegate d; 2442 TestDelegate d;
2437 { 2443 {
2438 // Use our nice little Chrome logo. 2444 // Use our nice little Chrome logo.
2439 URLRequest r(GURL( 2445 URLRequest r(GURL(
2440 "data:image/png;base64," 2446 "data:image/png;base64,"
2441 "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADVklEQVQ4jX2TfUwUBBjG3" 2447 "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADVklEQVQ4jX2TfUwUBBjG3"
2442 "w1y+HGcd9dxhXR8T4awOccJGgOSWclHImznLkTlSw0DDQXkrmgYgbUYnlQTqQxIEVxitD" 2448 "w1y+HGcd9dxhXR8T4awOccJGgOSWclHImznLkTlSw0DDQXkrmgYgbUYnlQTqQxIEVxitD"
2443 "5UMCATRA1CEEg+Qjw3bWDxIauJv/5oumqs39/P827vnucRmYN0gyF01GI5MpCVdW0gO7t" 2449 "5UMCATRA1CEEg+Qjw3bWDxIauJv/5oumqs39/P827vnucRmYN0gyF01GI5MpCVdW0gO7t"
2444 "vNC+vqSEtbZefk5NuLv1jdJ46p/zw0HeH4+PHr3h7c1mjoV2t5rKzMx1+fg9bAgK6zHq9" 2450 "vNC+vqSEtbZefk5NuLv1jdJ46p/zw0HeH4+PHr3h7c1mjoV2t5rKzMx1+fg9bAgK6zHq9"
2445 "cU5z+LpA3xOtx34+vTeT21onRuzssC3zxbbSwC13d/pFuC7CkIMDxQpF7r/MWq12UctI1" 2451 "cU5z+LpA3xOtx34+vTeT21onRuzssC3zxbbSwC13d/pFuC7CkIMDxQpF7r/MWq12UctI1"
(...skipping 24 matching lines...) Expand all
2470 EXPECT_EQ("", r.GetSocketAddress().host()); 2476 EXPECT_EQ("", r.GetSocketAddress().host());
2471 EXPECT_EQ(0, r.GetSocketAddress().port()); 2477 EXPECT_EQ(0, r.GetSocketAddress().port());
2472 } 2478 }
2473 } 2479 }
2474 2480
2475 TEST_F(URLRequestTest, FileTest) { 2481 TEST_F(URLRequestTest, FileTest) {
2476 FilePath app_path; 2482 FilePath app_path;
2477 PathService::Get(base::FILE_EXE, &app_path); 2483 PathService::Get(base::FILE_EXE, &app_path);
2478 GURL app_url = FilePathToFileURL(app_path); 2484 GURL app_url = FilePathToFileURL(app_path);
2479 2485
2486 URLRequestJobFactory job_factory;
2487 job_factory.SetProtocolHandler("file", new FileProtocolHandler());
2488 default_context_.set_job_factory(&job_factory);
2489
2480 TestDelegate d; 2490 TestDelegate d;
2481 { 2491 {
2482 URLRequest r(app_url, &d, &default_context_); 2492 URLRequest r(app_url, &d, &default_context_);
2483 2493
2484 r.Start(); 2494 r.Start();
2485 EXPECT_TRUE(r.is_pending()); 2495 EXPECT_TRUE(r.is_pending());
2486 2496
2487 MessageLoop::current()->Run(); 2497 MessageLoop::current()->Run();
2488 2498
2489 int64 file_size = -1; 2499 int64 file_size = -1;
(...skipping 20 matching lines...) Expand all
2510 2520
2511 int64 file_size; 2521 int64 file_size;
2512 EXPECT_TRUE(file_util::GetFileSize(temp_path, &file_size)); 2522 EXPECT_TRUE(file_util::GetFileSize(temp_path, &file_size));
2513 2523
2514 const size_t first_byte_position = 500; 2524 const size_t first_byte_position = 500;
2515 const size_t last_byte_position = buffer_size - first_byte_position; 2525 const size_t last_byte_position = buffer_size - first_byte_position;
2516 const size_t content_length = last_byte_position - first_byte_position + 1; 2526 const size_t content_length = last_byte_position - first_byte_position + 1;
2517 std::string partial_buffer_string(buffer.get() + first_byte_position, 2527 std::string partial_buffer_string(buffer.get() + first_byte_position,
2518 buffer.get() + last_byte_position + 1); 2528 buffer.get() + last_byte_position + 1);
2519 2529
2530 URLRequestJobFactory job_factory;
2531 job_factory.SetProtocolHandler("file", new FileProtocolHandler());
2532 default_context_.set_job_factory(&job_factory);
2533
2520 TestDelegate d; 2534 TestDelegate d;
2521 { 2535 {
2522 URLRequest r(temp_url, &d, &default_context_); 2536 URLRequest r(temp_url, &d, &default_context_);
2523 2537
2524 HttpRequestHeaders headers; 2538 HttpRequestHeaders headers;
2525 headers.SetHeader(HttpRequestHeaders::kRange, 2539 headers.SetHeader(HttpRequestHeaders::kRange,
2526 base::StringPrintf( 2540 base::StringPrintf(
2527 "bytes=%" PRIuS "-%" PRIuS, 2541 "bytes=%" PRIuS "-%" PRIuS,
2528 first_byte_position, last_byte_position)); 2542 first_byte_position, last_byte_position));
2529 r.SetExtraRequestHeaders(headers); 2543 r.SetExtraRequestHeaders(headers);
(...skipping 24 matching lines...) Expand all
2554 2568
2555 int64 file_size; 2569 int64 file_size;
2556 EXPECT_TRUE(file_util::GetFileSize(temp_path, &file_size)); 2570 EXPECT_TRUE(file_util::GetFileSize(temp_path, &file_size));
2557 2571
2558 const size_t first_byte_position = 500; 2572 const size_t first_byte_position = 500;
2559 const size_t last_byte_position = buffer_size - 1; 2573 const size_t last_byte_position = buffer_size - 1;
2560 const size_t content_length = last_byte_position - first_byte_position + 1; 2574 const size_t content_length = last_byte_position - first_byte_position + 1;
2561 std::string partial_buffer_string(buffer.get() + first_byte_position, 2575 std::string partial_buffer_string(buffer.get() + first_byte_position,
2562 buffer.get() + last_byte_position + 1); 2576 buffer.get() + last_byte_position + 1);
2563 2577
2578 URLRequestJobFactory job_factory;
2579 job_factory.SetProtocolHandler("file", new FileProtocolHandler());
2580 default_context_.set_job_factory(&job_factory);
2581
2564 TestDelegate d; 2582 TestDelegate d;
2565 { 2583 {
2566 URLRequest r(temp_url, &d, &default_context_); 2584 URLRequest r(temp_url, &d, &default_context_);
2567 2585
2568 HttpRequestHeaders headers; 2586 HttpRequestHeaders headers;
2569 headers.SetHeader(HttpRequestHeaders::kRange, 2587 headers.SetHeader(HttpRequestHeaders::kRange,
2570 base::StringPrintf("bytes=%" PRIuS "-", 2588 base::StringPrintf("bytes=%" PRIuS "-",
2571 first_byte_position)); 2589 first_byte_position));
2572 r.SetExtraRequestHeaders(headers); 2590 r.SetExtraRequestHeaders(headers);
2573 r.Start(); 2591 r.Start();
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
2775 // There is an implicit redirect when loading a file path that matches a 2793 // There is an implicit redirect when loading a file path that matches a
2776 // directory and does not end with a slash. Ensure that following such 2794 // directory and does not end with a slash. Ensure that following such
2777 // redirects does not crash. See http://crbug.com/18686. 2795 // redirects does not crash. See http://crbug.com/18686.
2778 2796
2779 FilePath path; 2797 FilePath path;
2780 PathService::Get(base::DIR_SOURCE_ROOT, &path); 2798 PathService::Get(base::DIR_SOURCE_ROOT, &path);
2781 path = path.Append(FILE_PATH_LITERAL("net")); 2799 path = path.Append(FILE_PATH_LITERAL("net"));
2782 path = path.Append(FILE_PATH_LITERAL("data")); 2800 path = path.Append(FILE_PATH_LITERAL("data"));
2783 path = path.Append(FILE_PATH_LITERAL("url_request_unittest")); 2801 path = path.Append(FILE_PATH_LITERAL("url_request_unittest"));
2784 2802
2803 URLRequestJobFactory job_factory;
2804 job_factory.SetProtocolHandler("file", new FileProtocolHandler());
2805 default_context_.set_job_factory(&job_factory);
2806
2785 TestDelegate d; 2807 TestDelegate d;
2786 URLRequest req(FilePathToFileURL(path), &d, &default_context_); 2808 URLRequest req(FilePathToFileURL(path), &d, &default_context_);
2787 req.Start(); 2809 req.Start();
2788 MessageLoop::current()->Run(); 2810 MessageLoop::current()->Run();
2789 2811
2790 ASSERT_EQ(1, d.received_redirect_count()); 2812 ASSERT_EQ(1, d.received_redirect_count());
2791 ASSERT_LT(0, d.bytes_received()); 2813 ASSERT_LT(0, d.bytes_received());
2792 ASSERT_FALSE(d.request_failed()); 2814 ASSERT_FALSE(d.request_failed());
2793 ASSERT_TRUE(req.status().is_success()); 2815 ASSERT_TRUE(req.status().is_success());
2794 } 2816 }
2795 2817
2796 #if defined(OS_WIN) 2818 #if defined(OS_WIN)
2797 // Don't accept the url "file:///" on windows. See http://crbug.com/1474. 2819 // Don't accept the url "file:///" on windows. See http://crbug.com/1474.
2798 TEST_F(URLRequestTest, FileDirRedirectSingleSlash) { 2820 TEST_F(URLRequestTest, FileDirRedirectSingleSlash) {
2799 TestDelegate d; 2821 TestDelegate d;
2800 URLRequest req(GURL("file:///"), &d, &default_context_); 2822 URLRequest req(GURL("file:///"), &d, &default_context_);
2801 req.Start(); 2823 req.Start();
2802 MessageLoop::current()->Run(); 2824 MessageLoop::current()->Run();
2803 2825
2804 ASSERT_EQ(1, d.received_redirect_count()); 2826 ASSERT_EQ(1, d.received_redirect_count());
2805 ASSERT_FALSE(req.status().is_success()); 2827 ASSERT_FALSE(req.status().is_success());
2806 } 2828 }
2807 #endif 2829 #endif
2808 2830
2809 TEST_F(URLRequestTestHTTP, RestrictRedirects) { 2831 TEST_F(URLRequestTestHTTP, RestrictRedirects) {
2810 ASSERT_TRUE(test_server_.Start()); 2832 ASSERT_TRUE(test_server_.Start());
2811 2833
2834 URLRequestJobFactory job_factory;
2835 job_factory.SetProtocolHandler("file", new FileProtocolHandler());
2836 default_context_.set_job_factory(&job_factory);
2837
2812 TestDelegate d; 2838 TestDelegate d;
2813 URLRequest req(test_server_.GetURL( 2839 URLRequest req(test_server_.GetURL(
2814 "files/redirect-to-file.html"), &d, &default_context_); 2840 "files/redirect-to-file.html"), &d, &default_context_);
2815 req.Start(); 2841 req.Start();
2816 MessageLoop::current()->Run(); 2842 MessageLoop::current()->Run();
2817 2843
2818 EXPECT_EQ(URLRequestStatus::FAILED, req.status().status()); 2844 EXPECT_EQ(URLRequestStatus::FAILED, req.status().status());
2819 EXPECT_EQ(ERR_UNSAFE_REDIRECT, req.status().error()); 2845 EXPECT_EQ(ERR_UNSAFE_REDIRECT, req.status().error());
2820 } 2846 }
2821 2847
(...skipping 1342 matching lines...) Expand 10 before | Expand all | Expand 10 after
4164 TestServer test_server_; 4190 TestServer test_server_;
4165 }; 4191 };
4166 4192
4167 // Make sure an FTP request using an unsafe ports fails. 4193 // Make sure an FTP request using an unsafe ports fails.
4168 TEST_F(URLRequestTestFTP, UnsafePort) { 4194 TEST_F(URLRequestTestFTP, UnsafePort) {
4169 ASSERT_TRUE(test_server_.Start()); 4195 ASSERT_TRUE(test_server_.Start());
4170 4196
4171 URLRequestJobFactoryImpl job_factory; 4197 URLRequestJobFactoryImpl job_factory;
4172 4198
4173 GURL url("ftp://127.0.0.1:7"); 4199 GURL url("ftp://127.0.0.1:7");
4174 FtpProtocolHandler ftp_protocol_handler(
4175 default_context_.ftp_transaction_factory(),
4176 default_context_.ftp_auth_cache());
4177 job_factory.SetProtocolHandler( 4200 job_factory.SetProtocolHandler(
4178 "ftp", 4201 "ftp",
4179 new FtpProtocolHandler(default_context_.ftp_transaction_factory(), 4202 new FtpProtocolHandler(default_context_.ftp_transaction_factory(),
4180 default_context_.ftp_auth_cache())); 4203 default_context_.ftp_auth_cache()));
4181 default_context_.set_job_factory(&job_factory); 4204 default_context_.set_job_factory(&job_factory);
4182 4205
4183 TestDelegate d; 4206 TestDelegate d;
4184 { 4207 {
4185 URLRequest r(url, &d, &default_context_); 4208 URLRequest r(url, &d, &default_context_);
4186 r.Start(); 4209 r.Start();
(...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after
4681 req.SetExtraRequestHeaders(headers); 4704 req.SetExtraRequestHeaders(headers);
4682 req.Start(); 4705 req.Start();
4683 MessageLoop::current()->Run(); 4706 MessageLoop::current()->Run();
4684 // If the net tests are being run with ChromeFrame then we need to allow for 4707 // If the net tests are being run with ChromeFrame then we need to allow for
4685 // the 'chromeframe' suffix which is added to the user agent before the 4708 // the 'chromeframe' suffix which is added to the user agent before the
4686 // closing parentheses. 4709 // closing parentheses.
4687 EXPECT_TRUE(StartsWithASCII(d.data_received(), "Lynx (textmode", true)); 4710 EXPECT_TRUE(StartsWithASCII(d.data_received(), "Lynx (textmode", true));
4688 } 4711 }
4689 4712
4690 } // namespace net 4713 } // namespace net
OLDNEW
« no previous file with comments | « net/url_request/url_request_job_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698