1
0
Fork 0
mirror of https://github.com/bitwarden/android.git synced 2025-02-13 18:39:56 +03:00

Remove query params from network logging ()

This commit is contained in:
David Perez 2024-10-24 15:18:20 -05:00 committed by GitHub
parent e80585f77e
commit 53d4c4c03e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 24 additions and 10 deletions
app/src
main/java/com/x8bit/bitwarden/data/platform/datasource/network/core
test/java/com/x8bit/bitwarden/data/platform/datasource/network/util

View file

@ -66,7 +66,11 @@ class ResultCall<T>(
private fun Throwable.toFailure(): Result<T> =
this
.also { Timber.w(it, "Network Error: ${backingCall.request().url}") }
.also {
// We rebuild the URL without query params, we do not want to log those
val url = backingCall.request().url.toUrl().run { "$protocol://$authority$path" }
Timber.w(it, "Network Error: $url")
}
.asFailure()
private fun Response<T>.toResult(): Result<T> =

View file

@ -3,6 +3,7 @@ package com.x8bit.bitwarden.data.platform.datasource.network.util
import com.x8bit.bitwarden.data.platform.util.asSuccess
import io.mockk.every
import io.mockk.mockk
import okhttp3.HttpUrl
import okhttp3.Request
import okhttp3.ResponseBody.Companion.toResponseBody
import org.junit.jupiter.api.Assertions.assertEquals
@ -11,14 +12,13 @@ import org.junit.jupiter.api.Test
import retrofit2.Call
import retrofit2.Response
import java.io.IOException
import java.net.URL
class CallExtensionsTest {
@Test
fun `executeForResult returns failure when execute throws IOException`() {
val request = mockk<Request> {
every { url } returns mockk()
}
val request = createMockkRequest()
val call = mockk<Call<Unit>> {
every { request() } returns request
every { execute() } throws IOException("Fail")
@ -31,9 +31,7 @@ class CallExtensionsTest {
@Test
fun `executeForResult returns failure when execute throws RuntimeException`() {
val request = mockk<Request> {
every { url } returns mockk()
}
val request = createMockkRequest()
val call = mockk<Call<Unit>> {
every { request() } returns request
every { execute() } throws RuntimeException("Fail")
@ -46,9 +44,7 @@ class CallExtensionsTest {
@Test
fun `executeForResult returns failure when response is failure`() {
val request = mockk<Request> {
every { url } returns mockk()
}
val request = createMockkRequest()
val call = mockk<Call<Unit>> {
every { request() } returns request
every { execute() } returns Response.error(400, "".toResponseBody())
@ -69,4 +65,18 @@ class CallExtensionsTest {
assertEquals(Unit.asSuccess(), result)
}
private fun createMockkRequest(): Request {
val mockkUrl = mockk<URL> {
every { protocol } returns "http"
every { authority } returns "bitwarden.com"
every { path } returns "/example/path"
}
val mockkHttpUrl = mockk<HttpUrl> {
every { toUrl() } returns mockkUrl
}
return mockk<Request> {
every { url } returns mockkHttpUrl
}
}
}