From 2c60dde82ad2731251373602e5e8898958c395ca Mon Sep 17 00:00:00 2001 From: Mike McCready <66998419+MikeMcC399@users.noreply.github.com> Date: Thu, 20 May 2021 14:17:45 +0200 Subject: [PATCH] Make Error report filename Windows compatible (EXPOSUREAPP-7266) (COMMUNITY) (#3235) * Make snapshot log filename Windows compatible (replace : with _) * Modify LogSnapshotterTest for changed filename timezone and colon replacement Co-authored-by: harambasicluka <64483219+harambasicluka@users.noreply.github.com> --- .../bugreporting/debuglog/internal/LogSnapshotter.kt | 3 ++- .../bugreporting/debuglog/internal/LogSnapshotterTest.kt | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/internal/LogSnapshotter.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/internal/LogSnapshotter.kt index fee05ee70..cbbd0e13e 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/internal/LogSnapshotter.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/internal/LogSnapshotter.kt @@ -34,7 +34,8 @@ class LogSnapshotter @Inject constructor( } val now = timeStamper.nowUTC.toUserTimeZone() - val formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS") + // Avoid ":" in filename since it is a reserved character in Microsoft Windows + val formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH_mm_ss.SSS") val formattedFileName = "CWA Log ${now.toString(formatter)}" if (!snapshotDir.exists() && snapshotDir.mkdirs()) { Timber.tag(TAG).v("Created %s", snapshotDir) diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/debuglog/internal/LogSnapshotterTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/debuglog/internal/LogSnapshotterTest.kt index b4ccfd775..0bba493b4 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/debuglog/internal/LogSnapshotterTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/debuglog/internal/LogSnapshotterTest.kt @@ -2,12 +2,13 @@ package de.rki.coronawarnapp.bugreporting.debuglog.internal import android.content.Context import de.rki.coronawarnapp.bugreporting.debuglog.DebugLogger +import de.rki.coronawarnapp.util.TimeAndDateExtensions.toUserTimeZone import de.rki.coronawarnapp.util.TimeStamper import io.kotest.matchers.shouldBe import io.mockk.MockKAnnotations import io.mockk.every import io.mockk.impl.annotations.MockK -import org.joda.time.Instant +import org.joda.time.DateTime import org.junit.jupiter.api.AfterEach import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test @@ -26,7 +27,7 @@ class LogSnapshotterTest : BaseIOTest() { private val runningLogFake = File(testDir, "running.log") private val snapshotDir = File(cacheDir, "debuglog_snapshots") - private val expectedSnapshot = File(snapshotDir, "CWA Log 1970-01-01 00:00:00.000.zip") + private val expectedSnapshot = File(snapshotDir, "CWA Log 1970-01-01 00_00_00.000.zip") @BeforeEach fun setup() { @@ -38,7 +39,7 @@ class LogSnapshotterTest : BaseIOTest() { testDir.exists() shouldBe true every { debugLogger.runningLog } returns runningLogFake - every { timeStamper.nowUTC } returns Instant.EPOCH + every { timeStamper.nowUTC.toUserTimeZone() } returns DateTime.parse("1970-01-01T00:00:00.000Z") runningLogFake.parentFile!!.mkdirs() runningLogFake.writeText("1 Doge = 1 Doge") -- GitLab