From 633881489df5510b818c65f7f44e421e9ebdecd3 Mon Sep 17 00:00:00 2001 From: Yuri Schimke Date: Sat, 27 Apr 2024 12:33:45 +0100 Subject: [PATCH] Slow connects --- .../kotlin/mockwebserver3/MockWebServer.kt | 3 +- .../src/test/java/okhttp3/SlowNetworkTest.kt | 29 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/mockwebserver/src/main/kotlin/mockwebserver3/MockWebServer.kt b/mockwebserver/src/main/kotlin/mockwebserver3/MockWebServer.kt index dc7a36962af7..d869e6543e86 100644 --- a/mockwebserver/src/main/kotlin/mockwebserver3/MockWebServer.kt +++ b/mockwebserver/src/main/kotlin/mockwebserver3/MockWebServer.kt @@ -45,6 +45,7 @@ import javax.net.ssl.SSLSocket import javax.net.ssl.SSLSocketFactory import javax.net.ssl.TrustManager import javax.net.ssl.X509TrustManager +import kotlin.time.Duration.Companion.milliseconds import mockwebserver3.SocketPolicy.DisconnectAfterRequest import mockwebserver3.SocketPolicy.DisconnectAtEnd import mockwebserver3.SocketPolicy.DisconnectAtStart @@ -377,7 +378,7 @@ class MockWebServer : Closeable { val socketPolicy = dispatcher.peek().socketPolicy if (socketPolicy is SocketPolicy.DelayAccept) { - Thread.sleep(socketPolicy.delay.inWholeMilliseconds) + Thread.sleep(100.milliseconds.inWholeMilliseconds) } val socket: Socket diff --git a/okhttp/src/test/java/okhttp3/SlowNetworkTest.kt b/okhttp/src/test/java/okhttp3/SlowNetworkTest.kt index 2be3c81c516f..493065943a43 100644 --- a/okhttp/src/test/java/okhttp3/SlowNetworkTest.kt +++ b/okhttp/src/test/java/okhttp3/SlowNetworkTest.kt @@ -15,12 +15,15 @@ */ package okhttp3 +import java.net.Socket +import java.net.SocketAddress import java.util.concurrent.CountDownLatch import kotlin.time.Duration.Companion.milliseconds import kotlin.time.Duration.Companion.seconds import mockwebserver3.MockResponse import mockwebserver3.MockWebServer import mockwebserver3.SocketPolicy +import okhttp3.internal.connection.RealConnection import okhttp3.testing.PlatformRule import okio.IOException import org.junit.jupiter.api.BeforeEach @@ -50,8 +53,33 @@ class SlowNetworkTest { handshakeCertificates.sslSocketFactory(), handshakeCertificates.trustManager, ) + .socketFactory(object : DelegatingSocketFactory(getDefault()) { + override fun createSocket(): Socket { + return object : Socket() { + override fun connect(endpoint: SocketAddress?) { + Thread.sleep(100) + super.connect(endpoint) + } + + override fun connect(endpoint: SocketAddress?, timeout: Int) { + Thread.sleep(100) + super.connect(endpoint, timeout) + } + + override fun close() { + Thread.sleep(100) + super.close() + } + } + } + }) .callTimeout(15.seconds) .connectTimeout(15.seconds) + .eventListener(object : EventListener() { + override fun connectionAcquired(call: Call, connection: Connection) { + (connection as RealConnection).noNewExchanges() + } + }) .build() server.useHttps(handshakeCertificates.sslSocketFactory()) @@ -84,6 +112,7 @@ class SlowNetworkTest { call: Call, response: Response, ) { +// println("response") response.body.string() latch.countDown() }