From aa9b1e0ab811fbf1e0be19f3d012c93b9c0919ee Mon Sep 17 00:00:00 2001
From: Juraj Kusnier <jurajkusnier@users.noreply.github.com>
Date: Mon, 19 Apr 2021 09:02:32 +0200
Subject: [PATCH] Enable logging for prod (#2842)

---
 .../upload/server/auth/LogUploadAuthorizer.kt  |  6 ------
 .../ui/information/InformationFragment.kt      |  5 -----
 .../java/de/rki/coronawarnapp/util/CWADebug.kt |  8 ++------
 .../server/auth/LogUploadAuthorizerTest.kt     | 18 ------------------
 .../de/rki/coronawarnapp/util/CWADebugTest.kt  | 15 +--------------
 5 files changed, 3 insertions(+), 49 deletions(-)

diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/upload/server/auth/LogUploadAuthorizer.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/upload/server/auth/LogUploadAuthorizer.kt
index 121f7f19f..3fc77b8a4 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/upload/server/auth/LogUploadAuthorizer.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/upload/server/auth/LogUploadAuthorizer.kt
@@ -7,7 +7,6 @@ import de.rki.coronawarnapp.appconfig.ConfigData
 import de.rki.coronawarnapp.datadonation.safetynet.DeviceAttestation
 import de.rki.coronawarnapp.server.protocols.internal.ppdd.ElsOtp
 import de.rki.coronawarnapp.server.protocols.internal.ppdd.ElsOtpRequestAndroid
-import de.rki.coronawarnapp.util.CWADebug
 import kotlinx.coroutines.flow.first
 import org.joda.time.Instant
 import timber.log.Timber
@@ -27,11 +26,6 @@ class LogUploadAuthorizer @Inject constructor(
     suspend fun getAuthorizedOTP(otp: UUID = UUID.randomUUID()): LogUploadOtp {
         Timber.tag(TAG).d("getAuthorizedOTP() trying to authorize %s", otp)
 
-        // TODO ¯\_(ツ)_/¯
-        if (!CWADebug.isDeviceForTestersBuild) {
-            throw UnsupportedOperationException()
-        }
-
         val elsOtp = ElsOtp.ELSOneTimePassword.newBuilder().apply {
             setOtp(otp.toString())
         }.build()
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationFragment.kt
index 3e891ee68..c18bdc0f6 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationFragment.kt
@@ -5,13 +5,11 @@ import android.os.Bundle
 import android.view.View
 import android.view.accessibility.AccessibilityEvent
 import android.view.accessibility.AccessibilityNodeInfo
-import androidx.core.view.isGone
 import androidx.fragment.app.Fragment
 import com.google.android.gms.nearby.exposurenotification.ExposureNotificationClient
 import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.databinding.FragmentInformationBinding
 import de.rki.coronawarnapp.ui.main.MainActivity
-import de.rki.coronawarnapp.util.CWADebug
 import de.rki.coronawarnapp.util.ExternalActionHelper
 import de.rki.coronawarnapp.util.di.AutoInject
 import de.rki.coronawarnapp.util.ui.doNavigate
@@ -56,9 +54,6 @@ class InformationFragment : Fragment(R.layout.fragment_information), AutoInject
 
         setButtonOnClickListener()
         setAccessibilityDelegate()
-
-        // TODO ¯\_(ツ)_/¯
-        binding.informationDebuglog.rootLayout.isGone = !CWADebug.isDeviceForTestersBuild
     }
 
     override fun onResume() {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/CWADebug.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/CWADebug.kt
index a00851695..7725af441 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/CWADebug.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/CWADebug.kt
@@ -28,8 +28,7 @@ object CWADebug {
         setupExceptionHandler()
 
         debugLogger = debugLoggerFactory(application).also {
-            // TODO Disabled until all parties are satisfied, search for ¯\_(ツ)_/¯
-            if (isDeviceForTestersBuild) it.init()
+            it.init()
         }
 
         logDeviceInfos()
@@ -37,10 +36,7 @@ object CWADebug {
 
     fun initAfterInjection(component: ApplicationComponent) {
         Timber.v("initAfterInjection(%s)", component)
-        // TODO ¯\_(ツ)_/¯
-        if (isDeviceForTestersBuild) {
-            debugLogger.setInjectionIsReady(component)
-        }
+        debugLogger.setInjectionIsReady(component)
     }
 
     val isLogging: Boolean
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/debuglog/upload/server/auth/LogUploadAuthorizerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/debuglog/upload/server/auth/LogUploadAuthorizerTest.kt
index d04943c8d..b2a8b3c9f 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/debuglog/upload/server/auth/LogUploadAuthorizerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/debuglog/upload/server/auth/LogUploadAuthorizerTest.kt
@@ -6,8 +6,6 @@ import de.rki.coronawarnapp.appconfig.LogUploadConfig
 import de.rki.coronawarnapp.appconfig.SafetyNetRequirements
 import de.rki.coronawarnapp.datadonation.safetynet.DeviceAttestation
 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.mockk.MockKAnnotations
 import io.mockk.Runs
@@ -15,7 +13,6 @@ import io.mockk.coEvery
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.just
-import io.mockk.mockkObject
 import io.mockk.slot
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.runBlockingTest
@@ -49,9 +46,6 @@ class LogUploadAuthorizerTest : BaseIOTest() {
     fun setup() {
         MockKAnnotations.init(this)
 
-        mockkObject(CWADebug)
-        every { CWADebug.isDeviceForTestersBuild } returns true
-
         every { configData.logUpload } returns logUploadConfig
         every { logUploadConfig.safetyNetRequirements } returns safetyNetRequirements
 
@@ -88,16 +82,4 @@ class LogUploadAuthorizerTest : BaseIOTest() {
         attestationRequestSlot.captured.configData shouldBe configData
         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)
-        }
-    }
 }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/CWADebugTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/CWADebugTest.kt
index c29454f47..236128957 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/CWADebugTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/CWADebugTest.kt
@@ -5,7 +5,6 @@ import de.rki.coronawarnapp.bugreporting.debuglog.DebugLogger
 import de.rki.coronawarnapp.environment.BuildConfigWrap
 import de.rki.coronawarnapp.util.di.ApplicationComponent
 import io.kotest.matchers.shouldBe
-import io.mockk.Called
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
 import io.mockk.every
@@ -13,7 +12,6 @@ import io.mockk.impl.annotations.MockK
 import io.mockk.just
 import io.mockk.mockk
 import io.mockk.mockkObject
-import io.mockk.verify
 import io.mockk.verifySequence
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
@@ -49,18 +47,7 @@ class CWADebugTest : BaseTest() {
     }
 
     @Test
-    fun `logging is only initialized on tester builds`() {
-        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"
-
+    fun `logging is initialized`() {
         val debugLogger = mockk<DebugLogger>().apply {
             every { init() } just Runs
             every { setInjectionIsReady(appComponent) } just Runs
-- 
GitLab