summaryrefslogtreecommitdiffstats
path: root/webkit/glue/multipart_response_delegate_unittest.cc
diff options
context:
space:
mode:
authortony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-19 00:03:27 +0000
committertony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-19 00:03:27 +0000
commit81bf98ca3a0aa32be3902a22b63f0a5b17a18ff6 (patch)
tree676e4f035f15df97d0f0ca415ad084b41d68657e /webkit/glue/multipart_response_delegate_unittest.cc
parente78587b20548184b15b5cfda805b2eaf12879c0b (diff)
downloadchromium_src-81bf98ca3a0aa32be3902a22b63f0a5b17a18ff6.zip
chromium_src-81bf98ca3a0aa32be3902a22b63f0a5b17a18ff6.tar.gz
chromium_src-81bf98ca3a0aa32be3902a22b63f0a5b17a18ff6.tar.bz2
Work around a multipart crash caused by sending
a response header immediately after sending data. The work around is to be more aggressive about sending multipart data before we have a response header. We used to buffer a response until we had the full frame. This avoids a crash in webcore by behaving more like CFNetwork. It also makes us behave more like Gecko, which is probably good for compat. BUG=30880 Review URL: http://codereview.chromium.org/2070007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47599 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/multipart_response_delegate_unittest.cc')
-rw-r--r--webkit/glue/multipart_response_delegate_unittest.cc22
1 files changed, 11 insertions, 11 deletions
diff --git a/webkit/glue/multipart_response_delegate_unittest.cc b/webkit/glue/multipart_response_delegate_unittest.cc
index 7e3cc32..84d1e05 100644
--- a/webkit/glue/multipart_response_delegate_unittest.cc
+++ b/webkit/glue/multipart_response_delegate_unittest.cc
@@ -237,8 +237,8 @@ TEST(MultipartResponseTest, MissingBoundaries) {
delegate2.OnReceivedData(no_end_boundary.c_str(),
static_cast<int>(no_end_boundary.length()));
EXPECT_EQ(1, client.received_response_);
- EXPECT_EQ(0, client.received_data_);
- EXPECT_EQ(string(), client.data_);
+ EXPECT_EQ(1, client.received_data_);
+ EXPECT_EQ("This is a sample response\n", client.data_);
delegate2.OnCompletedRequest();
EXPECT_EQ(1, client.received_response_);
@@ -255,8 +255,8 @@ TEST(MultipartResponseTest, MissingBoundaries) {
delegate3.OnReceivedData(no_boundaries.c_str(),
static_cast<int>(no_boundaries.length()));
EXPECT_EQ(1, client.received_response_);
- EXPECT_EQ(0, client.received_data_);
- EXPECT_EQ(string(), client.data_);
+ EXPECT_EQ(1, client.received_data_);
+ EXPECT_EQ("This is a sample response\n", client.data_);
delegate3.OnCompletedRequest();
EXPECT_EQ(1, client.received_response_);
@@ -355,20 +355,20 @@ TEST(MultipartResponseTest, BreakInBoundary) {
// Break in first and second
const TestChunk bound2[] = {
{ 0, 4, 0, 0, ""},
- { 4, 55, 1, 0, "" },
- { 55, 65, 1, 1, "datadatadatadatadata" },
- { 65, 110, 2, 2, "foofoofoofoofoo" },
+ { 4, 55, 1, 1, "datadatadatadat" },
+ { 55, 65, 1, 2, "datadatadatadatadata" },
+ { 65, 110, 2, 3, "foofoofoofoofoo" },
};
VariousChunkSizesTest(bound2, arraysize(bound2),
- 2, 2, "foofoofoofoofoo");
+ 2, 3, "foofoofoofoofoo");
// Break in second only
const TestChunk bound3[] = {
- { 0, 55, 1, 0, "" },
- { 55, 110, 2, 2, "foofoofoofoofoo" },
+ { 0, 55, 1, 1, "datadatadatadat" },
+ { 55, 110, 2, 3, "foofoofoofoofoo" },
};
VariousChunkSizesTest(bound3, arraysize(bound3),
- 2, 2, "foofoofoofoofoo");
+ 2, 3, "foofoofoofoofoo");
}
TEST(MultipartResponseTest, BreakInHeaders) {