| OLD | NEW | 
|   1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |   1 // Copyright (c) 2010 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 // A URLRequestJob class that simulates network errors (including https |   5 // A URLRequestJob class that simulates network errors (including https | 
|   6 // related). |   6 // related). | 
|   7 // It is based on URLRequestMockHttpJob. |   7 // It is based on URLRequestMockHttpJob. | 
|   8  |   8  | 
|   9 #ifndef CHROME_BROWSER_NET_URL_REQUEST_MOCK_NET_ERROR_JOB_H_ |   9 #ifndef CHROME_BROWSER_NET_URL_REQUEST_MOCK_NET_ERROR_JOB_H_ | 
|  10 #define CHROME_BROWSER_NET_URL_REQUEST_MOCK_NET_ERROR_JOB_H_ |  10 #define CHROME_BROWSER_NET_URL_REQUEST_MOCK_NET_ERROR_JOB_H_ | 
|  11 #pragma once |  11 #pragma once | 
|  12  |  12  | 
|  13 #include "chrome/browser/net/url_request_mock_http_job.h" |  13 #include "chrome/browser/net/url_request_mock_http_job.h" | 
|  14  |  14  | 
|  15 class URLRequestMockNetErrorJob : public URLRequestMockHTTPJob { |  15 class URLRequestMockNetErrorJob : public URLRequestMockHTTPJob { | 
|  16  public: |  16  public: | 
|  17   URLRequestMockNetErrorJob(URLRequest* request, |  17   URLRequestMockNetErrorJob(net::URLRequest* request, | 
|  18                             const std::vector<int>& errors, |  18                             const std::vector<int>& errors, | 
|  19                             net::X509Certificate* ssl_cert, |  19                             net::X509Certificate* ssl_cert, | 
|  20                             const FilePath& file_path); |  20                             const FilePath& file_path); | 
|  21  |  21  | 
|  22   virtual void Start(); |  22   virtual void Start(); | 
|  23   virtual void ContinueDespiteLastError(); |  23   virtual void ContinueDespiteLastError(); | 
|  24  |  24  | 
|  25   // Add the specified URL to the list of URLs that should be mocked.  When this |  25   // Add the specified URL to the list of URLs that should be mocked.  When this | 
|  26   // URL is hit, the specified |errors| will be played.  If any of these errors |  26   // URL is hit, the specified |errors| will be played.  If any of these errors | 
|  27   // is a cert error, |ssl_cert| will be used as the ssl cert when notifying of |  27   // is a cert error, |ssl_cert| will be used as the ssl cert when notifying of | 
|  28   // the error.  |ssl_cert| can be NULL if |errors| does not contain any cert |  28   // the error.  |ssl_cert| can be NULL if |errors| does not contain any cert | 
|  29   // errors. |base| is the location on disk where the file mocking the URL |  29   // errors. |base| is the location on disk where the file mocking the URL | 
|  30   // contents and http-headers should be retrieved from. |  30   // contents and http-headers should be retrieved from. | 
|  31   static void AddMockedURL(const GURL& url, |  31   static void AddMockedURL(const GURL& url, | 
|  32                            const std::wstring& base, |  32                            const std::wstring& base, | 
|  33                            const std::vector<int>& errors, |  33                            const std::vector<int>& errors, | 
|  34                            net::X509Certificate* ssl_cert); |  34                            net::X509Certificate* ssl_cert); | 
|  35  |  35  | 
|  36   // Removes the specified |url| from the list of mocked urls. |  36   // Removes the specified |url| from the list of mocked urls. | 
|  37   static void RemoveMockedURL(const GURL& url); |  37   static void RemoveMockedURL(const GURL& url); | 
|  38  |  38  | 
|  39  private: |  39  private: | 
|  40   ~URLRequestMockNetErrorJob(); |  40   ~URLRequestMockNetErrorJob(); | 
|  41  |  41  | 
|  42   static URLRequest::ProtocolFactory Factory; |  42   static net::URLRequest::ProtocolFactory Factory; | 
|  43  |  43  | 
|  44   void StartAsync(); |  44   void StartAsync(); | 
|  45  |  45  | 
|  46   // The errors to simulate. |  46   // The errors to simulate. | 
|  47   std::vector<int> errors_; |  47   std::vector<int> errors_; | 
|  48  |  48  | 
|  49   // The certificate to use for SSL errors. |  49   // The certificate to use for SSL errors. | 
|  50   scoped_refptr<net::X509Certificate> ssl_cert_; |  50   scoped_refptr<net::X509Certificate> ssl_cert_; | 
|  51  |  51  | 
|  52   struct MockInfo; |  52   struct MockInfo; | 
|  53   typedef std::map<GURL, MockInfo> URLMockInfoMap; |  53   typedef std::map<GURL, MockInfo> URLMockInfoMap; | 
|  54   static URLMockInfoMap url_mock_info_map_; |  54   static URLMockInfoMap url_mock_info_map_; | 
|  55  |  55  | 
|  56   DISALLOW_COPY_AND_ASSIGN(URLRequestMockNetErrorJob); |  56   DISALLOW_COPY_AND_ASSIGN(URLRequestMockNetErrorJob); | 
|  57 }; |  57 }; | 
|  58  |  58  | 
|  59 #endif  // CHROME_BROWSER_NET_URL_REQUEST_MOCK_NET_ERROR_JOB_H_ |  59 #endif  // CHROME_BROWSER_NET_URL_REQUEST_MOCK_NET_ERROR_JOB_H_ | 
| OLD | NEW |