Skip to content
Snippets Groups Projects
Unverified Commit aa9b1e0a authored by Juraj Kusnier's avatar Juraj Kusnier Committed by GitHub
Browse files

Enable logging for prod (#2842)

parent 4a2b240f
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,6 @@ import de.rki.coronawarnapp.appconfig.ConfigData ...@@ -7,7 +7,6 @@ import de.rki.coronawarnapp.appconfig.ConfigData
import de.rki.coronawarnapp.datadonation.safetynet.DeviceAttestation import de.rki.coronawarnapp.datadonation.safetynet.DeviceAttestation
import de.rki.coronawarnapp.server.protocols.internal.ppdd.ElsOtp import de.rki.coronawarnapp.server.protocols.internal.ppdd.ElsOtp
import de.rki.coronawarnapp.server.protocols.internal.ppdd.ElsOtpRequestAndroid import de.rki.coronawarnapp.server.protocols.internal.ppdd.ElsOtpRequestAndroid
import de.rki.coronawarnapp.util.CWADebug
import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.first
import org.joda.time.Instant import org.joda.time.Instant
import timber.log.Timber import timber.log.Timber
...@@ -27,11 +26,6 @@ class LogUploadAuthorizer @Inject constructor( ...@@ -27,11 +26,6 @@ class LogUploadAuthorizer @Inject constructor(
suspend fun getAuthorizedOTP(otp: UUID = UUID.randomUUID()): LogUploadOtp { suspend fun getAuthorizedOTP(otp: UUID = UUID.randomUUID()): LogUploadOtp {
Timber.tag(TAG).d("getAuthorizedOTP() trying to authorize %s", otp) Timber.tag(TAG).d("getAuthorizedOTP() trying to authorize %s", otp)
// TODO ¯\_(ツ)_/¯
if (!CWADebug.isDeviceForTestersBuild) {
throw UnsupportedOperationException()
}
val elsOtp = ElsOtp.ELSOneTimePassword.newBuilder().apply { val elsOtp = ElsOtp.ELSOneTimePassword.newBuilder().apply {
setOtp(otp.toString()) setOtp(otp.toString())
}.build() }.build()
......
...@@ -5,13 +5,11 @@ import android.os.Bundle ...@@ -5,13 +5,11 @@ import android.os.Bundle
import android.view.View import android.view.View
import android.view.accessibility.AccessibilityEvent import android.view.accessibility.AccessibilityEvent
import android.view.accessibility.AccessibilityNodeInfo import android.view.accessibility.AccessibilityNodeInfo
import androidx.core.view.isGone
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import com.google.android.gms.nearby.exposurenotification.ExposureNotificationClient import com.google.android.gms.nearby.exposurenotification.ExposureNotificationClient
import de.rki.coronawarnapp.R import de.rki.coronawarnapp.R
import de.rki.coronawarnapp.databinding.FragmentInformationBinding import de.rki.coronawarnapp.databinding.FragmentInformationBinding
import de.rki.coronawarnapp.ui.main.MainActivity import de.rki.coronawarnapp.ui.main.MainActivity
import de.rki.coronawarnapp.util.CWADebug
import de.rki.coronawarnapp.util.ExternalActionHelper import de.rki.coronawarnapp.util.ExternalActionHelper
import de.rki.coronawarnapp.util.di.AutoInject import de.rki.coronawarnapp.util.di.AutoInject
import de.rki.coronawarnapp.util.ui.doNavigate import de.rki.coronawarnapp.util.ui.doNavigate
...@@ -56,9 +54,6 @@ class InformationFragment : Fragment(R.layout.fragment_information), AutoInject ...@@ -56,9 +54,6 @@ class InformationFragment : Fragment(R.layout.fragment_information), AutoInject
setButtonOnClickListener() setButtonOnClickListener()
setAccessibilityDelegate() setAccessibilityDelegate()
// TODO ¯\_(ツ)_/¯
binding.informationDebuglog.rootLayout.isGone = !CWADebug.isDeviceForTestersBuild
} }
override fun onResume() { override fun onResume() {
......
...@@ -28,8 +28,7 @@ object CWADebug { ...@@ -28,8 +28,7 @@ object CWADebug {
setupExceptionHandler() setupExceptionHandler()
debugLogger = debugLoggerFactory(application).also { debugLogger = debugLoggerFactory(application).also {
// TODO Disabled until all parties are satisfied, search for ¯\_(ツ)_/¯ it.init()
if (isDeviceForTestersBuild) it.init()
} }
logDeviceInfos() logDeviceInfos()
...@@ -37,10 +36,7 @@ object CWADebug { ...@@ -37,10 +36,7 @@ object CWADebug {
fun initAfterInjection(component: ApplicationComponent) { fun initAfterInjection(component: ApplicationComponent) {
Timber.v("initAfterInjection(%s)", component) Timber.v("initAfterInjection(%s)", component)
// TODO ¯\_(ツ)_/¯ debugLogger.setInjectionIsReady(component)
if (isDeviceForTestersBuild) {
debugLogger.setInjectionIsReady(component)
}
} }
val isLogging: Boolean val isLogging: Boolean
......
...@@ -6,8 +6,6 @@ import de.rki.coronawarnapp.appconfig.LogUploadConfig ...@@ -6,8 +6,6 @@ import de.rki.coronawarnapp.appconfig.LogUploadConfig
import de.rki.coronawarnapp.appconfig.SafetyNetRequirements import de.rki.coronawarnapp.appconfig.SafetyNetRequirements
import de.rki.coronawarnapp.datadonation.safetynet.DeviceAttestation import de.rki.coronawarnapp.datadonation.safetynet.DeviceAttestation
import de.rki.coronawarnapp.server.protocols.internal.ppdd.PpacAndroid import de.rki.coronawarnapp.server.protocols.internal.ppdd.PpacAndroid
import de.rki.coronawarnapp.util.CWADebug
import io.kotest.assertions.throwables.shouldThrow
import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldBe
import io.mockk.MockKAnnotations import io.mockk.MockKAnnotations
import io.mockk.Runs import io.mockk.Runs
...@@ -15,7 +13,6 @@ import io.mockk.coEvery ...@@ -15,7 +13,6 @@ import io.mockk.coEvery
import io.mockk.every import io.mockk.every
import io.mockk.impl.annotations.MockK import io.mockk.impl.annotations.MockK
import io.mockk.just import io.mockk.just
import io.mockk.mockkObject
import io.mockk.slot import io.mockk.slot
import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.test.runBlockingTest import kotlinx.coroutines.test.runBlockingTest
...@@ -49,9 +46,6 @@ class LogUploadAuthorizerTest : BaseIOTest() { ...@@ -49,9 +46,6 @@ class LogUploadAuthorizerTest : BaseIOTest() {
fun setup() { fun setup() {
MockKAnnotations.init(this) MockKAnnotations.init(this)
mockkObject(CWADebug)
every { CWADebug.isDeviceForTestersBuild } returns true
every { configData.logUpload } returns logUploadConfig every { configData.logUpload } returns logUploadConfig
every { logUploadConfig.safetyNetRequirements } returns safetyNetRequirements every { logUploadConfig.safetyNetRequirements } returns safetyNetRequirements
...@@ -88,16 +82,4 @@ class LogUploadAuthorizerTest : BaseIOTest() { ...@@ -88,16 +82,4 @@ class LogUploadAuthorizerTest : BaseIOTest() {
attestationRequestSlot.captured.configData shouldBe configData attestationRequestSlot.captured.configData shouldBe configData
attestationRequestSlot.captured.checkDeviceTime shouldBe false attestationRequestSlot.captured.checkDeviceTime shouldBe false
} }
@Test
fun `upload is not possible on prod builds`() = runBlockingTest {
every { CWADebug.isDeviceForTestersBuild } returns false
val expectedOtp = UUID.fromString("15cff19f-af26-41bc-94f2-c1a65075e894")
val instance = createInstance()
shouldThrow<UnsupportedOperationException> {
instance.getAuthorizedOTP(otp = expectedOtp)
}
}
} }
...@@ -5,7 +5,6 @@ import de.rki.coronawarnapp.bugreporting.debuglog.DebugLogger ...@@ -5,7 +5,6 @@ import de.rki.coronawarnapp.bugreporting.debuglog.DebugLogger
import de.rki.coronawarnapp.environment.BuildConfigWrap import de.rki.coronawarnapp.environment.BuildConfigWrap
import de.rki.coronawarnapp.util.di.ApplicationComponent import de.rki.coronawarnapp.util.di.ApplicationComponent
import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldBe
import io.mockk.Called
import io.mockk.MockKAnnotations import io.mockk.MockKAnnotations
import io.mockk.Runs import io.mockk.Runs
import io.mockk.every import io.mockk.every
...@@ -13,7 +12,6 @@ import io.mockk.impl.annotations.MockK ...@@ -13,7 +12,6 @@ import io.mockk.impl.annotations.MockK
import io.mockk.just import io.mockk.just
import io.mockk.mockk import io.mockk.mockk
import io.mockk.mockkObject import io.mockk.mockkObject
import io.mockk.verify
import io.mockk.verifySequence import io.mockk.verifySequence
import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
...@@ -49,18 +47,7 @@ class CWADebugTest : BaseTest() { ...@@ -49,18 +47,7 @@ class CWADebugTest : BaseTest() {
} }
@Test @Test
fun `logging is only initialized on tester builds`() { fun `logging is initialized`() {
val debugLogger: DebugLogger = mockk()
CWADebug.debugLoggerFactory = { debugLogger }
CWADebug.init(application)
CWADebug.initAfterInjection(appComponent)
verify { debugLogger wasNot Called }
}
@Test
fun `logging is initialized on deviceForTester builds`() {
every { BuildConfigWrap.FLAVOR } returns "deviceForTesters"
val debugLogger = mockk<DebugLogger>().apply { val debugLogger = mockk<DebugLogger>().apply {
every { init() } just Runs every { init() } just Runs
every { setInjectionIsReady(appComponent) } just Runs every { setInjectionIsReady(appComponent) } just Runs
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment