Skip to content

Commit fc2a637

Browse files
committed
WIP
1 parent cb2bce5 commit fc2a637

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

invoker/core/src/main/java/com/google/cloud/functions/invoker/http/HttpRequestImpl.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@
3636
import java.util.stream.StreamSupport;
3737
import org.eclipse.jetty.http.HttpField;
3838
import org.eclipse.jetty.http.HttpHeader;
39-
import org.eclipse.jetty.http.MimeTypes;
40-
import org.eclipse.jetty.http.MimeTypes.Type;
4139
import org.eclipse.jetty.http.MultiPart;
4240
import org.eclipse.jetty.http.MultiPart.Part;
4341
import org.eclipse.jetty.http.MultiPartFormData;
@@ -83,8 +81,8 @@ public Map<String, List<String>> getQueryParameters() {
8381
public Map<String, HttpPart> getParts() {
8482
// TODO initiate reading the parts asynchronously before invocation
8583
String contentType = request.getHeaders().get(HttpHeader.CONTENT_TYPE);
86-
if (Type.MULTIPART_FORM_DATA.is(MimeTypes.getContentTypeWithoutCharset(contentType))) {
87-
String boundary = MultiPart.extractBoundary(contentType);
84+
String boundary = MultiPart.extractBoundary(contentType);
85+
if (boundary != null) {
8886
try {
8987
MultiPartFormData.Parts parts =
9088
MultiPartFormData.from(request, boundary, parser -> parser.parse(request)).get();
@@ -208,5 +206,10 @@ public Map<String, List<String>> getHeaders() {
208206
private static <T> List<T> list(Collection<T> collection) {
209207
return (collection instanceof List<?>) ? (List<T>) collection : new ArrayList<>(collection);
210208
}
209+
210+
@Override
211+
public String toString() {
212+
return "%s{%s}".formatted(super.toString(), part);
213+
}
211214
}
212215
}

invoker/core/src/test/java/com/google/cloud/functions/invoker/IntegrationTest.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
import java.util.concurrent.TimeUnit;
6464
import java.util.concurrent.atomic.AtomicReference;
6565
import java.util.regex.Pattern;
66+
import org.eclipse.jetty.client.ByteBufferRequestContent;
6667
import org.eclipse.jetty.client.ContentResponse;
6768
import org.eclipse.jetty.client.HttpClient;
6869
import org.eclipse.jetty.client.MultiPartRequestContent;
@@ -72,7 +73,7 @@
7273
import org.eclipse.jetty.http.HttpHeader;
7374
import org.eclipse.jetty.http.HttpStatus;
7475
import org.eclipse.jetty.http.MultiPart;
75-
import org.eclipse.jetty.http.MultiPart.ByteBufferPart;
76+
import org.eclipse.jetty.http.MultiPart.ContentSourcePart;
7677
import org.junit.BeforeClass;
7778
import org.junit.Rule;
7879
import org.junit.Test;
@@ -535,10 +536,11 @@ public void packageless() throws Exception {
535536
@Test
536537
public void multipart() throws Exception {
537538
MultiPartRequestContent multiPartRequestContent = new MultiPartRequestContent();
538-
539-
multiPartRequestContent.addPart(new ByteBufferPart("bytes", null, HttpFields.EMPTY, ByteBuffer.wrap(new byte[17])));
540-
multiPartRequestContent.addPart(new MultiPart.ContentSourcePart("string", null, HttpFields.EMPTY, new StringRequestContent("1234567890")));
541-
multiPartRequestContent.addPart(new MultiPart.PathPart("icon", "img.png", HttpFields.EMPTY, Path.of("/tmp/img.png")));
539+
byte[] bytes = new byte[17];
540+
multiPartRequestContent.addPart(new ContentSourcePart("bytes", null,
541+
HttpFields.EMPTY, new ByteBufferRequestContent(ByteBuffer.wrap(bytes))));
542+
multiPartRequestContent.addPart(new MultiPart.ContentSourcePart("string", null,
543+
HttpFields.EMPTY, new StringRequestContent("1234567890")));
542544
multiPartRequestContent.close();
543545

544546
String expectedResponse =
@@ -548,7 +550,7 @@ public void multipart() throws Exception {
548550
fullTarget("Multipart"),
549551
ImmutableList.of(
550552
TestCase.builder()
551-
.setHttpContentType(Optional.empty())
553+
.setHttpContentType(multiPartRequestContent.getContentType())
552554
.setRequestContent(multiPartRequestContent)
553555
.setExpectedResponseText(expectedResponse)
554556
.build()));

0 commit comments

Comments
 (0)