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 <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "third_party/WebKit/WebKit/chromium/public/WebString.h" | 8 #include "third_party/WebKit/WebKit/chromium/public/WebString.h" |
9 #include "third_party/WebKit/WebKit/chromium/public/WebURL.h" | 9 #include "third_party/WebKit/WebKit/chromium/public/WebURL.h" |
10 #include "third_party/WebKit/WebKit/chromium/public/WebURLLoaderClient.h" | 10 #include "third_party/WebKit/WebKit/chromium/public/WebURLLoaderClient.h" |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 | 230 |
231 // No end boundary | 231 // No end boundary |
232 client.Reset(); | 232 client.Reset(); |
233 MultipartResponseDelegate delegate2(&client, NULL, response, "bound"); | 233 MultipartResponseDelegate delegate2(&client, NULL, response, "bound"); |
234 string no_end_boundary( | 234 string no_end_boundary( |
235 "bound\nContent-type: text/plain\n\n" | 235 "bound\nContent-type: text/plain\n\n" |
236 "This is a sample response\n"); | 236 "This is a sample response\n"); |
237 delegate2.OnReceivedData(no_end_boundary.c_str(), | 237 delegate2.OnReceivedData(no_end_boundary.c_str(), |
238 static_cast<int>(no_end_boundary.length())); | 238 static_cast<int>(no_end_boundary.length())); |
239 EXPECT_EQ(1, client.received_response_); | 239 EXPECT_EQ(1, client.received_response_); |
240 EXPECT_EQ(0, client.received_data_); | 240 EXPECT_EQ(1, client.received_data_); |
241 EXPECT_EQ(string(), client.data_); | 241 EXPECT_EQ("This is a sample response\n", client.data_); |
242 | 242 |
243 delegate2.OnCompletedRequest(); | 243 delegate2.OnCompletedRequest(); |
244 EXPECT_EQ(1, client.received_response_); | 244 EXPECT_EQ(1, client.received_response_); |
245 EXPECT_EQ(1, client.received_data_); | 245 EXPECT_EQ(1, client.received_data_); |
246 EXPECT_EQ(string("This is a sample response\n"), | 246 EXPECT_EQ(string("This is a sample response\n"), |
247 client.data_); | 247 client.data_); |
248 | 248 |
249 // Neither boundary | 249 // Neither boundary |
250 client.Reset(); | 250 client.Reset(); |
251 MultipartResponseDelegate delegate3(&client, NULL, response, "bound"); | 251 MultipartResponseDelegate delegate3(&client, NULL, response, "bound"); |
252 string no_boundaries( | 252 string no_boundaries( |
253 "Content-type: text/plain\n\n" | 253 "Content-type: text/plain\n\n" |
254 "This is a sample response\n"); | 254 "This is a sample response\n"); |
255 delegate3.OnReceivedData(no_boundaries.c_str(), | 255 delegate3.OnReceivedData(no_boundaries.c_str(), |
256 static_cast<int>(no_boundaries.length())); | 256 static_cast<int>(no_boundaries.length())); |
257 EXPECT_EQ(1, client.received_response_); | 257 EXPECT_EQ(1, client.received_response_); |
258 EXPECT_EQ(0, client.received_data_); | 258 EXPECT_EQ(1, client.received_data_); |
259 EXPECT_EQ(string(), client.data_); | 259 EXPECT_EQ("This is a sample response\n", client.data_); |
260 | 260 |
261 delegate3.OnCompletedRequest(); | 261 delegate3.OnCompletedRequest(); |
262 EXPECT_EQ(1, client.received_response_); | 262 EXPECT_EQ(1, client.received_response_); |
263 EXPECT_EQ(1, client.received_data_); | 263 EXPECT_EQ(1, client.received_data_); |
264 EXPECT_EQ(string("This is a sample response\n"), | 264 EXPECT_EQ(string("This is a sample response\n"), |
265 client.data_); | 265 client.data_); |
266 } | 266 } |
267 | 267 |
268 TEST(MultipartResponseTest, MalformedBoundary) { | 268 TEST(MultipartResponseTest, MalformedBoundary) { |
269 // Some servers send a boundary that is prefixed by "--". See bug 5786. | 269 // Some servers send a boundary that is prefixed by "--". See bug 5786. |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
348 const TestChunk bound1[] = { | 348 const TestChunk bound1[] = { |
349 { 0, 4, 0, 0, ""}, | 349 { 0, 4, 0, 0, ""}, |
350 { 4, 110, 2, 2, "foofoofoofoofoo" }, | 350 { 4, 110, 2, 2, "foofoofoofoofoo" }, |
351 }; | 351 }; |
352 VariousChunkSizesTest(bound1, arraysize(bound1), | 352 VariousChunkSizesTest(bound1, arraysize(bound1), |
353 2, 2, "foofoofoofoofoo"); | 353 2, 2, "foofoofoofoofoo"); |
354 | 354 |
355 // Break in first and second | 355 // Break in first and second |
356 const TestChunk bound2[] = { | 356 const TestChunk bound2[] = { |
357 { 0, 4, 0, 0, ""}, | 357 { 0, 4, 0, 0, ""}, |
358 { 4, 55, 1, 0, "" }, | 358 { 4, 55, 1, 1, "datadatadatadat" }, |
359 { 55, 65, 1, 1, "datadatadatadatadata" }, | 359 { 55, 65, 1, 2, "datadatadatadatadata" }, |
360 { 65, 110, 2, 2, "foofoofoofoofoo" }, | 360 { 65, 110, 2, 3, "foofoofoofoofoo" }, |
361 }; | 361 }; |
362 VariousChunkSizesTest(bound2, arraysize(bound2), | 362 VariousChunkSizesTest(bound2, arraysize(bound2), |
363 2, 2, "foofoofoofoofoo"); | 363 2, 3, "foofoofoofoofoo"); |
364 | 364 |
365 // Break in second only | 365 // Break in second only |
366 const TestChunk bound3[] = { | 366 const TestChunk bound3[] = { |
367 { 0, 55, 1, 0, "" }, | 367 { 0, 55, 1, 1, "datadatadatadat" }, |
368 { 55, 110, 2, 2, "foofoofoofoofoo" }, | 368 { 55, 110, 2, 3, "foofoofoofoofoo" }, |
369 }; | 369 }; |
370 VariousChunkSizesTest(bound3, arraysize(bound3), | 370 VariousChunkSizesTest(bound3, arraysize(bound3), |
371 2, 2, "foofoofoofoofoo"); | 371 2, 3, "foofoofoofoofoo"); |
372 } | 372 } |
373 | 373 |
374 TEST(MultipartResponseTest, BreakInHeaders) { | 374 TEST(MultipartResponseTest, BreakInHeaders) { |
375 // Break in first header | 375 // Break in first header |
376 const TestChunk header1[] = { | 376 const TestChunk header1[] = { |
377 { 0, 10, 0, 0, "" }, | 377 { 0, 10, 0, 0, "" }, |
378 { 10, 35, 1, 0, "" }, | 378 { 10, 35, 1, 0, "" }, |
379 { 35, 110, 2, 2, "foofoofoofoofoo" }, | 379 { 35, 110, 2, 2, "foofoofoofoofoo" }, |
380 }; | 380 }; |
381 VariousChunkSizesTest(header1, arraysize(header1), | 381 VariousChunkSizesTest(header1, arraysize(header1), |
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
628 "--bound\n"); | 628 "--bound\n"); |
629 delegate.OnReceivedData(data2.c_str(), static_cast<int>(data2.length())); | 629 delegate.OnReceivedData(data2.c_str(), static_cast<int>(data2.length())); |
630 EXPECT_EQ(2, | 630 EXPECT_EQ(2, |
631 client.received_response_); | 631 client.received_response_); |
632 EXPECT_EQ(string("response data2\n"), | 632 EXPECT_EQ(string("response data2\n"), |
633 client.data_); | 633 client.data_); |
634 EXPECT_EQ(true, client.response_.isMultipartPayload()); | 634 EXPECT_EQ(true, client.response_.isMultipartPayload()); |
635 } | 635 } |
636 | 636 |
637 } // namespace | 637 } // namespace |
OLD | NEW |