@@ -8,6 +8,7 @@ import io.sentry.Hint
88import io.sentry.HttpStatusCodeRange
99import io.sentry.IScope
1010import io.sentry.IScopes
11+ import io.sentry.KeyValueCollectionBehavior
1112import io.sentry.Scope
1213import io.sentry.ScopeCallback
1314import io.sentry.Sentry
@@ -22,6 +23,7 @@ import io.sentry.TypeCheckHint
2223import io.sentry.W3CTraceparentHeader
2324import io.sentry.exception.SentryHttpClientException
2425import io.sentry.mockServerRequestTimeoutMillis
26+ import io.sentry.util.network.NetworkRequestData
2527import java.io.IOException
2628import java.util.concurrent.TimeUnit
2729import kotlin.test.Test
@@ -45,6 +47,7 @@ import okhttp3.mockwebserver.MockWebServer
4547import okhttp3.mockwebserver.SocketPolicy
4648import org.mockito.kotlin.any
4749import org.mockito.kotlin.anyOrNull
50+ import org.mockito.kotlin.argumentCaptor
4851import org.mockito.kotlin.check
4952import org.mockito.kotlin.doAnswer
5053import org.mockito.kotlin.mock
@@ -324,6 +327,35 @@ class SentryOkHttpInterceptorTest {
324327 )
325328 }
326329
330+ @Test
331+ fun `data collection settings do not affect Session Replay network details` () {
332+ val sut =
333+ fixture.getSut(
334+ optionsConfiguration = {
335+ it.dataCollection.httpBodies = emptySet()
336+ it.dataCollection.httpHeaders.request = KeyValueCollectionBehavior .off()
337+ it.dataCollection.httpHeaders.response = KeyValueCollectionBehavior .off()
338+ it.sessionReplay.setNetworkDetailAllowUrls(listOf (" .*" ))
339+ }
340+ )
341+
342+ val request = postRequest().newBuilder().addHeader(" Accept" , " application/json" ).build()
343+ sut.newCall(request).execute()
344+
345+ val hint = argumentCaptor<Hint >()
346+ verify(fixture.scopes).addBreadcrumb(any(), hint.capture())
347+ val networkDetails =
348+ assertNotNull(
349+ hint.firstValue.getAs(
350+ TypeCheckHint .SENTRY_REPLAY_NETWORK_DETAILS ,
351+ NetworkRequestData ::class .java,
352+ )
353+ )
354+ assertEquals(" request-body" , networkDetails.request?.body?.body)
355+ assertEquals(" application/json" , networkDetails.request?.headers?.get(" Accept" ))
356+ assertNotNull(networkDetails.response)
357+ }
358+
327359 @SuppressWarnings(" SwallowedException" )
328360 @Test
329361 fun `adds breadcrumb when http calls results in exception` () {
0 commit comments