@@ -6,6 +6,7 @@ import io.mockk.every
66import io.mockk.mockk
77import io.mockk.spyk
88import org.junit.jupiter.api.Assertions.assertEquals
9+ import org.junit.jupiter.api.Assertions.assertFalse
910import org.junit.jupiter.api.Assertions.assertTrue
1011import org.junit.jupiter.api.Assertions.fail
1112import org.junit.jupiter.api.Test
@@ -18,6 +19,7 @@ import java.net.HttpURLConnection
1819import java.net.MalformedURLException
1920import java.net.URL
2021import java.net.http.HttpClient
22+ import java.util.zip.GZIPOutputStream
2123
2224@TestInstance(TestInstance .Lifecycle .PER_CLASS )
2325class HTTPClientTests {
@@ -45,7 +47,9 @@ class HTTPClientTests {
4547
4648 @Test
4749 fun `settings connection has correct configuration` () {
48- httpClient.upload(" api.segment.io/v1" ).connection.let {
50+ httpClient.upload(" api.segment.io/v1" ).also {
51+ assertTrue(it.outputStream is GZIPOutputStream )
52+ }.connection.let {
4953 assertEquals(
5054 " https://api.segment.io/v1/b" ,
5155 it.url.toString()
@@ -129,11 +133,28 @@ class HTTPClientTests {
129133 )
130134 }
131135
132- httpClient.upload(" api.segment.io/v1" ).connection.let {
136+ httpClient.upload(" api.segment.io/v1" ).also {
137+ assertFalse(it.outputStream is GZIPOutputStream )
138+ }.connection.let {
133139 assertEquals(
134140 " https://api.test.com" ,
135141 it.url.toString()
136142 )
137143 }
138144 }
145+
146+ @Test
147+ fun `custom requestFactory can remove gzip` () {
148+ val httpClient = HTTPClient (" 123" , object : RequestFactory () {
149+ override fun upload (apiHost : String ): HttpURLConnection {
150+ val connection: HttpURLConnection = openConnection(" https://$apiHost /b" )
151+ connection.setRequestProperty(" Content-Type" , " text/plain" )
152+ connection.doOutput = true
153+ connection.setChunkedStreamingMode(0 )
154+ return connection
155+ }
156+ })
157+
158+ assertFalse(httpClient.upload(" api.segment.io/v1" ).outputStream is GZIPOutputStream )
159+ }
139160}
0 commit comments