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

Side by Side Diff: third_party/WebKit/Source/core/fetch/MultipartImageResourceParserTest.cpp

Issue 1710733002: Move multipart resource handling to core/fetch (2/2) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@multipart-cleanup
Patch Set: Created 4 years, 9 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 "core/fetch/MultipartImageResourceParser.h" 5 #include "core/fetch/MultipartImageResourceParser.h"
6 6
7 #include "platform/network/ResourceResponse.h" 7 #include "platform/network/ResourceResponse.h"
8 #include "public/platform/Platform.h" 8 #include "public/platform/Platform.h"
9 #include "public/platform/WebURL.h" 9 #include "public/platform/WebURL.h"
10 #include "public/platform/WebURLResponse.h" 10 #include "public/platform/WebURLResponse.h"
(...skipping 11 matching lines...) Expand all
22 { 22 {
23 if (data.isEmpty()) 23 if (data.isEmpty())
24 return String(""); 24 return String("");
25 return String(data.data(), data.size()); 25 return String(data.data(), data.size());
26 } 26 }
27 27
28 class MockClient final : public NoBaseWillBeGarbageCollectedFinalized<MockClient >, public MultipartImageResourceParser::Client { 28 class MockClient final : public NoBaseWillBeGarbageCollectedFinalized<MockClient >, public MultipartImageResourceParser::Client {
29 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(MockClient); 29 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(MockClient);
30 30
31 public: 31 public:
32 void onePartInMultipartReceived(const ResourceResponse& response) override 32 void onePartInMultipartReceived(const ResourceResponse& response, bool isFir stPart) override
33 { 33 {
34 if (isFirstPart != m_responses.isEmpty())
35 FAIL() << "m_responses.size() = " << m_responses.size() << ", isFirs tPart = " << isFirstPart;
36
34 m_responses.append(response); 37 m_responses.append(response);
35 m_data.append(Vector<char>()); 38 m_data.append(Vector<char>());
36 } 39 }
37 void multipartDataReceived(const char* bytes, size_t size) override 40 void multipartDataReceived(const char* bytes, size_t size) override
38 { 41 {
39 m_data.last().append(bytes, size); 42 m_data.last().append(bytes, size);
40 } 43 }
41 44
42 Vector<ResourceResponse> m_responses; 45 Vector<ResourceResponse> m_responses;
43 Vector<Vector<char>> m_data; 46 Vector<Vector<char>> m_data;
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 MultipartImageResourceParser* parser = new MultipartImageResourceParser(resp onse, boundary, client); 438 MultipartImageResourceParser* parser = new MultipartImageResourceParser(resp onse, boundary, client);
436 439
437 const char data[] = "--bound\r\n\r\n--bound\r\n\r\nfoofoo--bound--"; 440 const char data[] = "--bound\r\n\r\n--bound\r\n\r\nfoofoo--bound--";
438 parser->appendData(data, strlen(data)); 441 parser->appendData(data, strlen(data));
439 ASSERT_EQ(2u, client->m_responses.size()); 442 ASSERT_EQ(2u, client->m_responses.size());
440 ASSERT_EQ(2u, client->m_data.size()); 443 ASSERT_EQ(2u, client->m_data.size());
441 EXPECT_EQ("", toString(client->m_data[0])); 444 EXPECT_EQ("", toString(client->m_data[0]));
442 EXPECT_EQ("foofoo", toString(client->m_data[1])); 445 EXPECT_EQ("foofoo", toString(client->m_data[1]));
443 } 446 }
444 447
445 TEST(MultipartResponseTest, MultipartPayloadSet) 448 TEST(MultipartResponseTest, IsFirstPartSet)
446 { 449 {
447 ResourceResponse response; 450 ResourceResponse response;
448 response.setMimeType("multipart/x-mixed-replace"); 451 response.setMimeType("multipart/x-mixed-replace");
449 MockClient* client = new MockClient; 452 MockClient* client = new MockClient;
450 Vector<char> boundary; 453 Vector<char> boundary;
451 boundary.append("bound", 5); 454 boundary.append("bound", 5);
452 455
453 MultipartImageResourceParser* parser = new MultipartImageResourceParser(resp onse, boundary, client); 456 MultipartImageResourceParser* parser = new MultipartImageResourceParser(resp onse, boundary, client);
454 457
458 // isFirstPart is checked at MockClient::didReceiveResponse.
455 const char data[] = 459 const char data[] =
456 "--bound\n" 460 "--bound\n"
457 "Content-type: text/plain\n\n" 461 "Content-type: text/plain\n\n"
458 "response data\n" 462 "response data\n"
459 "--bound\n"; 463 "--bound\n";
460 parser->appendData(data, strlen(data)); 464 parser->appendData(data, strlen(data));
461 ASSERT_EQ(1u, client->m_responses.size()); 465 ASSERT_EQ(1u, client->m_responses.size());
462 ASSERT_EQ(1u, client->m_data.size()); 466 ASSERT_EQ(1u, client->m_data.size());
463 EXPECT_EQ("response data", toString(client->m_data[0])); 467 EXPECT_EQ("response data", toString(client->m_data[0]));
464 EXPECT_FALSE(client->m_responses[0].isMultipartPayload());
465 468
466 const char data2[] = 469 const char data2[] =
467 "Content-type: text/plain\n\n" 470 "Content-type: text/plain\n\n"
468 "response data2\n" 471 "response data2\n"
469 "--bound\n"; 472 "--bound\n";
470 parser->appendData(data2, strlen(data2)); 473 parser->appendData(data2, strlen(data2));
471 ASSERT_EQ(2u, client->m_responses.size()); 474 ASSERT_EQ(2u, client->m_responses.size());
472 ASSERT_EQ(2u, client->m_data.size()); 475 ASSERT_EQ(2u, client->m_data.size());
473 EXPECT_EQ("response data2", toString(client->m_data[1])); 476 EXPECT_EQ("response data2", toString(client->m_data[1]));
474 EXPECT_TRUE(client->m_responses[1].isMultipartPayload());
475 } 477 }
476 478
477 } // namespace 479 } // namespace
478 480
479 } // namespace blink 481 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/fetch/MultipartImageResourceParser.cpp ('k') | third_party/WebKit/Source/core/fetch/Resource.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698