| 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 "config.h" | 7 #include "config.h" |
| 8 | 8 |
| 9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
| 10 | 10 |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 EXPECT_EQ(0, client.received_data_); | 218 EXPECT_EQ(0, client.received_data_); |
| 219 EXPECT_EQ(string(), client.data_); | 219 EXPECT_EQ(string(), client.data_); |
| 220 | 220 |
| 221 delegate3.OnCompletedRequest(); | 221 delegate3.OnCompletedRequest(); |
| 222 EXPECT_EQ(1, client.received_response_); | 222 EXPECT_EQ(1, client.received_response_); |
| 223 EXPECT_EQ(1, client.received_data_); | 223 EXPECT_EQ(1, client.received_data_); |
| 224 EXPECT_EQ(string("This is a sample response\n"), | 224 EXPECT_EQ(string("This is a sample response\n"), |
| 225 client.data_); | 225 client.data_); |
| 226 } | 226 } |
| 227 | 227 |
| 228 TEST(MultipartResponseTest, MalformedBoundary) { |
| 229 // Some servers send a boundary that is prefixed by "--". See bug 5786. |
| 230 |
| 231 ResourceResponse response(KURL(), "multipart/x-mixed-replace", 0, "en-US", |
| 232 String()); |
| 233 response.setHTTPHeaderField(String("Foo"), String("Bar")); |
| 234 response.setHTTPHeaderField(String("Content-type"), String("text/plain")); |
| 235 MockResourceHandleClient client; |
| 236 MultipartResponseDelegate delegate(&client, NULL, response, "--bound"); |
| 237 |
| 238 string data( |
| 239 "--bound\n" |
| 240 "Content-type: text/plain\n\n" |
| 241 "This is a sample response\n" |
| 242 "--bound--" |
| 243 "ignore junk after end token --bound\n\nTest2\n"); |
| 244 delegate.OnReceivedData(data.c_str(), static_cast<int>(data.length())); |
| 245 EXPECT_EQ(1, client.received_response_); |
| 246 EXPECT_EQ(1, client.received_data_); |
| 247 EXPECT_EQ(string("This is a sample response\n"), client.data_); |
| 248 |
| 249 delegate.OnCompletedRequest(); |
| 250 EXPECT_EQ(1, client.received_response_); |
| 251 EXPECT_EQ(1, client.received_data_); |
| 252 } |
| 253 |
| 228 | 254 |
| 229 // Used in for tests that break the data in various places. | 255 // Used in for tests that break the data in various places. |
| 230 struct TestChunk { | 256 struct TestChunk { |
| 231 const int start_pos; // offset in data | 257 const int start_pos; // offset in data |
| 232 const int end_pos; // end offset in data | 258 const int end_pos; // end offset in data |
| 233 const int expected_responses; | 259 const int expected_responses; |
| 234 const int expected_received_data; | 260 const int expected_received_data; |
| 235 const char* expected_data; | 261 const char* expected_data; |
| 236 }; | 262 }; |
| 237 | 263 |
| (...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 486 | 512 |
| 487 result = MultipartResponseDelegate::ReadContentRanges( | 513 result = MultipartResponseDelegate::ReadContentRanges( |
| 488 response2, &content_range_lower_bound, | 514 response2, &content_range_lower_bound, |
| 489 &content_range_upper_bound); | 515 &content_range_upper_bound); |
| 490 | 516 |
| 491 EXPECT_EQ(result, false); | 517 EXPECT_EQ(result, false); |
| 492 } | 518 } |
| 493 | 519 |
| 494 } // namespace | 520 } // namespace |
| 495 | 521 |
| OLD | NEW |