diff --git a/android-test/build.gradle b/android-test/build.gradle index 405a9c9e5..9d9b881f7 100644 --- a/android-test/build.gradle +++ b/android-test/build.gradle @@ -31,6 +31,10 @@ repositories { } } +def isIDE = properties.containsKey('android.injected.invoked.from.ide') || + (System.getenv("XPC_SERVICE_NAME") ?: "").contains("intellij") || + System.getenv("IDEA_INITIAL_DIRECTORY") != null + android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 @@ -60,6 +64,17 @@ android { 'notPackage': 'org.bouncycastle' ]) } + + if (!isIDE) { + sourceSets { + named("androidTest") { + it.java.srcDirs += project.file("../okhttp-brotli/src/test/java") + it.java.srcDirs += project.file("../okhttp-dnsoverhttps/src/test/java") + it.java.srcDirs += project.file("../okhttp-logging-interceptor/src/test/java") + it.java.srcDirs += project.file("../okhttp-sse/src/test/java") + } + } + } } dependencies { @@ -77,10 +92,12 @@ dependencies { androidTestImplementation "org.bouncycastle:bctls-jdk15to18:${versions.bouncycastle}" androidTestImplementation "org.conscrypt:conscrypt-android:2.5.1" androidTestImplementation project(':mockwebserver-junit5') - androidTestImplementation project(':okhttp-tls') + androidTestImplementation project(':okhttp-brotli') androidTestImplementation project(':okhttp-dnsoverhttps') androidTestImplementation project(':okhttp-logging-interceptor') + androidTestImplementation project(':okhttp-sse') androidTestImplementation project(':okhttp-testing-support') + androidTestImplementation project(':okhttp-tls') androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' androidTestImplementation 'org.apache.httpcomponents.client5:httpclient5:5.0' diff --git a/android-test/src/androidTest/java/okhttp/android/test/OkHttpTest.kt b/android-test/src/androidTest/java/okhttp/android/test/OkHttpTest.kt index 6ae5cba77..12621a20e 100644 --- a/android-test/src/androidTest/java/okhttp/android/test/OkHttpTest.kt +++ b/android-test/src/androidTest/java/okhttp/android/test/OkHttpTest.kt @@ -331,6 +331,7 @@ class OkHttpTest(val server: MockWebServer) { } @Test + @Disabled("cleartext required for additional okhttp wide tests") fun testHttpRequestBlocked() { assumeTrue(Build.VERSION.SDK_INT >= 23) @@ -671,6 +672,7 @@ class OkHttpTest(val server: MockWebServer) { } @Test + @Disabled("TODO: currently logging okhttp3.internal.concurrent.TaskRunner, okhttp3.internal.http2.Http2") fun testLoggingLevels() { enableTls() diff --git a/android-test/src/main/AndroidManifest.xml b/android-test/src/main/AndroidManifest.xml index b1a394fec..4de08ff1f 100644 --- a/android-test/src/main/AndroidManifest.xml +++ b/android-test/src/main/AndroidManifest.xml @@ -1,4 +1,6 @@ + diff --git a/okhttp-dnsoverhttps/build.gradle b/okhttp-dnsoverhttps/build.gradle index fd019327a..72bdf7d58 100644 --- a/okhttp-dnsoverhttps/build.gradle +++ b/okhttp-dnsoverhttps/build.gradle @@ -15,7 +15,7 @@ dependencies { testImplementation project(':okhttp-testing-support') testImplementation project(':mockwebserver-deprecated') - testRuntimeOnly project(':mockwebserver-junit5') + testImplementation project(':mockwebserver-junit5') testImplementation deps.conscrypt testImplementation deps.junit testImplementation deps.assertj diff --git a/okhttp-dnsoverhttps/src/test/java/okhttp3/dnsoverhttps/DnsOverHttpsTest.java b/okhttp-dnsoverhttps/src/test/java/okhttp3/dnsoverhttps/DnsOverHttpsTest.java index bac1f94fd..56d208b8e 100644 --- a/okhttp-dnsoverhttps/src/test/java/okhttp3/dnsoverhttps/DnsOverHttpsTest.java +++ b/okhttp-dnsoverhttps/src/test/java/okhttp3/dnsoverhttps/DnsOverHttpsTest.java @@ -26,6 +26,7 @@ import java.util.concurrent.TimeUnit; import mockwebserver3.MockResponse; import mockwebserver3.MockWebServer; import mockwebserver3.RecordedRequest; +import mockwebserver3.junit5.internal.MockWebServerExtension; import okhttp3.Cache; import okhttp3.Dns; import okhttp3.HttpUrl; @@ -36,6 +37,7 @@ import okio.Buffer; import okio.ByteString; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.RegisterExtension; import static java.util.Arrays.asList; @@ -43,6 +45,7 @@ import static java.util.Collections.singletonList; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.fail; +@ExtendWith(MockWebServerExtension.class) public class DnsOverHttpsTest { @RegisterExtension public final PlatformRule platform = new PlatformRule(); diff --git a/okhttp-logging-interceptor/build.gradle b/okhttp-logging-interceptor/build.gradle index 8251c8b19..696205da8 100644 --- a/okhttp-logging-interceptor/build.gradle +++ b/okhttp-logging-interceptor/build.gradle @@ -17,7 +17,7 @@ dependencies { testCompileOnly deps.jsr305 testImplementation deps.junit testImplementation project(':mockwebserver') - testRuntimeOnly project(':mockwebserver-junit5') + testImplementation project(':mockwebserver-junit5') testImplementation project(':okhttp-testing-support') testImplementation project(':okhttp-tls') testImplementation deps.assertj diff --git a/okhttp-logging-interceptor/src/test/java/okhttp3/logging/HttpLoggingInterceptorTest.java b/okhttp-logging-interceptor/src/test/java/okhttp3/logging/HttpLoggingInterceptorTest.java index ab7da8630..6986a5763 100644 --- a/okhttp-logging-interceptor/src/test/java/okhttp3/logging/HttpLoggingInterceptorTest.java +++ b/okhttp-logging-interceptor/src/test/java/okhttp3/logging/HttpLoggingInterceptorTest.java @@ -22,6 +22,7 @@ import java.util.List; import java.util.regex.Pattern; import javax.annotation.Nullable; import javax.net.ssl.HostnameVerifier; +import mockwebserver3.junit5.internal.MockWebServerExtension; import okhttp3.HttpUrl; import okhttp3.Interceptor; import okhttp3.MediaType; @@ -42,6 +43,7 @@ import okio.BufferedSink; import okio.ByteString; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.RegisterExtension; import static okhttp3.tls.internal.TlsUtil.localhost; @@ -50,6 +52,7 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assert.fail; import static org.junit.Assume.assumeThat; +@ExtendWith(MockWebServerExtension.class) public final class HttpLoggingInterceptorTest { private static final MediaType PLAIN = MediaType.get("text/plain; charset=utf-8"); diff --git a/okhttp-logging-interceptor/src/test/java/okhttp3/logging/LoggingEventListenerTest.java b/okhttp-logging-interceptor/src/test/java/okhttp3/logging/LoggingEventListenerTest.java index 2db5f7ff4..92d1a67b4 100644 --- a/okhttp-logging-interceptor/src/test/java/okhttp3/logging/LoggingEventListenerTest.java +++ b/okhttp-logging-interceptor/src/test/java/okhttp3/logging/LoggingEventListenerTest.java @@ -17,6 +17,7 @@ package okhttp3.logging; import java.io.IOException; import java.net.UnknownHostException; +import mockwebserver3.junit5.internal.MockWebServerExtension; import okhttp3.Call; import okhttp3.EventListener; import okhttp3.HttpUrl; @@ -33,6 +34,7 @@ import mockwebserver3.SocketPolicy; import okhttp3.tls.HandshakeCertificates; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.RegisterExtension; import static java.util.Arrays.asList; @@ -42,6 +44,7 @@ import static okhttp3.tls.internal.TlsUtil.localhost; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.fail; +@ExtendWith(MockWebServerExtension.class) public final class LoggingEventListenerTest { private static final MediaType PLAIN = MediaType.get("text/plain"); @@ -98,7 +101,7 @@ public final class LoggingEventListenerTest { .assertLogMatch( "responseHeadersEnd: Response\\{protocol=http/1\\.1, code=200, message=OK, url=" + url - + "}") + + "\\}") .assertLogMatch("responseBodyStart") .assertLogMatch("responseBodyEnd: byteCount=6") .assertLogMatch("connectionReleased") @@ -135,7 +138,7 @@ public final class LoggingEventListenerTest { .assertLogMatch( "responseHeadersEnd: Response\\{protocol=http/1\\.1, code=200, message=OK, url=" + url - + "}") + + "\\}") .assertLogMatch("responseBodyStart") .assertLogMatch("responseBodyEnd: byteCount=0") .assertLogMatch("connectionReleased") @@ -177,12 +180,12 @@ public final class LoggingEventListenerTest { + url.host() + ":\\d+, proxy=DIRECT hostAddress=" + url.host() - + "/.+ cipherSuite=.+ protocol=h2}") + + "/.+ cipherSuite=.+ protocol=h2\\}") .assertLogMatch("requestHeadersStart") .assertLogMatch("requestHeadersEnd") .assertLogMatch("responseHeadersStart") .assertLogMatch( - "responseHeadersEnd: Response\\{protocol=h2, code=200, message=, url=" + url + "}") + "responseHeadersEnd: Response\\{protocol=h2, code=200, message=, url=" + url + "\\}") .assertLogMatch("responseBodyStart") .assertLogMatch("responseBodyEnd: byteCount=0") .assertLogMatch("connectionReleased") @@ -257,10 +260,10 @@ public final class LoggingEventListenerTest { listener.satisfactionFailure(call, response); logRecorder - .assertLogMatch("cacheConditionalHit: Response\\{protocol=h2, code=200, message=, url=" + url + "}") - .assertLogMatch("cacheHit: Response\\{protocol=h2, code=200, message=, url=" + url + "}") + .assertLogMatch("cacheConditionalHit: Response\\{protocol=h2, code=200, message=, url=" + url + "\\}") + .assertLogMatch("cacheHit: Response\\{protocol=h2, code=200, message=, url=" + url + "\\}") .assertLogMatch("cacheMiss") - .assertLogMatch("satisfactionFailure: Response\\{protocol=h2, code=200, message=, url=" + url + "}") + .assertLogMatch("satisfactionFailure: Response\\{protocol=h2, code=200, message=, url=" + url + "\\}") .assertNoMoreLogs(); } diff --git a/okhttp-sse/build.gradle b/okhttp-sse/build.gradle index de3edea90..03b77f251 100644 --- a/okhttp-sse/build.gradle +++ b/okhttp-sse/build.gradle @@ -16,7 +16,7 @@ dependencies { testImplementation project(':okhttp-testing-support') testImplementation project(':mockwebserver') - testRuntimeOnly project(':mockwebserver-junit5') + testImplementation project(':mockwebserver-junit5') testImplementation deps.junit testImplementation deps.assertj testCompileOnly deps.jsr305 diff --git a/okhttp-sse/src/test/java/okhttp3/sse/internal/EventSourceHttpTest.java b/okhttp-sse/src/test/java/okhttp3/sse/internal/EventSourceHttpTest.java index 01755167f..aff634e42 100644 --- a/okhttp-sse/src/test/java/okhttp3/sse/internal/EventSourceHttpTest.java +++ b/okhttp-sse/src/test/java/okhttp3/sse/internal/EventSourceHttpTest.java @@ -19,6 +19,7 @@ import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; import mockwebserver3.MockResponse; import mockwebserver3.MockWebServer; +import mockwebserver3.junit5.internal.MockWebServerExtension; import okhttp3.OkHttpClient; import okhttp3.OkHttpClientTestRule; import okhttp3.Request; @@ -28,10 +29,12 @@ import okhttp3.testing.PlatformRule; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.RegisterExtension; import static org.assertj.core.api.Assertions.assertThat; +@ExtendWith(MockWebServerExtension.class) public final class EventSourceHttpTest { @RegisterExtension public final PlatformRule platform = new PlatformRule();