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 #ifndef NET_URL_REQUEST_URL_REQUEST_TEST_JOB_H_ | 5 #ifndef NET_URL_REQUEST_URL_REQUEST_TEST_JOB_H_ |
6 #define NET_URL_REQUEST_URL_REQUEST_TEST_JOB_H_ | 6 #define NET_URL_REQUEST_URL_REQUEST_TEST_JOB_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 URLRequestTestJob(URLRequest* request, | 56 URLRequestTestJob(URLRequest* request, |
57 NetworkDelegate* network_delegate, | 57 NetworkDelegate* network_delegate, |
58 const std::string& response_headers, | 58 const std::string& response_headers, |
59 const std::string& response_data, | 59 const std::string& response_data, |
60 bool auto_advance); | 60 bool auto_advance); |
61 | 61 |
62 ~URLRequestTestJob() override; | 62 ~URLRequestTestJob() override; |
63 | 63 |
64 // The canned URLs this handler will respond to without having been | 64 // The canned URLs this handler will respond to without having been |
65 // explicitly initialized with response headers and data. | 65 // explicitly initialized with response headers and data. |
66 // FIXME(brettw): we should probably also have a redirect one | 66 |
| 67 // URL that, by default, automatically advances through each state. Reads |
| 68 // complete synchronously. |
67 static GURL test_url_1(); | 69 static GURL test_url_1(); |
| 70 |
| 71 // URLs that, by default, must be manually advanced through each state. |
68 static GURL test_url_2(); | 72 static GURL test_url_2(); |
69 static GURL test_url_3(); | 73 static GURL test_url_3(); |
70 static GURL test_url_4(); | 74 static GURL test_url_4(); |
| 75 |
| 76 // URL that, by default, automatically advances through each state. Reads |
| 77 // complete asynchronously. Has same response body as test_url_1(), which is |
| 78 // (test_data_1()). |
| 79 static GURL test_url_auto_advance_async_reads_1(); |
| 80 |
| 81 // URL that fails with ERR_INVALID_URL. |
71 static GURL test_url_error(); | 82 static GURL test_url_error(); |
| 83 |
| 84 // Redirects to test_url_1(). |
72 static GURL test_url_redirect_to_url_1(); | 85 static GURL test_url_redirect_to_url_1(); |
| 86 |
| 87 // Redirects to test_url_2(). |
73 static GURL test_url_redirect_to_url_2(); | 88 static GURL test_url_redirect_to_url_2(); |
74 | 89 |
75 // The data that corresponds to each of the URLs above | 90 // The data that corresponds to each of the URLs above |
76 static std::string test_data_1(); | 91 static std::string test_data_1(); |
77 static std::string test_data_2(); | 92 static std::string test_data_2(); |
78 static std::string test_data_3(); | 93 static std::string test_data_3(); |
79 static std::string test_data_4(); | 94 static std::string test_data_4(); |
80 | 95 |
81 // The headers that correspond to each of the URLs above | 96 // The headers that correspond to each of the URLs above |
82 static std::string test_headers(); | 97 static std::string test_headers(); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 | 159 |
145 // Call to move the job along to the next operation. | 160 // Call to move the job along to the next operation. |
146 void AdvanceJob(); | 161 void AdvanceJob(); |
147 | 162 |
148 // Called via InvokeLater to cause callbacks to occur after Start() returns. | 163 // Called via InvokeLater to cause callbacks to occur after Start() returns. |
149 virtual void StartAsync(); | 164 virtual void StartAsync(); |
150 | 165 |
151 // Assigns |response_headers_| and |response_headers_length_|. | 166 // Assigns |response_headers_| and |response_headers_length_|. |
152 void SetResponseHeaders(const std::string& response_headers); | 167 void SetResponseHeaders(const std::string& response_headers); |
153 | 168 |
| 169 // Copies as much of the response body as will into |buf|, and returns number |
| 170 // of bytes written. |
| 171 int CopyDataForRead(IOBuffer* buf, int buf_size); |
| 172 |
154 bool auto_advance_; | 173 bool auto_advance_; |
155 | 174 |
156 Stage stage_; | 175 Stage stage_; |
157 | 176 |
158 RequestPriority priority_; | 177 RequestPriority priority_; |
159 | 178 |
160 // The data to send, will be set in Start() if not provided in the explicit | 179 // The data to send, will be set in Start() if not provided in the explicit |
161 // ctor. | 180 // ctor. |
162 std::string response_data_; | 181 std::string response_data_; |
163 | 182 |
164 // current offset within response_data_ | 183 // current offset within response_data_ |
165 int offset_; | 184 int offset_; |
166 | 185 |
167 // Holds the buffer for an asynchronous ReadRawData call | 186 // Holds the buffer for an asynchronous ReadRawData call |
168 IOBuffer* async_buf_; | 187 IOBuffer* async_buf_; |
169 int async_buf_size_; | 188 int async_buf_size_; |
170 | 189 |
171 LoadTimingInfo load_timing_info_; | 190 LoadTimingInfo load_timing_info_; |
172 | 191 |
173 private: | 192 private: |
174 // The headers the job should return, will be set in Start() if not provided | 193 // The headers the job should return, will be set in Start() if not provided |
175 // in the explicit ctor. | 194 // in the explicit ctor. |
176 scoped_refptr<HttpResponseHeaders> response_headers_; | 195 scoped_refptr<HttpResponseHeaders> response_headers_; |
177 | 196 |
178 // Original size in bytes of the response headers before decoding. | 197 // Original size in bytes of the response headers before decoding. |
179 int response_headers_length_; | 198 int response_headers_length_; |
180 | 199 |
| 200 bool async_reads_; |
| 201 |
181 base::WeakPtrFactory<URLRequestTestJob> weak_factory_; | 202 base::WeakPtrFactory<URLRequestTestJob> weak_factory_; |
182 }; | 203 }; |
183 | 204 |
184 } // namespace net | 205 } // namespace net |
185 | 206 |
186 #endif // NET_URL_REQUEST_URL_REQUEST_TEST_JOB_H_ | 207 #endif // NET_URL_REQUEST_URL_REQUEST_TEST_JOB_H_ |
OLD | NEW |