diff --git a/legacy/testing/src/main/java/com/fsck/k9/preferences/InMemoryStoragePersister.kt b/core/android/testing/src/main/kotlin/net/thunderbird/core/android/preferences/InMemoryStoragePersister.kt similarity index 89% rename from legacy/testing/src/main/java/com/fsck/k9/preferences/InMemoryStoragePersister.kt rename to core/android/testing/src/main/kotlin/net/thunderbird/core/android/preferences/InMemoryStoragePersister.kt index 6b3d3e75f3c..60ea25bcaf4 100644 --- a/legacy/testing/src/main/java/com/fsck/k9/preferences/InMemoryStoragePersister.kt +++ b/core/android/testing/src/main/kotlin/net/thunderbird/core/android/preferences/InMemoryStoragePersister.kt @@ -1,4 +1,9 @@ -package com.fsck.k9.preferences +package net.thunderbird.core.android.preferences + +import com.fsck.k9.preferences.Storage +import com.fsck.k9.preferences.StorageEditor +import com.fsck.k9.preferences.StoragePersister +import com.fsck.k9.preferences.StorageUpdater class InMemoryStoragePersister : StoragePersister { private val values = mutableMapOf() diff --git a/legacy/core/src/test/java/com/fsck/k9/PreferencesTest.kt b/legacy/core/src/test/java/com/fsck/k9/PreferencesTest.kt index 8a719081720..d6e3dfbe7c4 100644 --- a/legacy/core/src/test/java/com/fsck/k9/PreferencesTest.kt +++ b/legacy/core/src/test/java/com/fsck/k9/PreferencesTest.kt @@ -7,8 +7,8 @@ import assertk.assertions.isSameInstanceAs import com.fsck.k9.mail.AuthType import com.fsck.k9.mail.ConnectionSecurity import com.fsck.k9.mail.ServerSettings -import com.fsck.k9.preferences.InMemoryStoragePersister import kotlin.test.Test +import net.thunderbird.core.android.preferences.InMemoryStoragePersister import org.junit.Before import org.mockito.kotlin.any import org.mockito.kotlin.doReturn diff --git a/legacy/core/src/test/java/com/fsck/k9/TestApp.kt b/legacy/core/src/test/java/com/fsck/k9/TestApp.kt index 3a9855c1d3e..e01b3204f3e 100644 --- a/legacy/core/src/test/java/com/fsck/k9/TestApp.kt +++ b/legacy/core/src/test/java/com/fsck/k9/TestApp.kt @@ -14,9 +14,9 @@ import com.fsck.k9.crypto.EncryptionExtractor import com.fsck.k9.notification.NotificationActionCreator import com.fsck.k9.notification.NotificationResourceProvider import com.fsck.k9.notification.NotificationStrategy -import com.fsck.k9.preferences.InMemoryStoragePersister import com.fsck.k9.preferences.StoragePersister import com.fsck.k9.storage.storageModule +import net.thunderbird.core.android.preferences.InMemoryStoragePersister import net.thunderbird.legacy.core.FakeAccountDefaultsProvider import org.koin.core.qualifier.named import org.koin.dsl.module diff --git a/legacy/testing/build.gradle.kts b/legacy/testing/build.gradle.kts index 6d5fc353e29..01e5efce3be 100644 --- a/legacy/testing/build.gradle.kts +++ b/legacy/testing/build.gradle.kts @@ -3,7 +3,13 @@ plugins { } dependencies { + implementation(projects.legacy.core) + api(projects.core.android.testing) + + api(libs.koin.core) + api(libs.mockito.core) + api(libs.mockito.kotlin) } android { diff --git a/legacy/ui/legacy/src/test/java/com/fsck/k9/RobolectricTest.kt b/legacy/ui/legacy/src/test/java/com/fsck/k9/RobolectricTest.kt deleted file mode 100644 index 8dde7f563f4..00000000000 --- a/legacy/ui/legacy/src/test/java/com/fsck/k9/RobolectricTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.fsck.k9 - -import android.app.Application -import org.junit.runner.RunWith -import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config - -/** - * A Robolectric test that does not create an instance of our [Application] class [K9]. - * - * See also [K9RobolectricTest]. - */ -@RunWith(RobolectricTestRunner::class) -@Config(application = EmptyApplication::class) -abstract class RobolectricTest - -class EmptyApplication : Application() diff --git a/legacy/ui/legacy/src/test/java/com/fsck/k9/TestApp.kt b/legacy/ui/legacy/src/test/java/com/fsck/k9/TestApp.kt index 973a29a0b17..26ae584cb06 100644 --- a/legacy/ui/legacy/src/test/java/com/fsck/k9/TestApp.kt +++ b/legacy/ui/legacy/src/test/java/com/fsck/k9/TestApp.kt @@ -7,8 +7,8 @@ import app.k9mail.core.featureflag.InMemoryFeatureFlagProvider import app.k9mail.feature.telemetry.telemetryModule import app.k9mail.legacy.account.AccountDefaultsProvider import app.k9mail.legacy.di.DI -import com.fsck.k9.preferences.InMemoryStoragePersister import com.fsck.k9.preferences.StoragePersister +import net.thunderbird.core.android.preferences.InMemoryStoragePersister import org.koin.dsl.module import org.mockito.Mockito.mock diff --git a/legacy/ui/legacy/src/test/java/com/fsck/k9/activity/compose/RecipientLoaderTest.java b/legacy/ui/legacy/src/test/java/com/fsck/k9/activity/compose/RecipientLoaderTest.java index c16e444c89c..4cc236638c2 100644 --- a/legacy/ui/legacy/src/test/java/com/fsck/k9/activity/compose/RecipientLoaderTest.java +++ b/legacy/ui/legacy/src/test/java/com/fsck/k9/activity/compose/RecipientLoaderTest.java @@ -11,11 +11,10 @@ import android.net.Uri; import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds.Email; - -import com.fsck.k9.RobolectricTest; import com.fsck.k9.mail.Address; import com.fsck.k9.view.RecipientSelectView.Recipient; import com.fsck.k9.view.RecipientSelectView.RecipientCryptoStatus; +import net.thunderbird.core.android.testing.RobolectricTest; import org.junit.Before; import org.junit.Test; import org.robolectric.RuntimeEnvironment; diff --git a/legacy/ui/legacy/src/test/java/com/fsck/k9/activity/compose/ReplyToPresenterTest.kt b/legacy/ui/legacy/src/test/java/com/fsck/k9/activity/compose/ReplyToPresenterTest.kt index 98a68a200d9..488f8175bbd 100644 --- a/legacy/ui/legacy/src/test/java/com/fsck/k9/activity/compose/ReplyToPresenterTest.kt +++ b/legacy/ui/legacy/src/test/java/com/fsck/k9/activity/compose/ReplyToPresenterTest.kt @@ -6,8 +6,8 @@ import assertk.assertThat import assertk.assertions.isFalse import assertk.assertions.isSameInstanceAs import assertk.assertions.isTrue -import com.fsck.k9.RobolectricTest import com.fsck.k9.mail.Address +import net.thunderbird.core.android.testing.RobolectricTest import org.junit.Test import org.mockito.kotlin.doReturn import org.mockito.kotlin.mock diff --git a/legacy/ui/legacy/src/test/java/com/fsck/k9/contacts/ContactLetterExtractorTest.kt b/legacy/ui/legacy/src/test/java/com/fsck/k9/contacts/ContactLetterExtractorTest.kt index 6c302aa4483..e2a6f21df72 100644 --- a/legacy/ui/legacy/src/test/java/com/fsck/k9/contacts/ContactLetterExtractorTest.kt +++ b/legacy/ui/legacy/src/test/java/com/fsck/k9/contacts/ContactLetterExtractorTest.kt @@ -2,8 +2,8 @@ package com.fsck.k9.contacts import assertk.assertThat import assertk.assertions.isEqualTo -import com.fsck.k9.RobolectricTest import com.fsck.k9.mail.Address +import net.thunderbird.core.android.testing.RobolectricTest import org.junit.Test class ContactLetterExtractorTest : RobolectricTest() { diff --git a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/compose/RecipientTokenLayoutTest.kt b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/compose/RecipientTokenLayoutTest.kt index 61ccce1a5c5..218671b9acc 100644 --- a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/compose/RecipientTokenLayoutTest.kt +++ b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/compose/RecipientTokenLayoutTest.kt @@ -7,9 +7,9 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.view.isVisible import assertk.assertThat import assertk.assertions.isEqualTo -import com.fsck.k9.RobolectricTest import com.fsck.k9.ui.R import com.google.android.material.textview.MaterialTextView +import net.thunderbird.core.android.testing.RobolectricTest import org.junit.Before import org.junit.Test import org.robolectric.Robolectric diff --git a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/crypto/MessageCryptoHelperTest.java b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/crypto/MessageCryptoHelperTest.java index 464bdae976f..657b16d36af 100644 --- a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/crypto/MessageCryptoHelperTest.java +++ b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/crypto/MessageCryptoHelperTest.java @@ -7,8 +7,6 @@ import android.app.PendingIntent; import android.content.Context; import android.content.Intent; - -import com.fsck.k9.RobolectricTest; import com.fsck.k9.autocrypt.AutocryptOperations; import com.fsck.k9.mail.Address; import com.fsck.k9.mail.Body; @@ -20,6 +18,7 @@ import com.fsck.k9.mailstore.CryptoResultAnnotation; import com.fsck.k9.mailstore.CryptoResultAnnotation.CryptoError; import com.fsck.k9.mailstore.MessageCryptoAnnotations; +import net.thunderbird.core.android.testing.RobolectricTest; import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; diff --git a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/helper/RelativeDateTimeFormatterTest.kt b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/helper/RelativeDateTimeFormatterTest.kt index c4e3f24a192..61e82f59693 100644 --- a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/helper/RelativeDateTimeFormatterTest.kt +++ b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/helper/RelativeDateTimeFormatterTest.kt @@ -5,12 +5,12 @@ import android.os.SystemClock import app.k9mail.core.testing.TestClock import assertk.assertThat import assertk.assertions.isEqualTo -import com.fsck.k9.RobolectricTest import java.time.LocalDate import java.time.LocalDateTime import java.time.ZoneId import java.util.TimeZone import kotlinx.datetime.Instant +import net.thunderbird.core.android.testing.RobolectricTest import org.junit.Before import org.junit.Test import org.robolectric.RuntimeEnvironment diff --git a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/helper/SizeFormatterTest.kt b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/helper/SizeFormatterTest.kt index 319b2a071d0..45e7ba5954d 100644 --- a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/helper/SizeFormatterTest.kt +++ b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/helper/SizeFormatterTest.kt @@ -2,7 +2,7 @@ package com.fsck.k9.ui.helper import assertk.assertThat import assertk.assertions.isEqualTo -import com.fsck.k9.RobolectricTest +import net.thunderbird.core.android.testing.RobolectricTest import org.junit.Test import org.robolectric.RuntimeEnvironment import org.robolectric.annotation.Config diff --git a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messagedetails/MessageDetailsParticipantFormatterTest.kt b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messagedetails/MessageDetailsParticipantFormatterTest.kt index 329cb3cb083..94c24c34dd6 100644 --- a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messagedetails/MessageDetailsParticipantFormatterTest.kt +++ b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messagedetails/MessageDetailsParticipantFormatterTest.kt @@ -12,9 +12,9 @@ import assertk.assertions.isEqualTo import assertk.assertions.isInstanceOf import assertk.assertions.isNotNull import assertk.assertions.isNull -import com.fsck.k9.RobolectricTest import com.fsck.k9.helper.ContactNameProvider import com.fsck.k9.mail.Address +import net.thunderbird.core.android.testing.RobolectricTest import org.junit.Test private const val IDENTITY_NAME = "Alice" diff --git a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messagelist/MessageListAdapterTest.kt b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messagelist/MessageListAdapterTest.kt index ff498d9a761..0fa895aa6eb 100644 --- a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messagelist/MessageListAdapterTest.kt +++ b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messagelist/MessageListAdapterTest.kt @@ -20,13 +20,13 @@ import assertk.assertions.support.expected import com.fsck.k9.FontSizes import com.fsck.k9.FontSizes.Companion.FONT_DEFAULT import com.fsck.k9.FontSizes.Companion.LARGE -import com.fsck.k9.RobolectricTest import com.fsck.k9.UiDensity import com.fsck.k9.contacts.ContactPictureLoader import com.fsck.k9.mail.Address import com.fsck.k9.ui.R import com.fsck.k9.ui.helper.RelativeDateTimeFormatter import com.google.android.material.textview.MaterialTextView +import net.thunderbird.core.android.testing.RobolectricTest import org.junit.Test import org.mockito.kotlin.mock import org.robolectric.Robolectric diff --git a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messageview/MessageViewRecipientFormatterTest.kt b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messageview/MessageViewRecipientFormatterTest.kt index 5e71aeea36c..ddb63fbcae5 100644 --- a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messageview/MessageViewRecipientFormatterTest.kt +++ b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messageview/MessageViewRecipientFormatterTest.kt @@ -10,9 +10,9 @@ import assertk.assertThat import assertk.assertions.containsExactly import assertk.assertions.isEqualTo import assertk.assertions.isInstanceOf -import com.fsck.k9.RobolectricTest import com.fsck.k9.helper.ContactNameProvider import com.fsck.k9.mail.Address +import net.thunderbird.core.android.testing.RobolectricTest import org.junit.Test private const val IDENTITY_ADDRESS = "me@domain.example" diff --git a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messageview/RecipientLayoutCreatorTest.kt b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messageview/RecipientLayoutCreatorTest.kt index e4e5cfaeec7..80f180bf264 100644 --- a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messageview/RecipientLayoutCreatorTest.kt +++ b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messageview/RecipientLayoutCreatorTest.kt @@ -9,7 +9,7 @@ import assertk.assertThat import assertk.assertions.isEqualTo import assertk.assertions.isInstanceOf import assertk.assertions.isNull -import com.fsck.k9.RobolectricTest +import net.thunderbird.core.android.testing.RobolectricTest import org.junit.Test private const val COLOR = 0xFF0000 diff --git a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messageview/ViewIntentFinderTest.kt b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messageview/ViewIntentFinderTest.kt index e2c1903f73b..56b5b2e5a5c 100644 --- a/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messageview/ViewIntentFinderTest.kt +++ b/legacy/ui/legacy/src/test/java/com/fsck/k9/ui/messageview/ViewIntentFinderTest.kt @@ -12,9 +12,9 @@ import assertk.all import assertk.assertThat import assertk.assertions.isEqualTo import assertk.assertions.prop -import com.fsck.k9.RobolectricTest import com.fsck.k9.provider.AttachmentTempFileProvider import kotlin.test.Test +import net.thunderbird.core.android.testing.RobolectricTest import org.junit.Before import org.robolectric.Robolectric import org.robolectric.Shadows.shadowOf