diff --git a/briar-desktop/src/automatedScreenshots/kotlin/org/briarproject/briar/desktop/ScreenshotTest.kt b/briar-desktop/src/automatedScreenshots/kotlin/org/briarproject/briar/desktop/ScreenshotTest.kt index 5871785d32033032013fd64d9b5d3ad5d346242f..6d4be6cea93bf986e11e3ee542071b2589d555f3 100644 --- a/briar-desktop/src/automatedScreenshots/kotlin/org/briarproject/briar/desktop/ScreenshotTest.kt +++ b/briar-desktop/src/automatedScreenshots/kotlin/org/briarproject/briar/desktop/ScreenshotTest.kt @@ -18,13 +18,15 @@ // TODO: Remove `invisible_reference` and `invisible_member` // when https://youtrack.jetbrains.com/issue/KTIJ-23114/ is fixed. -@file:Suppress("invisible_reference", "invisible_member", "nls") +@file:Suppress("invisible_reference", "invisible_member", "HardCodedStringLiteral") package org.briarproject.briar.desktop import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.awt.ComposeWindow import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.toAwtImage import androidx.compose.ui.test.DesktopComposeUiTest import androidx.compose.ui.test.ExperimentalTestApi import androidx.compose.ui.test.onNodeWithTag @@ -49,6 +51,7 @@ import org.briarproject.briar.desktop.ui.UiMode import org.briarproject.briar.desktop.ui.WindowInfo import org.jetbrains.annotations.NonNls import org.jetbrains.skia.Image +import org.jetbrains.skiko.toImage import org.junit.Test import java.io.FileOutputStream @@ -164,9 +167,11 @@ class ScreenshotTest { } } -private fun Image.saveAsScreenshot(name: String) = +private fun ImageBitmap.saveAsScreenshot(name: String) = save("../utils/screenshots/$name.png") +private fun ImageBitmap.save(file: String) = toAwtImage().toImage().save(file) + private fun Image.save(file: String) { encodeToData()?.bytes?.let { bytes -> FileOutputStream(file).use { out -> diff --git a/briar-desktop/src/test/kotlin/org/briarproject/briar/desktop/settings/UnencryptedSettingsImplTest.kt b/briar-desktop/src/test/kotlin/org/briarproject/briar/desktop/settings/UnencryptedSettingsImplTest.kt index 67489d1465d6e351cbaa1caf3304b9d3c52a7198..08827af9d5a54f963661d9389cac6072785bb32b 100644 --- a/briar-desktop/src/test/kotlin/org/briarproject/briar/desktop/settings/UnencryptedSettingsImplTest.kt +++ b/briar-desktop/src/test/kotlin/org/briarproject/briar/desktop/settings/UnencryptedSettingsImplTest.kt @@ -23,31 +23,29 @@ import ch.qos.logback.classic.Logger import ch.qos.logback.classic.spi.ILoggingEvent import ch.qos.logback.core.read.ListAppender import org.briarproject.briar.desktop.settings.UnencryptedSettings.Language +import org.junit.After +import org.junit.Assert.assertEquals +import org.junit.Before +import org.junit.Test import org.slf4j.LoggerFactory -import org.testng.annotations.AfterTest -import org.testng.annotations.BeforeTest import java.util.prefs.Preferences -import kotlin.test.Test -import kotlin.test.assertContains -import kotlin.test.assertEquals @Suppress("HardCodedStringLiteral") class UnencryptedSettingsImplTest { // Unfortunately, this test is not side effect free: it does update the preferences. // In order to reset value to what was stored in the preferences node before running - // the test, remember the value during @BeforeTest and reset it to that value during - // @AfterTest. + // the test, remember the value during @Before and reset it to that value during @After. private val prefs: Preferences = Preferences.userNodeForPackage(UnencryptedSettingsImpl::class.java) private var oldValue: String? = null - @BeforeTest + @Before fun rememberValuesBeforeTest() { oldValue = prefs.get(PREF_LANG, null) } - @AfterTest + @After fun restoreValuesAfterTest() { if (oldValue == null) { prefs.remove(PREF_LANG) @@ -87,6 +85,6 @@ class UnencryptedSettingsImplTest { assertEquals(1, appender.list.size) val event = appender.list[0] assertEquals(Level.ERROR, event.level) - assertContains(event.message, "Unexpected enum value") + assert(event.message.contains("Unexpected enum value")) } }