diff --git a/app/src/main/java/com/keylesspalace/tusky/util/OmittedDomainFetcher.kt b/app/src/main/java/com/keylesspalace/tusky/util/OmittedDomainFetcher.kt index 735b3482..60a4e1e3 100644 --- a/app/src/main/java/com/keylesspalace/tusky/util/OmittedDomainFetcher.kt +++ b/app/src/main/java/com/keylesspalace/tusky/util/OmittedDomainFetcher.kt @@ -26,8 +26,6 @@ class OmittedDomainAppModule : AppGlideModule() { lateinit var accountManager : AccountManager override fun registerComponents(context: Context, glide: Glide, registry: Registry) { - Log.d("OmittedDomainAppModule", "registering loader factory") - (context.applicationContext as TuskyApplication).androidInjector.inject(this) registry.append(String::class.java, InputStream::class.java, OmittedDomainLoaderFactory(accountManager)) diff --git a/app/src/test/java/com/keylesspalace/tusky/ComposeActivityTest.kt b/app/src/test/java/com/keylesspalace/tusky/ComposeActivityTest.kt index 12b7ff07..ff48b767 100644 --- a/app/src/test/java/com/keylesspalace/tusky/ComposeActivityTest.kt +++ b/app/src/test/java/com/keylesspalace/tusky/ComposeActivityTest.kt @@ -230,6 +230,7 @@ class ComposeActivityTest { NodeInfoPleromaUploadLimits( 100, 100, 100, 100 )) } setupActivity() + shadowOf(getMainLooper()).idle() assertEquals(true, activity.viewModel.hasNoAttachmentLimits) } @@ -240,6 +241,7 @@ class ComposeActivityTest { NodeInfoPleromaUploadLimits( 100, 100, 100, 100 )) } setupActivity() + shadowOf(getMainLooper()).idle() assertArrayEquals(arrayOf("text/markdown", "text/bbcode"), activity.supportedFormattingSyntax.toTypedArray()) } @@ -250,6 +252,7 @@ class ComposeActivityTest { NodeInfoPleromaUploadLimits( Long.MAX_VALUE, Long.MAX_VALUE, Long.MAX_VALUE, Long.MAX_VALUE )) } setupActivity() + shadowOf(getMainLooper()).idle() assertEquals(Long.MAX_VALUE, activity.viewModel.instanceMetadata.value!!.imageLimit) assertEquals(Long.MAX_VALUE, activity.viewModel.instanceMetadata.value!!.videoLimit) } @@ -258,6 +261,7 @@ class ComposeActivityTest { fun whenPixelfedInNodeInfo_haveCustomUploadLimits() { nodeinfoResponseCallback = { getPixelfedNodeinfo( 1024 * 1024 ) } setupActivity() + shadowOf(getMainLooper()).idle() assertEquals(1024 * 1024 * 1024, activity.viewModel.instanceMetadata.value!!.imageLimit) assertEquals(1024 * 1024 * 1024, activity.viewModel.instanceMetadata.value!!.videoLimit) assertArrayEquals(emptyArray(), activity.supportedFormattingSyntax.toTypedArray()) // pixelfed has no formatting @@ -267,6 +271,7 @@ class ComposeActivityTest { fun whenMastodonInNodeinfo_butItsAGlitch() { nodeinfoResponseCallback = { getMastodonNodeinfo( "3.1.0+glitch" ) } setupActivity() + shadowOf(getMainLooper()).idle() assertArrayEquals(arrayOf("text/markdown", "text/html"), activity.supportedFormattingSyntax.toTypedArray()) } @@ -274,6 +279,7 @@ class ComposeActivityTest { fun whenMastodonInNodeinfo_butItsBoringVanilla() { nodeinfoResponseCallback = { getMastodonNodeinfo( "3.1.0" ) } setupActivity() + shadowOf(getMainLooper()).idle() assertArrayEquals(emptyArray(), activity.supportedFormattingSyntax.toTypedArray()) } diff --git a/app/src/test/java/com/keylesspalace/tusky/TuskyApplication.kt b/app/src/test/java/com/keylesspalace/tusky/TuskyApplication.kt index aaa2b349..955b464f 100644 --- a/app/src/test/java/com/keylesspalace/tusky/TuskyApplication.kt +++ b/app/src/test/java/com/keylesspalace/tusky/TuskyApplication.kt @@ -20,10 +20,14 @@ import android.content.Context import android.content.res.Configuration import android.util.Log import androidx.emoji.text.EmojiCompat +import com.keylesspalace.tusky.db.AccountManager import com.keylesspalace.tusky.util.LocaleManager +import com.keylesspalace.tusky.util.OmittedDomainAppModule import dagger.android.DispatchingAndroidInjector import dagger.android.HasAndroidInjector import de.c1710.filemojicompat.FileEmojiCompatConfig +import org.mockito.Mockito.* +import org.mockito.stubbing.Answer import javax.inject.Inject // override TuskyApplication for Robolectric tests, only initialize the necessary stuff @@ -44,8 +48,18 @@ class TuskyApplication : Application() { localeManager.setLocale(this) } + fun getAndroidInjector() : DispatchingAndroidInjector { + val mock = mock(DispatchingAndroidInjector::class.java) as DispatchingAndroidInjector + + `when`(mock.inject(any())).then { + it.getArgument(0).accountManager = mock(AccountManager::class.java) + return@then Unit + } + return mock as DispatchingAndroidInjector + } + companion object { @JvmStatic lateinit var localeManager: LocaleManager } -} \ No newline at end of file +}