From bf53205dfb7aa47ea5d4ac46e3db3c3e7b487a80 Mon Sep 17 00:00:00 2001
From: Mohamed Metwalli <mohamed.metwalli@sap.com>
Date: Wed, 9 Jun 2021 08:14:59 +0200
Subject: [PATCH] =?UTF-8?q?Dcc=20url=20in=20Debug=20options=20(?=
 =?UTF-8?q?=F0=9F=A7=91=E2=80=8D=F0=9F=92=BB)=20(#3382)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* Add missing Dcc server key 🔑 + brushing 🖌

* Update DebugOptionsFragmentViewModelTest.kt
---
 .../debugoptions/ui/DebugOptionsFragment.kt   | 25 +++++++++++++------
 .../test/debugoptions/ui/EnvironmentState.kt  |  2 ++
 .../res/layout/fragment_test_debugoptions.xml | 12 +++++++--
 .../ui/DebugOptionsFragmentViewModelTest.kt   | 11 +++-----
 4 files changed, 34 insertions(+), 16 deletions(-)

diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragment.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragment.kt
index 7c18b62ce..f3b5ff6b4 100644
--- a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragment.kt
+++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragment.kt
@@ -5,6 +5,8 @@ import android.os.Bundle
 import android.view.View
 import android.widget.RadioButton
 import android.widget.RadioGroup
+import androidx.core.text.buildSpannedString
+import androidx.core.text.color
 import androidx.core.view.ViewCompat
 import androidx.core.view.children
 import androidx.fragment.app.Fragment
@@ -13,6 +15,7 @@ import com.google.android.material.snackbar.Snackbar
 import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.databinding.FragmentTestDebugoptionsBinding
 import de.rki.coronawarnapp.test.menu.ui.TestMenuItem
+import de.rki.coronawarnapp.util.ContextExtensions.getColorCompat
 import de.rki.coronawarnapp.util.di.AutoInject
 import de.rki.coronawarnapp.util.ui.observe2
 import de.rki.coronawarnapp.util.ui.viewBinding
@@ -66,13 +69,14 @@ class DebugOptionsFragment : Fragment(R.layout.fragment_test_debugoptions), Auto
                     it.isChecked = it.text == state.current.rawKey
                 }
 
-                environmentCdnurlDownload.text = "Download CDN:\n${state.urlDownload}"
-                environmentCdnurlSubmission.text = "Submission CDN:\n${state.urlSubmission}"
-                environmentCdnurlVerification.text = "Verification CDN:\n${state.urlVerification}"
-                environmentUrlDatadonation.text = "DataDonation:\n${state.urlDataDonation}"
-                environmentUrlLogUpload.text = "LogUpload:\n${state.urlLogUpload}"
-                environmentPubkeyCrowdnotifier.text = "CrowdNotifierPubKey:\n${state.pubKeyCrowdNotifier}"
-                environmentPubkeyAppconfig.text = "AppConfigPubKey:\n${state.pubKeyAppConfig}"
+                environmentCdnurlDownload.text = "Download CDN" styleTo state.urlDownload
+                environmentCdnurlSubmission.text = "Submission CDN" styleTo state.urlSubmission
+                environmentCdnurlVerification.text = "Verification CDN" styleTo state.urlVerification
+                environmentUrlDatadonation.text = "DataDonation" styleTo state.urlDataDonation
+                environmentUrlLogUpload.text = "LogUpload" styleTo state.urlLogUpload
+                environmentPubkeyCrowdnotifier.text = "CrowdNotifierPubKey" styleTo state.pubKeyCrowdNotifier
+                environmentPubkeyAppconfig.text = "AppConfigPubKey" styleTo state.pubKeyAppConfig
+                environmentDccServerUrl.text = "DccServerUrl" styleTo state.dccServerUrl
             }
         }
         vm.environmentStateChange.observe2(this) {
@@ -80,6 +84,13 @@ class DebugOptionsFragment : Fragment(R.layout.fragment_test_debugoptions), Auto
         }
     }
 
+    private infix fun String.styleTo(value: String) = buildSpannedString {
+        val color = requireContext().getColorCompat(R.color.colorAccent)
+        append("${this@styleTo}:")
+        appendLine()
+        color(color) { append(value) }
+    }
+
     private fun showSnackBar(message: String) {
         Snackbar.make(requireView(), message, Snackbar.LENGTH_LONG).show()
     }
diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/EnvironmentState.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/EnvironmentState.kt
index c9b907793..7ef52de71 100644
--- a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/EnvironmentState.kt
+++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/EnvironmentState.kt
@@ -12,6 +12,7 @@ data class EnvironmentState(
     val urlLogUpload: String,
     val pubKeyCrowdNotifier: String,
     val pubKeyAppConfig: String,
+    val dccServerUrl: String,
 ) {
     companion object {
         internal fun EnvironmentSetup.toEnvironmentState() = EnvironmentState(
@@ -24,6 +25,7 @@ data class EnvironmentState(
             urlLogUpload = logUploadServerUrl,
             pubKeyCrowdNotifier = crowdNotifierPublicKey,
             pubKeyAppConfig = appConfigPublicKey,
+            dccServerUrl = dccServerUrl,
         )
     }
 }
diff --git a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_debugoptions.xml b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_debugoptions.xml
index 165e76a58..c29c720b6 100644
--- a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_debugoptions.xml
+++ b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_debugoptions.xml
@@ -55,12 +55,12 @@
             </androidx.constraintlayout.widget.ConstraintLayout>
 
             <LinearLayout
-                android:orientation="vertical"
                 android:id="@+id/environment_container"
                 style="@style/Card"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_margin="@dimen/spacing_tiny">
+                android:layout_margin="@dimen/spacing_tiny"
+                android:orientation="vertical">
 
                 <TextView
                     android:id="@+id/environment_title"
@@ -109,6 +109,14 @@
                     android:layout_marginTop="4dp"
                     tools:text="LogUpload: ?" />
 
+                <TextView
+                    android:id="@+id/environment_dcc_server_url"
+                    style="@style/TextAppearance.MaterialComponents.Caption"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="4dp"
+                    tools:text="Dcc Server Url: ?" />
+
                 <TextView
                     android:id="@+id/environment_pubkey_appconfig"
                     style="@style/TextAppearance.MaterialComponents.Caption"
diff --git a/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragmentViewModelTest.kt b/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragmentViewModelTest.kt
index c1b802516..d4089a51b 100644
--- a/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragmentViewModelTest.kt
+++ b/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragmentViewModelTest.kt
@@ -33,13 +33,10 @@ class DebugOptionsFragmentViewModelTest : BaseTestInstrumentation() {
         every { environmentSetup.logUploadServerUrl } returns "logUploadServerUrl"
         every { environmentSetup.crowdNotifierPublicKey } returns "crowdNotifierPublicKey"
         every { environmentSetup.appConfigPublicKey } returns "appConfigPublicKey"
+        every { environmentSetup.dccServerUrl } returns "dccServerUrl"
 
-        every { environmentSetup.currentEnvironment = any() } answers {
-            currentEnvironment = arg(0)
-        }
-        every { environmentSetup.currentEnvironment } answers {
-            currentEnvironment
-        }
+        every { environmentSetup.currentEnvironment = any() } answers { currentEnvironment = arg(0) }
+        every { environmentSetup.currentEnvironment } answers { currentEnvironment }
     }
 
     private fun createViewModel(): DebugOptionsFragmentViewModel = DebugOptionsFragmentViewModel(
@@ -48,7 +45,7 @@ class DebugOptionsFragmentViewModelTest : BaseTestInstrumentation() {
     )
 
     @Test
-    fun `toggeling the env works`() {
+    fun `toggling the env works`() {
         currentEnvironment = EnvironmentSetup.Type.DEV
         val vm = createViewModel()
         vm.environmentState.getOrAwaitValue().current shouldBe EnvironmentSetup.Type.DEV
-- 
GitLab