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

Side by Side Diff: content/browser/loader/intercepting_resource_handler_unittest.cc

Issue 2660723002: ResourceHandler::OnWillStart: Remove min_size argument. (Closed)
Patch Set: Merge Created 3 years, 10 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "content/browser/loader/intercepting_resource_handler.h" 5 #include "content/browser/loader/intercepting_resource_handler.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <string> 10 #include <string>
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 96
97 // Tests that the handler behaves properly when it doesn't have to use an 97 // Tests that the handler behaves properly when it doesn't have to use an
98 // alternate next handler. 98 // alternate next handler.
99 TEST_F(InterceptingResourceHandlerTest, NoSwitching) { 99 TEST_F(InterceptingResourceHandlerTest, NoSwitching) {
100 const std::string kData = "The data"; 100 const std::string kData = "The data";
101 const std::string kData2 = "Data 2"; 101 const std::string kData2 = "Data 2";
102 102
103 // Simulate the MimeSniffingResourceHandler buffering the data. 103 // Simulate the MimeSniffingResourceHandler buffering the data.
104 ASSERT_EQ(MockResourceLoader::Status::IDLE, 104 ASSERT_EQ(MockResourceLoader::Status::IDLE,
105 mock_loader_->OnWillStart(request_->url())); 105 mock_loader_->OnWillStart(request_->url()));
106 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1)); 106 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead());
107 107
108 ASSERT_NE(mock_loader_->io_buffer(), old_handler_->buffer()); 108 ASSERT_NE(mock_loader_->io_buffer(), old_handler_->buffer());
109 109
110 // The response is received. The handler should not change. 110 // The response is received. The handler should not change.
111 ASSERT_EQ(MockResourceLoader::Status::IDLE, 111 ASSERT_EQ(MockResourceLoader::Status::IDLE,
112 mock_loader_->OnResponseStarted( 112 mock_loader_->OnResponseStarted(
113 make_scoped_refptr(new ResourceResponse()))); 113 make_scoped_refptr(new ResourceResponse())));
114 114
115 // The read is replayed by the MimeSniffingResourceHandler. The data should 115 // The read is replayed by the MimeSniffingResourceHandler. The data should
116 // have been received by the old intercepting_handler. 116 // have been received by the old intercepting_handler.
117 ASSERT_EQ(MockResourceLoader::Status::IDLE, 117 ASSERT_EQ(MockResourceLoader::Status::IDLE,
118 mock_loader_->OnReadCompleted(kData)); 118 mock_loader_->OnReadCompleted(kData));
119 EXPECT_EQ(kData, old_handler_body_); 119 EXPECT_EQ(kData, old_handler_body_);
120 120
121 // Make sure another read behaves as expected. 121 // Make sure another read behaves as expected.
122 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1)); 122 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead());
123 ASSERT_EQ(mock_loader_->io_buffer(), old_handler_->buffer()); 123 ASSERT_EQ(mock_loader_->io_buffer(), old_handler_->buffer());
124 124
125 ASSERT_EQ(MockResourceLoader::Status::IDLE, 125 ASSERT_EQ(MockResourceLoader::Status::IDLE,
126 mock_loader_->OnReadCompleted(kData2)); 126 mock_loader_->OnReadCompleted(kData2));
127 EXPECT_EQ(kData + kData2, old_handler_body_); 127 EXPECT_EQ(kData + kData2, old_handler_body_);
128 } 128 }
129 129
130 // Tests that the data received is transmitted to the newly created 130 // Tests that the data received is transmitted to the newly created
131 // ResourceHandler. 131 // ResourceHandler.
132 TEST_F(InterceptingResourceHandlerTest, HandlerSwitchNoPayload) { 132 TEST_F(InterceptingResourceHandlerTest, HandlerSwitchNoPayload) {
133 const std::string kData = "The data"; 133 const std::string kData = "The data";
134 const std::string kData2 = "Data 2"; 134 const std::string kData2 = "Data 2";
135 135
136 // Simulate the MimeSniffingResourceHandler buffering the data. 136 // Simulate the MimeSniffingResourceHandler buffering the data.
137 ASSERT_EQ(MockResourceLoader::Status::IDLE, 137 ASSERT_EQ(MockResourceLoader::Status::IDLE,
138 mock_loader_->OnWillStart(request_->url())); 138 mock_loader_->OnWillStart(request_->url()));
139 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1)); 139 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead());
140 140
141 ASSERT_NE(mock_loader_->io_buffer(), old_handler_->buffer()); 141 ASSERT_NE(mock_loader_->io_buffer(), old_handler_->buffer());
142 142
143 // Simulate the MimeSniffingResourceHandler asking the 143 // Simulate the MimeSniffingResourceHandler asking the
144 // InterceptingResourceHandler to switch to a new handler. 144 // InterceptingResourceHandler to switch to a new handler.
145 net::URLRequestStatus new_handler_status; 145 net::URLRequestStatus new_handler_status;
146 std::string new_handler_body; 146 std::string new_handler_body;
147 std::unique_ptr<TestResourceHandler> new_handler_scoped( 147 std::unique_ptr<TestResourceHandler> new_handler_scoped(
148 new TestResourceHandler(&new_handler_status, &new_handler_body)); 148 new TestResourceHandler(&new_handler_status, &new_handler_body));
149 TestResourceHandler* new_test_handler = new_handler_scoped.get(); 149 TestResourceHandler* new_test_handler = new_handler_scoped.get();
(...skipping 10 matching lines...) Expand all
160 EXPECT_EQ(net::ERR_ABORTED, old_handler_status_.error()); 160 EXPECT_EQ(net::ERR_ABORTED, old_handler_status_.error());
161 EXPECT_EQ(std::string(), old_handler_body_); 161 EXPECT_EQ(std::string(), old_handler_body_);
162 162
163 // The read is replayed by the MimeSniffingResourceHandler. The data should 163 // The read is replayed by the MimeSniffingResourceHandler. The data should
164 // have been received by the new handler. 164 // have been received by the new handler.
165 ASSERT_EQ(MockResourceLoader::Status::IDLE, 165 ASSERT_EQ(MockResourceLoader::Status::IDLE,
166 mock_loader_->OnReadCompleted(kData)); 166 mock_loader_->OnReadCompleted(kData));
167 EXPECT_EQ(kData, new_handler_body); 167 EXPECT_EQ(kData, new_handler_body);
168 168
169 // Make sure another read behaves as expected. 169 // Make sure another read behaves as expected.
170 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1)); 170 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead());
171 ASSERT_EQ(mock_loader_->io_buffer(), new_test_handler->buffer()); 171 ASSERT_EQ(mock_loader_->io_buffer(), new_test_handler->buffer());
172 172
173 ASSERT_EQ(MockResourceLoader::Status::IDLE, 173 ASSERT_EQ(MockResourceLoader::Status::IDLE,
174 mock_loader_->OnReadCompleted(kData2)); 174 mock_loader_->OnReadCompleted(kData2));
175 EXPECT_EQ(kData + kData2, new_handler_body); 175 EXPECT_EQ(kData + kData2, new_handler_body);
176 } 176 }
177 177
178 // Tests that the data received is transmitted to the newly created 178 // Tests that the data received is transmitted to the newly created
179 // ResourceHandler and the specified payload to the old ResourceHandler. 179 // ResourceHandler and the specified payload to the old ResourceHandler.
180 TEST_F(InterceptingResourceHandlerTest, HandlerSwitchWithPayload) { 180 TEST_F(InterceptingResourceHandlerTest, HandlerSwitchWithPayload) {
181 const std::string kData = "The data"; 181 const std::string kData = "The data";
182 const std::string kData2 = "Data 2"; 182 const std::string kData2 = "Data 2";
183 const std::string kPayload = "The payload"; 183 const std::string kPayload = "The payload";
184 184
185 // When sending a payload to the old ResourceHandler, the 185 // When sending a payload to the old ResourceHandler, the
186 // InterceptingResourceHandler doesn't send a final EOF read. 186 // InterceptingResourceHandler doesn't send a final EOF read.
187 // TODO(mmenke): Should it? Or can we just get rid of that 0-byte read 187 // TODO(mmenke): Should it? Or can we just get rid of that 0-byte read
188 // entirely? 188 // entirely?
189 old_handler_->set_expect_eof_read(false); 189 old_handler_->set_expect_eof_read(false);
190 scoped_refptr<net::IOBuffer> old_buffer = old_handler_->buffer(); 190 scoped_refptr<net::IOBuffer> old_buffer = old_handler_->buffer();
191 191
192 // Simulate the MimeSniffingResourceHandler buffering the data. 192 // Simulate the MimeSniffingResourceHandler buffering the data.
193 ASSERT_EQ(MockResourceLoader::Status::IDLE, 193 ASSERT_EQ(MockResourceLoader::Status::IDLE,
194 mock_loader_->OnWillStart(request_->url())); 194 mock_loader_->OnWillStart(request_->url()));
195 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1)); 195 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead());
196 196
197 ASSERT_NE(mock_loader_->io_buffer(), old_buffer.get()); 197 ASSERT_NE(mock_loader_->io_buffer(), old_buffer.get());
198 198
199 // Simulate the MimeSniffingResourceHandler asking the 199 // Simulate the MimeSniffingResourceHandler asking the
200 // InterceptingResourceHandler to switch to a new handler. 200 // InterceptingResourceHandler to switch to a new handler.
201 net::URLRequestStatus new_handler_status; 201 net::URLRequestStatus new_handler_status;
202 std::string new_handler_body; 202 std::string new_handler_body;
203 std::unique_ptr<TestResourceHandler> new_handler_scoped( 203 std::unique_ptr<TestResourceHandler> new_handler_scoped(
204 new TestResourceHandler(&new_handler_status, &new_handler_body)); 204 new TestResourceHandler(&new_handler_status, &new_handler_body));
205 TestResourceHandler* new_test_handler = new_handler_scoped.get(); 205 TestResourceHandler* new_test_handler = new_handler_scoped.get();
(...skipping 14 matching lines...) Expand all
220 EXPECT_TRUE(old_handler_status_.is_success()); 220 EXPECT_TRUE(old_handler_status_.is_success());
221 EXPECT_EQ(net::OK, old_handler_status_.error()); 221 EXPECT_EQ(net::OK, old_handler_status_.error());
222 222
223 // The read is replayed by the MimeSniffingResourceHandler. The data should 223 // The read is replayed by the MimeSniffingResourceHandler. The data should
224 // have been received by the new handler. 224 // have been received by the new handler.
225 ASSERT_EQ(MockResourceLoader::Status::IDLE, 225 ASSERT_EQ(MockResourceLoader::Status::IDLE,
226 mock_loader_->OnReadCompleted(kData)); 226 mock_loader_->OnReadCompleted(kData));
227 EXPECT_EQ(kData, new_handler_body); 227 EXPECT_EQ(kData, new_handler_body);
228 228
229 // Make sure another read behaves as expected. 229 // Make sure another read behaves as expected.
230 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1)); 230 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead());
231 ASSERT_EQ(mock_loader_->io_buffer(), new_test_handler->buffer()); 231 ASSERT_EQ(mock_loader_->io_buffer(), new_test_handler->buffer());
232 232
233 ASSERT_EQ(MockResourceLoader::Status::IDLE, 233 ASSERT_EQ(MockResourceLoader::Status::IDLE,
234 mock_loader_->OnReadCompleted(kData2)); 234 mock_loader_->OnReadCompleted(kData2));
235 EXPECT_EQ(kData + kData2, new_handler_body); 235 EXPECT_EQ(kData + kData2, new_handler_body);
236 } 236 }
237 237
238 // Tests that the handler behaves properly if the old handler fails will read. 238 // Tests that the handler behaves properly if the old handler fails will read.
239 TEST_F(InterceptingResourceHandlerTest, OldHandlerFailsWillRead) { 239 TEST_F(InterceptingResourceHandlerTest, OldHandlerFailsWillRead) {
240 old_handler_->set_on_will_read_result(false); 240 old_handler_->set_on_will_read_result(false);
241 241
242 // Simulate the MimeSniffingResourceHandler buffering the data. The old 242 // Simulate the MimeSniffingResourceHandler buffering the data. The old
243 // handler should tell the caller to fail. 243 // handler should tell the caller to fail.
244 ASSERT_EQ(MockResourceLoader::Status::IDLE, 244 ASSERT_EQ(MockResourceLoader::Status::IDLE,
245 mock_loader_->OnWillStart(request_->url())); 245 mock_loader_->OnWillStart(request_->url()));
246 ASSERT_EQ(MockResourceLoader::Status::CANCELED, mock_loader_->OnWillRead(-1)); 246 ASSERT_EQ(MockResourceLoader::Status::CANCELED, mock_loader_->OnWillRead());
247 EXPECT_EQ(net::ERR_ABORTED, mock_loader_->error_code()); 247 EXPECT_EQ(net::ERR_ABORTED, mock_loader_->error_code());
248 } 248 }
249 249
250 // Tests that the handler behaves properly if the new handler fails in 250 // Tests that the handler behaves properly if the new handler fails in
251 // OnWillStart. 251 // OnWillStart.
252 TEST_F(InterceptingResourceHandlerTest, NewHandlerFailsOnWillStart) { 252 TEST_F(InterceptingResourceHandlerTest, NewHandlerFailsOnWillStart) {
253 scoped_refptr<net::IOBuffer> old_buffer = old_handler_->buffer(); 253 scoped_refptr<net::IOBuffer> old_buffer = old_handler_->buffer();
254 254
255 // Simulate the MimeSniffingResourceHandler buffering the data. 255 // Simulate the MimeSniffingResourceHandler buffering the data.
256 ASSERT_EQ(MockResourceLoader::Status::IDLE, 256 ASSERT_EQ(MockResourceLoader::Status::IDLE,
257 mock_loader_->OnWillStart(request_->url())); 257 mock_loader_->OnWillStart(request_->url()));
258 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1)); 258 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead());
259 259
260 ASSERT_NE(mock_loader_->io_buffer(), old_buffer.get()); 260 ASSERT_NE(mock_loader_->io_buffer(), old_buffer.get());
261 261
262 // Simulate the MimeSniffingResourceHandler asking the 262 // Simulate the MimeSniffingResourceHandler asking the
263 // InterceptingResourceHandler to switch to a new handler. 263 // InterceptingResourceHandler to switch to a new handler.
264 net::URLRequestStatus new_handler_status; 264 net::URLRequestStatus new_handler_status;
265 std::string new_handler_body; 265 std::string new_handler_body;
266 std::unique_ptr<TestResourceHandler> new_handler( 266 std::unique_ptr<TestResourceHandler> new_handler(
267 new TestResourceHandler(&new_handler_status, &new_handler_body)); 267 new TestResourceHandler(&new_handler_status, &new_handler_body));
268 new_handler->set_on_will_start_result(false); 268 new_handler->set_on_will_start_result(false);
269 intercepting_handler_->UseNewHandler(std::move(new_handler), std::string()); 269 intercepting_handler_->UseNewHandler(std::move(new_handler), std::string());
270 270
271 // The response is received. The new ResourceHandler should tell us to fail. 271 // The response is received. The new ResourceHandler should tell us to fail.
272 ASSERT_EQ(MockResourceLoader::Status::CANCELED, 272 ASSERT_EQ(MockResourceLoader::Status::CANCELED,
273 mock_loader_->OnResponseStarted( 273 mock_loader_->OnResponseStarted(
274 make_scoped_refptr(new ResourceResponse()))); 274 make_scoped_refptr(new ResourceResponse())));
275 EXPECT_EQ(net::ERR_ABORTED, mock_loader_->error_code()); 275 EXPECT_EQ(net::ERR_ABORTED, mock_loader_->error_code());
276 } 276 }
277 277
278 // Tests that the handler behaves properly if the new handler fails response 278 // Tests that the handler behaves properly if the new handler fails response
279 // started. 279 // started.
280 TEST_F(InterceptingResourceHandlerTest, NewHandlerFailsResponseStarted) { 280 TEST_F(InterceptingResourceHandlerTest, NewHandlerFailsResponseStarted) {
281 scoped_refptr<net::IOBuffer> old_buffer = old_handler_->buffer(); 281 scoped_refptr<net::IOBuffer> old_buffer = old_handler_->buffer();
282 282
283 // Simulate the MimeSniffingResourceHandler buffering the data. 283 // Simulate the MimeSniffingResourceHandler buffering the data.
284 ASSERT_EQ(MockResourceLoader::Status::IDLE, 284 ASSERT_EQ(MockResourceLoader::Status::IDLE,
285 mock_loader_->OnWillStart(request_->url())); 285 mock_loader_->OnWillStart(request_->url()));
286 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1)); 286 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead());
287 287
288 ASSERT_NE(mock_loader_->io_buffer(), old_buffer.get()); 288 ASSERT_NE(mock_loader_->io_buffer(), old_buffer.get());
289 289
290 // Simulate the MimeSniffingResourceHandler asking the 290 // Simulate the MimeSniffingResourceHandler asking the
291 // InterceptingResourceHandler to switch to a new handler. 291 // InterceptingResourceHandler to switch to a new handler.
292 net::URLRequestStatus new_handler_status; 292 net::URLRequestStatus new_handler_status;
293 std::string new_handler_body; 293 std::string new_handler_body;
294 std::unique_ptr<TestResourceHandler> new_handler( 294 std::unique_ptr<TestResourceHandler> new_handler(
295 new TestResourceHandler(&new_handler_status, &new_handler_body)); 295 new TestResourceHandler(&new_handler_status, &new_handler_body));
296 new_handler->set_on_response_started_result(false); 296 new_handler->set_on_response_started_result(false);
297 intercepting_handler_->UseNewHandler(std::move(new_handler), std::string()); 297 intercepting_handler_->UseNewHandler(std::move(new_handler), std::string());
298 298
299 // The response is received. The new ResourceHandler should tell us to fail. 299 // The response is received. The new ResourceHandler should tell us to fail.
300 ASSERT_EQ(MockResourceLoader::Status::CANCELED, 300 ASSERT_EQ(MockResourceLoader::Status::CANCELED,
301 mock_loader_->OnResponseStarted( 301 mock_loader_->OnResponseStarted(
302 make_scoped_refptr(new ResourceResponse()))); 302 make_scoped_refptr(new ResourceResponse())));
303 EXPECT_EQ(net::ERR_ABORTED, mock_loader_->error_code()); 303 EXPECT_EQ(net::ERR_ABORTED, mock_loader_->error_code());
304 } 304 }
305 305
306 // Tests that the handler behaves properly if the new handler fails will read. 306 // Tests that the handler behaves properly if the new handler fails will read.
307 TEST_F(InterceptingResourceHandlerTest, NewHandlerFailsWillRead) { 307 TEST_F(InterceptingResourceHandlerTest, NewHandlerFailsWillRead) {
308 const char kData[] = "The data"; 308 const char kData[] = "The data";
309 309
310 scoped_refptr<net::IOBuffer> old_buffer = old_handler_->buffer(); 310 scoped_refptr<net::IOBuffer> old_buffer = old_handler_->buffer();
311 311
312 // Simulate the MimeSniffingResourceHandler buffering the data. 312 // Simulate the MimeSniffingResourceHandler buffering the data.
313 ASSERT_EQ(MockResourceLoader::Status::IDLE, 313 ASSERT_EQ(MockResourceLoader::Status::IDLE,
314 mock_loader_->OnWillStart(request_->url())); 314 mock_loader_->OnWillStart(request_->url()));
315 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1)); 315 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead());
316 316
317 ASSERT_NE(mock_loader_->io_buffer(), old_buffer.get()); 317 ASSERT_NE(mock_loader_->io_buffer(), old_buffer.get());
318 318
319 // Simulate the MimeSniffingResourceHandler asking the 319 // Simulate the MimeSniffingResourceHandler asking the
320 // InterceptingResourceHandler to switch to a new handler. 320 // InterceptingResourceHandler to switch to a new handler.
321 net::URLRequestStatus new_handler_status; 321 net::URLRequestStatus new_handler_status;
322 std::string new_handler_body; 322 std::string new_handler_body;
323 std::unique_ptr<TestResourceHandler> new_handler( 323 std::unique_ptr<TestResourceHandler> new_handler(
324 new TestResourceHandler(&new_handler_status, &new_handler_body)); 324 new TestResourceHandler(&new_handler_status, &new_handler_body));
325 new_handler->set_on_will_read_result(false); 325 new_handler->set_on_will_read_result(false);
(...skipping 18 matching lines...) Expand all
344 // Tests that the handler behaves properly if the new handler fails read 344 // Tests that the handler behaves properly if the new handler fails read
345 // completed. 345 // completed.
346 TEST_F(InterceptingResourceHandlerTest, NewHandlerFailsReadCompleted) { 346 TEST_F(InterceptingResourceHandlerTest, NewHandlerFailsReadCompleted) {
347 const char kData[] = "The data"; 347 const char kData[] = "The data";
348 348
349 scoped_refptr<net::IOBuffer> old_buffer = old_handler_->buffer(); 349 scoped_refptr<net::IOBuffer> old_buffer = old_handler_->buffer();
350 350
351 // Simulate the MimeSniffingResourceHandler buffering the data. 351 // Simulate the MimeSniffingResourceHandler buffering the data.
352 ASSERT_EQ(MockResourceLoader::Status::IDLE, 352 ASSERT_EQ(MockResourceLoader::Status::IDLE,
353 mock_loader_->OnWillStart(request_->url())); 353 mock_loader_->OnWillStart(request_->url()));
354 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1)); 354 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead());
355 355
356 ASSERT_NE(mock_loader_->io_buffer(), old_buffer.get()); 356 ASSERT_NE(mock_loader_->io_buffer(), old_buffer.get());
357 357
358 // Simulate the MimeSniffingResourceHandler asking the 358 // Simulate the MimeSniffingResourceHandler asking the
359 // InterceptingResourceHandler to switch to a new handler. 359 // InterceptingResourceHandler to switch to a new handler.
360 net::URLRequestStatus new_handler_status; 360 net::URLRequestStatus new_handler_status;
361 std::string new_handler_body; 361 std::string new_handler_body;
362 std::unique_ptr<TestResourceHandler> new_handler( 362 std::unique_ptr<TestResourceHandler> new_handler(
363 new TestResourceHandler(&new_handler_status, &new_handler_body)); 363 new TestResourceHandler(&new_handler_status, &new_handler_body));
364 new_handler->set_on_read_completed_result(false); 364 new_handler->set_on_read_completed_result(false);
(...skipping 26 matching lines...) Expand all
391 // TODO(mmenke): Should it? Or can we just get rid of that 0-byte read 391 // TODO(mmenke): Should it? Or can we just get rid of that 0-byte read
392 // entirely? 392 // entirely?
393 old_handler_->set_expect_eof_read(false); 393 old_handler_->set_expect_eof_read(false);
394 old_handler_->SetBufferSize(kOldHandlerBufferSize); 394 old_handler_->SetBufferSize(kOldHandlerBufferSize);
395 old_handler_->set_defer_on_read_completed(true); 395 old_handler_->set_defer_on_read_completed(true);
396 scoped_refptr<net::IOBuffer> old_buffer = old_handler_->buffer(); 396 scoped_refptr<net::IOBuffer> old_buffer = old_handler_->buffer();
397 397
398 // Simulate the MimeSniffingResourceHandler buffering the data. 398 // Simulate the MimeSniffingResourceHandler buffering the data.
399 ASSERT_EQ(MockResourceLoader::Status::IDLE, 399 ASSERT_EQ(MockResourceLoader::Status::IDLE,
400 mock_loader_->OnWillStart(request_->url())); 400 mock_loader_->OnWillStart(request_->url()));
401 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1)); 401 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead());
402 402
403 ASSERT_NE(mock_loader_->io_buffer(), old_buffer.get()); 403 ASSERT_NE(mock_loader_->io_buffer(), old_buffer.get());
404 404
405 // Simulate the MimeSniffingResourceHandler asking the 405 // Simulate the MimeSniffingResourceHandler asking the
406 // InterceptingResourceHandler to switch to a new handler. 406 // InterceptingResourceHandler to switch to a new handler.
407 net::URLRequestStatus new_handler_status = {net::URLRequestStatus::IO_PENDING, 407 net::URLRequestStatus new_handler_status = {net::URLRequestStatus::IO_PENDING,
408 0}; 408 0};
409 409
410 std::string new_handler_body; 410 std::string new_handler_body;
411 std::unique_ptr<TestResourceHandler> scoped_new_handler( 411 std::unique_ptr<TestResourceHandler> scoped_new_handler(
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 464
465 EXPECT_EQ("T", new_handler_body); 465 EXPECT_EQ("T", new_handler_body);
466 466
467 new_handler->Resume(); 467 new_handler->Resume();
468 mock_loader_->WaitUntilIdleOrCanceled(); 468 mock_loader_->WaitUntilIdleOrCanceled();
469 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->status()); 469 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->status());
470 EXPECT_EQ(kData, new_handler_body); 470 EXPECT_EQ(kData, new_handler_body);
471 EXPECT_EQ(net::URLRequestStatus::IO_PENDING, new_handler_status.status()); 471 EXPECT_EQ(net::URLRequestStatus::IO_PENDING, new_handler_status.status());
472 472
473 // Final EOF byte is read. 473 // Final EOF byte is read.
474 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1)); 474 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead());
475 ASSERT_EQ(MockResourceLoader::Status::IDLE, 475 ASSERT_EQ(MockResourceLoader::Status::IDLE,
476 mock_loader_->OnReadCompleted("")); 476 mock_loader_->OnReadCompleted(""));
477 477
478 ASSERT_EQ( 478 ASSERT_EQ(
479 MockResourceLoader::Status::CALLBACK_PENDING, 479 MockResourceLoader::Status::CALLBACK_PENDING,
480 mock_loader_->OnResponseCompleted({net::URLRequestStatus::SUCCESS, 0})); 480 mock_loader_->OnResponseCompleted({net::URLRequestStatus::SUCCESS, 0}));
481 EXPECT_EQ(net::URLRequestStatus::SUCCESS, new_handler_status.status()); 481 EXPECT_EQ(net::URLRequestStatus::SUCCESS, new_handler_status.status());
482 } 482 }
483 483
484 // Test cancellation where there is only the old handler in an 484 // Test cancellation where there is only the old handler in an
(...skipping 13 matching lines...) Expand all
498 498
499 // When sending a payload to the old ResourceHandler, the 499 // When sending a payload to the old ResourceHandler, the
500 // InterceptingResourceHandler doesn't send a final EOF read. 500 // InterceptingResourceHandler doesn't send a final EOF read.
501 // TODO(mmenke): Should it? Or can we just get rid of that 0-byte read 501 // TODO(mmenke): Should it? Or can we just get rid of that 0-byte read
502 // entirely? 502 // entirely?
503 old_handler_->set_expect_eof_read(false); 503 old_handler_->set_expect_eof_read(false);
504 504
505 // Simulate the MimeSniffingResourceHandler buffering the data. 505 // Simulate the MimeSniffingResourceHandler buffering the data.
506 ASSERT_EQ(MockResourceLoader::Status::IDLE, 506 ASSERT_EQ(MockResourceLoader::Status::IDLE,
507 mock_loader_->OnWillStart(request_->url())); 507 mock_loader_->OnWillStart(request_->url()));
508 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1)); 508 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead());
509 509
510 // Simulate the MimeSniffingResourceHandler asking the 510 // Simulate the MimeSniffingResourceHandler asking the
511 // InterceptingResourceHandler to switch to a new handler. 511 // InterceptingResourceHandler to switch to a new handler.
512 net::URLRequestStatus new_handler_status = {net::URLRequestStatus::IO_PENDING, 512 net::URLRequestStatus new_handler_status = {net::URLRequestStatus::IO_PENDING,
513 0}; 513 0};
514 514
515 std::string new_handler_body; 515 std::string new_handler_body;
516 std::unique_ptr<TestResourceHandler> new_handler( 516 std::unique_ptr<TestResourceHandler> new_handler(
517 new TestResourceHandler(&new_handler_status, &new_handler_body)); 517 new TestResourceHandler(&new_handler_status, &new_handler_body));
518 new_handler->SetBufferSize(1); 518 new_handler->SetBufferSize(1);
(...skipping 20 matching lines...) Expand all
539 // Test cancellation where there are both the old and the new handlers in an 539 // Test cancellation where there are both the old and the new handlers in an
540 // InterceptingResourceHandler. 540 // InterceptingResourceHandler.
541 TEST_F(InterceptingResourceHandlerTest, CancelBothHandlers) { 541 TEST_F(InterceptingResourceHandlerTest, CancelBothHandlers) {
542 const std::string kPayload = "The payload"; 542 const std::string kPayload = "The payload";
543 543
544 old_handler_->set_defer_on_read_completed(true); 544 old_handler_->set_defer_on_read_completed(true);
545 545
546 // Simulate the MimeSniffingResourceHandler buffering the data. 546 // Simulate the MimeSniffingResourceHandler buffering the data.
547 ASSERT_EQ(MockResourceLoader::Status::IDLE, 547 ASSERT_EQ(MockResourceLoader::Status::IDLE,
548 mock_loader_->OnWillStart(request_->url())); 548 mock_loader_->OnWillStart(request_->url()));
549 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1)); 549 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead());
550 550
551 // Simulate the MimeSniffingResourceHandler asking the 551 // Simulate the MimeSniffingResourceHandler asking the
552 // InterceptingResourceHandler to switch to a new handler. 552 // InterceptingResourceHandler to switch to a new handler.
553 net::URLRequestStatus new_handler_status = {net::URLRequestStatus::IO_PENDING, 553 net::URLRequestStatus new_handler_status = {net::URLRequestStatus::IO_PENDING,
554 0}; 554 0};
555 555
556 std::string new_handler_body; 556 std::string new_handler_body;
557 std::unique_ptr<TestResourceHandler> new_handler( 557 std::unique_ptr<TestResourceHandler> new_handler(
558 new TestResourceHandler(&new_handler_status, &new_handler_body)); 558 new TestResourceHandler(&new_handler_status, &new_handler_body));
559 new_handler->SetBufferSize(1); 559 new_handler->SetBufferSize(1);
(...skipping 13 matching lines...) Expand all
573 {net::URLRequestStatus::CANCELED, net::ERR_FAILED})); 573 {net::URLRequestStatus::CANCELED, net::ERR_FAILED}));
574 EXPECT_EQ(net::URLRequestStatus::CANCELED, old_handler_status_.status()); 574 EXPECT_EQ(net::URLRequestStatus::CANCELED, old_handler_status_.status());
575 EXPECT_EQ(net::ERR_FAILED, old_handler_status_.error()); 575 EXPECT_EQ(net::ERR_FAILED, old_handler_status_.error());
576 EXPECT_EQ(net::URLRequestStatus::CANCELED, new_handler_status.status()); 576 EXPECT_EQ(net::URLRequestStatus::CANCELED, new_handler_status.status());
577 EXPECT_EQ(net::ERR_FAILED, new_handler_status.error()); 577 EXPECT_EQ(net::ERR_FAILED, new_handler_status.error());
578 } 578 }
579 579
580 } // namespace 580 } // namespace
581 581
582 } // namespace content 582 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/loader/intercepting_resource_handler.cc ('k') | content/browser/loader/layered_resource_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698