Fix android tests

This commit is contained in:
Koitharu
2022-07-18 12:56:56 +03:00
parent 206fb4e584
commit 35f450e444
6 changed files with 29 additions and 14 deletions

View File

@@ -29,7 +29,7 @@
}
],
"state": "FINISHED",
"largeCoverUrl": null,
"largeCoverUrl": "https://staticrm.rmr.rocks/uploads/pics/01/12/559_o.jpg",
"description": null,
"source": "READMANGA_RU"
}

View File

@@ -0,0 +1,9 @@
package org.koitharu.kotatsu
import android.app.Instrumentation
import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine
suspend fun Instrumentation.awaitForIdle() = suspendCoroutine<Unit> { cont ->
waitForIdle { cont.resume(Unit) }
}

View File

@@ -17,18 +17,15 @@ object SampleData {
.add(KotlinJsonAdapterFactory())
.build()
val manga: Manga
get() = loadAsset("manga/header.json", Manga::class)
val manga: Manga = loadAsset("manga/header.json", Manga::class)
val mangaDetails: Manga
get() = loadAsset("manga/full.json", Manga::class)
val mangaDetails: Manga = loadAsset("manga/full.json", Manga::class)
val tag = mangaDetails.tags.elementAt(2)
val chapter = checkNotNull(mangaDetails.chapters)[2]
val favouriteCategory: FavouriteCategory
get() = loadAsset("categories/simple.json", FavouriteCategory::class)
val favouriteCategory: FavouriteCategory = loadAsset("categories/simple.json", FavouriteCategory::class)
fun <T : Any> loadAsset(name: String, cls: KClass<T>): T {
val assets = InstrumentationRegistry.getInstrumentation().context.assets

View File

@@ -5,7 +5,6 @@ import android.content.pm.ShortcutManager
import androidx.core.content.getSystemService
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import kotlinx.coroutines.delay
import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Test
@@ -13,6 +12,7 @@ import org.junit.runner.RunWith
import org.koin.test.KoinTest
import org.koin.test.inject
import org.koitharu.kotatsu.SampleData
import org.koitharu.kotatsu.awaitForIdle
import org.koitharu.kotatsu.core.db.MangaDatabase
import org.koitharu.kotatsu.history.domain.HistoryRepository
import kotlin.test.assertEquals
@@ -32,7 +32,7 @@ class ShortcutsUpdaterTest : KoinTest {
@Test
fun testUpdateShortcuts() = runTest {
shortcutsUpdater.await()
awaitUpdate()
assertTrue(getShortcuts().isEmpty())
historyRepository.addOrUpdate(
manga = SampleData.manga,
@@ -41,8 +41,7 @@ class ShortcutsUpdaterTest : KoinTest {
scroll = 2,
percent = 0.3f
)
delay(1000)
shortcutsUpdater.await()
awaitUpdate()
val shortcuts = getShortcuts()
assertEquals(1, shortcuts.size)
@@ -53,4 +52,14 @@ class ShortcutsUpdaterTest : KoinTest {
val manager = checkNotNull(context.getSystemService<ShortcutManager>())
return manager.dynamicShortcuts.filterNot { it.id == "com.squareup.leakcanary.dynamic_shortcut" }
}
private suspend fun awaitUpdate() {
val instrumentation = InstrumentationRegistry.getInstrumentation()
while (true) {
instrumentation.awaitForIdle()
if (shortcutsUpdater.await()) {
return
}
}
}
}

View File

@@ -44,7 +44,7 @@ class AppBackupAgentTest : KoinTest {
scroll = 40,
percent = 0.2f,
)
val history = checkNotNull(historyRepository.getOne(SampleData.mangaDetails))
val history = checkNotNull(historyRepository.getOne(SampleData.manga))
val agent = AppBackupAgent()
val backup = agent.createBackupFile(get(), backupRepository)