diff --git a/retrofit/src/test/java/retrofit2/RequestFactoryTest.java b/retrofit/src/test/java/retrofit2/RequestFactoryTest.java index 602d5cd8fc..d6a6dc17d4 100644 --- a/retrofit/src/test/java/retrofit2/RequestFactoryTest.java +++ b/retrofit/src/test/java/retrofit2/RequestFactoryTest.java @@ -1717,6 +1717,8 @@ Call method(@Part("ping") String ping, @Part("kit") RequestBody ki assertThat(request.url().toString()).isEqualTo("http://example.com/foo/bar/"); RequestBody body = request.body(); + assertThat(body.contentType().toString()).startsWith("multipart/form-data; boundary="); + Buffer buffer = new Buffer(); body.writeTo(buffer); String bodyString = buffer.readUtf8(); @@ -2316,7 +2318,9 @@ Call method(@Field("foo") String foo, @Field("ping") String ping) } } Request request = buildRequest(Example.class, "bar", "pong"); - assertBody(request.body(), "foo=bar&ping=pong"); + RequestBody body = request.body(); + assertBody(body, "foo=bar&ping=pong"); + assertThat(body.contentType().toString()).isEqualTo("application/x-www-form-urlencoded"); } @Test public void formEncodedWithEncodedNameFieldParam() { @@ -2639,6 +2643,36 @@ Call method(@Body RequestBody body) { assertThat(request.body().contentType().toString()).isEqualTo("text/not-plain"); } + @Test public void contentTypeAnnotationHeaderOverridesFormEncoding() { + class Example { + @FormUrlEncoded // + @POST("/foo") // + @Headers("Content-Type: text/not-plain") // + Call method(@Field("foo") String foo, @Field("ping") String ping) { + return null; + } + } + Request request = buildRequest(Example.class, "bar", "pong"); + assertThat(request.body().contentType().toString()).isEqualTo("text/not-plain"); + } + + @Test public void contentTypeAnnotationHeaderOverridesMultipart() { + class Example { + @Multipart // + @POST("/foo/bar/") // + @Headers("Content-Type: text/not-plain") // + Call method(@Part("ping") String ping, @Part("kit") RequestBody kit) { + return null; + } + } + + Request request = buildRequest(Example.class, "pong", RequestBody.create( + TEXT_PLAIN, "kat")); + + RequestBody body = request.body(); + assertThat(request.body().contentType().toString()).isEqualTo("text/not-plain"); + } + @Test public void malformedContentTypeHeaderThrows() { class Example { @POST("/") //