diff options
author | Ricki Hirner <hirner@bitfire.at> | 2022-05-22 19:48:15 +0300 |
---|---|---|
committer | Ricki Hirner <hirner@bitfire.at> | 2022-05-22 19:56:47 +0300 |
commit | 1f4a25e4a416d3780fb9641cbd6c3c76008ea140 (patch) | |
tree | 9c134f90e474dd0f108f1ccc5c99bb0a89cbde6c | |
parent | 84f55bc39aa964f7e7cbd4e11fafdd9d6893616a (diff) |
Use Koin for all tests; CI: run tests for all flavors (#91)
Closes bitfireAT/davx5#89
15 files changed, 56 insertions, 59 deletions
diff --git a/app/src/androidTest/java/at/bitfire/davdroid/OkhttpClientTest.kt b/app/src/androidTestStandard/java/at/bitfire/davdroid/OkhttpClientTest.kt index 445334ae..445334ae 100644 --- a/app/src/androidTest/java/at/bitfire/davdroid/OkhttpClientTest.kt +++ b/app/src/androidTestStandard/java/at/bitfire/davdroid/OkhttpClientTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/syncadapter/AccountUtilsTest.kt b/app/src/androidTestStandard/java/at/bitfire/davdroid/syncadapter/AccountUtilsTest.kt index 4e48435a..4e48435a 100644 --- a/app/src/androidTest/java/at/bitfire/davdroid/syncadapter/AccountUtilsTest.kt +++ b/app/src/androidTestStandard/java/at/bitfire/davdroid/syncadapter/AccountUtilsTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/syncadapter/LocalTestCollection.kt b/app/src/androidTestStandard/java/at/bitfire/davdroid/syncadapter/LocalTestCollection.kt index 26b5ae9a..26b5ae9a 100644 --- a/app/src/androidTest/java/at/bitfire/davdroid/syncadapter/LocalTestCollection.kt +++ b/app/src/androidTestStandard/java/at/bitfire/davdroid/syncadapter/LocalTestCollection.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/syncadapter/LocalTestResource.kt b/app/src/androidTestStandard/java/at/bitfire/davdroid/syncadapter/LocalTestResource.kt index 0f1f9cf2..0f1f9cf2 100644 --- a/app/src/androidTest/java/at/bitfire/davdroid/syncadapter/LocalTestResource.kt +++ b/app/src/androidTestStandard/java/at/bitfire/davdroid/syncadapter/LocalTestResource.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/syncadapter/SyncAdapterServiceTest.kt b/app/src/androidTestStandard/java/at/bitfire/davdroid/syncadapter/SyncAdapterServiceTest.kt index de1ebc17..de1ebc17 100644 --- a/app/src/androidTest/java/at/bitfire/davdroid/syncadapter/SyncAdapterServiceTest.kt +++ b/app/src/androidTestStandard/java/at/bitfire/davdroid/syncadapter/SyncAdapterServiceTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/SyncAdapterTest.kt b/app/src/androidTestStandard/java/at/bitfire/davdroid/syncadapter/SyncAdapterTest.kt index 9bf48507..dd5198a2 100644 --- a/app/src/androidTest/java/at/bitfire/davdroid/SyncAdapterTest.kt +++ b/app/src/androidTestStandard/java/at/bitfire/davdroid/syncadapter/SyncAdapterTest.kt @@ -2,7 +2,11 @@ * Copyright © All Contributors. See LICENSE and AUTHORS in the root directory for details. **************************************************************************************************/ -package at.bitfire.davdroid +/*************************************************************************************************** + * Copyright © All Contributors. See LICENSE and AUTHORS in the root directory for details. + **************************************************************************************************/ + +package at.bitfire.davdroid.syncadapter import android.accounts.Account import android.content.ContentProviderClient @@ -10,7 +14,7 @@ import android.content.Context import android.content.SyncResult import android.os.Bundle import androidx.test.platform.app.InstrumentationRegistry -import at.bitfire.davdroid.syncadapter.SyncAdapterService +import at.bitfire.davdroid.R import org.junit.Assert.* import org.junit.Before import org.junit.Test @@ -18,8 +22,8 @@ import java.util.concurrent.atomic.AtomicInteger class SyncAdapterTest { - val context = InstrumentationRegistry.getInstrumentation().context - val targetContext = InstrumentationRegistry.getInstrumentation().targetContext + val context by lazy { InstrumentationRegistry.getInstrumentation().context } + val targetContext by lazy { InstrumentationRegistry.getInstrumentation().targetContext } /** use our WebDAV provider as a mock provider because it's our own and we don't need any permissions for it */ val mockAuthority = targetContext.getString(R.string.webdav_authority) diff --git a/app/src/androidTest/java/at/bitfire/davdroid/syncadapter/SyncManagerTest.kt b/app/src/androidTestStandard/java/at/bitfire/davdroid/syncadapter/SyncManagerTest.kt index 10478a34..10478a34 100644 --- a/app/src/androidTest/java/at/bitfire/davdroid/syncadapter/SyncManagerTest.kt +++ b/app/src/androidTestStandard/java/at/bitfire/davdroid/syncadapter/SyncManagerTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/syncadapter/TestSyncManager.kt b/app/src/androidTestStandard/java/at/bitfire/davdroid/syncadapter/TestSyncManager.kt index 5203b1c7..5203b1c7 100644 --- a/app/src/androidTest/java/at/bitfire/davdroid/syncadapter/TestSyncManager.kt +++ b/app/src/androidTestStandard/java/at/bitfire/davdroid/syncadapter/TestSyncManager.kt diff --git a/app/src/main/java/at/bitfire/davdroid/App.kt b/app/src/main/java/at/bitfire/davdroid/App.kt index b72ffd4b..b60d2349 100644 --- a/app/src/main/java/at/bitfire/davdroid/App.kt +++ b/app/src/main/java/at/bitfire/davdroid/App.kt @@ -10,10 +10,8 @@ import android.net.Uri import android.os.StrictMode import androidx.appcompat.content.res.AppCompatResources import androidx.core.graphics.drawable.toBitmap -import at.bitfire.davdroid.db.AppDatabase import at.bitfire.davdroid.log.Logger import at.bitfire.davdroid.settings.AccountSettings -import at.bitfire.davdroid.settings.SettingsManager import at.bitfire.davdroid.syncadapter.AccountsUpdatedListener import at.bitfire.davdroid.ui.DebugInfoActivity import at.bitfire.davdroid.ui.NotificationUtils @@ -58,10 +56,7 @@ class App: Application(), KoinComponent, Thread.UncaughtExceptionHandler { androidContext(base) modules( - AccountsUpdatedListener.defaultModule, - AppDatabase.defaultModule, - SettingsManager.defaultModule, - StorageLowReceiver.defaultModule + AppModules.appModule ) } } diff --git a/app/src/main/java/at/bitfire/davdroid/AppModules.kt b/app/src/main/java/at/bitfire/davdroid/AppModules.kt new file mode 100644 index 00000000..38ad294a --- /dev/null +++ b/app/src/main/java/at/bitfire/davdroid/AppModules.kt @@ -0,0 +1,43 @@ +/*************************************************************************************************** + * Copyright © All Contributors. See LICENSE and AUTHORS in the root directory for details. + **************************************************************************************************/ + +package at.bitfire.davdroid + +import at.bitfire.davdroid.db.AppDatabase +import at.bitfire.davdroid.settings.SettingsManager +import at.bitfire.davdroid.syncadapter.AccountsUpdatedListener +import org.koin.android.ext.koin.androidContext +import org.koin.dsl.module + +object AppModules { + + val accountsUpdatedListenerModule = module { + single { + AccountsUpdatedListener(androidContext()) + } + } + + val settingsModule = module { + single { + AppDatabase.createInstance(androidContext()) + } + single { + SettingsManager(androidContext()) + } + } + + val storageLowReceiverModule = module { + single { + StorageLowReceiver(androidContext()) + } + } + + + val appModule = module { + includes(accountsUpdatedListenerModule) + includes(settingsModule) + includes(storageLowReceiverModule) + } + +}
\ No newline at end of file diff --git a/app/src/main/java/at/bitfire/davdroid/StorageLowReceiver.kt b/app/src/main/java/at/bitfire/davdroid/StorageLowReceiver.kt index 25c79495..c7c18a8d 100644 --- a/app/src/main/java/at/bitfire/davdroid/StorageLowReceiver.kt +++ b/app/src/main/java/at/bitfire/davdroid/StorageLowReceiver.kt @@ -15,21 +15,11 @@ import androidx.core.app.NotificationManagerCompat import androidx.lifecycle.MutableLiveData import at.bitfire.davdroid.log.Logger import at.bitfire.davdroid.ui.NotificationUtils -import org.koin.android.ext.koin.androidContext -import org.koin.dsl.module -class StorageLowReceiver private constructor( - val context: Context +class StorageLowReceiver( + val context: Context ): BroadcastReceiver(), AutoCloseable { - companion object { - val defaultModule = module { - single { - StorageLowReceiver(androidContext()) - } - } - } - val storageLow = MutableLiveData<Boolean>(false) fun listen() { diff --git a/app/src/main/java/at/bitfire/davdroid/db/AppDatabase.kt b/app/src/main/java/at/bitfire/davdroid/db/AppDatabase.kt index 201568b2..9515d8b6 100644 --- a/app/src/main/java/at/bitfire/davdroid/db/AppDatabase.kt +++ b/app/src/main/java/at/bitfire/davdroid/db/AppDatabase.kt @@ -49,12 +49,6 @@ abstract class AppDatabase: RoomDatabase() { companion object: KoinComponent { - val defaultModule = module { - single { - AppDatabase.createInstance(androidContext()) - } - } - fun createInstance(context: Context) = Room.databaseBuilder(context.applicationContext, AppDatabase::class.java, "services.db") .addMigrations(*migrations) diff --git a/app/src/main/java/at/bitfire/davdroid/settings/SettingsManager.kt b/app/src/main/java/at/bitfire/davdroid/settings/SettingsManager.kt index 80b7e535..6f5e9b11 100644 --- a/app/src/main/java/at/bitfire/davdroid/settings/SettingsManager.kt +++ b/app/src/main/java/at/bitfire/davdroid/settings/SettingsManager.kt @@ -8,8 +8,6 @@ import android.content.Context import android.util.NoSuchPropertyException import androidx.annotation.AnyThread import at.bitfire.davdroid.log.Logger -import org.koin.android.ext.koin.androidContext -import org.koin.dsl.module import java.io.Writer import java.lang.ref.WeakReference import java.util.* @@ -19,18 +17,10 @@ import java.util.logging.Level * Settings manager which coordinates [SettingsProvider]s to read/write * application settings. */ -class SettingsManager private constructor( - context: Context +class SettingsManager( + context: Context ) { - companion object { - val defaultModule = module { - single { - SettingsManager(androidContext()) - } - } - } - private val providers = LinkedList<SettingsProvider>() private var writeProvider: SettingsProvider? = null diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/AccountsUpdatedListener.kt b/app/src/main/java/at/bitfire/davdroid/syncadapter/AccountsUpdatedListener.kt index 654488cb..d8dc6165 100644 --- a/app/src/main/java/at/bitfire/davdroid/syncadapter/AccountsUpdatedListener.kt +++ b/app/src/main/java/at/bitfire/davdroid/syncadapter/AccountsUpdatedListener.kt @@ -16,23 +16,12 @@ import at.bitfire.davdroid.resource.LocalAddressBook import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch -import org.koin.android.ext.koin.androidContext import org.koin.core.component.KoinComponent import org.koin.core.component.get -import org.koin.dsl.module import java.util.logging.Level class AccountsUpdatedListener(val context: Context): KoinComponent, OnAccountsUpdateListener { - companion object { - val defaultModule = module { - single { - AccountsUpdatedListener(androidContext()) - } - } - } - - fun listen() { val accountManager = AccountManager.get(context) accountManager.addOnAccountsUpdatedListener(this, null, true) diff --git a/app/src/main/res/xml/network_security_config.xml b/app/src/main/res/xml/network_security_config.xml index 0e574f0e..cf463315 100644 --- a/app/src/main/res/xml/network_security_config.xml +++ b/app/src/main/res/xml/network_security_config.xml @@ -1,12 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- - ~ Copyright © Ricki Hirner (bitfire web engineering). - ~ All rights reserved. This program and the accompanying materials - ~ are made available under the terms of the GNU Public License v3.0 - ~ which accompanies this distribution, and is available at - ~ http://www.gnu.org/licenses/gpl.html - --> - <network-security-config xmlns:tools="http://schemas.android.com/tools"> <base-config cleartextTrafficPermitted="true" tools:ignore="InsecureBaseConfiguration"> <trust-anchors> |