Fix android tests
This commit is contained in:
@@ -29,7 +29,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"state": "FINISHED",
|
"state": "FINISHED",
|
||||||
"largeCoverUrl": null,
|
"largeCoverUrl": "https://staticrm.rmr.rocks/uploads/pics/01/12/559_o.jpg",
|
||||||
"description": null,
|
"description": null,
|
||||||
"source": "READMANGA_RU"
|
"source": "READMANGA_RU"
|
||||||
}
|
}
|
||||||
@@ -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) }
|
||||||
|
}
|
||||||
@@ -17,18 +17,15 @@ object SampleData {
|
|||||||
.add(KotlinJsonAdapterFactory())
|
.add(KotlinJsonAdapterFactory())
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
val manga: Manga
|
val manga: Manga = loadAsset("manga/header.json", Manga::class)
|
||||||
get() = loadAsset("manga/header.json", Manga::class)
|
|
||||||
|
|
||||||
val mangaDetails: Manga
|
val mangaDetails: Manga = loadAsset("manga/full.json", Manga::class)
|
||||||
get() = loadAsset("manga/full.json", Manga::class)
|
|
||||||
|
|
||||||
val tag = mangaDetails.tags.elementAt(2)
|
val tag = mangaDetails.tags.elementAt(2)
|
||||||
|
|
||||||
val chapter = checkNotNull(mangaDetails.chapters)[2]
|
val chapter = checkNotNull(mangaDetails.chapters)[2]
|
||||||
|
|
||||||
val favouriteCategory: FavouriteCategory
|
val favouriteCategory: FavouriteCategory = loadAsset("categories/simple.json", FavouriteCategory::class)
|
||||||
get() = loadAsset("categories/simple.json", FavouriteCategory::class)
|
|
||||||
|
|
||||||
fun <T : Any> loadAsset(name: String, cls: KClass<T>): T {
|
fun <T : Any> loadAsset(name: String, cls: KClass<T>): T {
|
||||||
val assets = InstrumentationRegistry.getInstrumentation().context.assets
|
val assets = InstrumentationRegistry.getInstrumentation().context.assets
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import android.content.pm.ShortcutManager
|
|||||||
import androidx.core.content.getSystemService
|
import androidx.core.content.getSystemService
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
import androidx.test.platform.app.InstrumentationRegistry
|
import androidx.test.platform.app.InstrumentationRegistry
|
||||||
import kotlinx.coroutines.delay
|
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
@@ -13,6 +12,7 @@ import org.junit.runner.RunWith
|
|||||||
import org.koin.test.KoinTest
|
import org.koin.test.KoinTest
|
||||||
import org.koin.test.inject
|
import org.koin.test.inject
|
||||||
import org.koitharu.kotatsu.SampleData
|
import org.koitharu.kotatsu.SampleData
|
||||||
|
import org.koitharu.kotatsu.awaitForIdle
|
||||||
import org.koitharu.kotatsu.core.db.MangaDatabase
|
import org.koitharu.kotatsu.core.db.MangaDatabase
|
||||||
import org.koitharu.kotatsu.history.domain.HistoryRepository
|
import org.koitharu.kotatsu.history.domain.HistoryRepository
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
@@ -32,7 +32,7 @@ class ShortcutsUpdaterTest : KoinTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testUpdateShortcuts() = runTest {
|
fun testUpdateShortcuts() = runTest {
|
||||||
shortcutsUpdater.await()
|
awaitUpdate()
|
||||||
assertTrue(getShortcuts().isEmpty())
|
assertTrue(getShortcuts().isEmpty())
|
||||||
historyRepository.addOrUpdate(
|
historyRepository.addOrUpdate(
|
||||||
manga = SampleData.manga,
|
manga = SampleData.manga,
|
||||||
@@ -41,8 +41,7 @@ class ShortcutsUpdaterTest : KoinTest {
|
|||||||
scroll = 2,
|
scroll = 2,
|
||||||
percent = 0.3f
|
percent = 0.3f
|
||||||
)
|
)
|
||||||
delay(1000)
|
awaitUpdate()
|
||||||
shortcutsUpdater.await()
|
|
||||||
|
|
||||||
val shortcuts = getShortcuts()
|
val shortcuts = getShortcuts()
|
||||||
assertEquals(1, shortcuts.size)
|
assertEquals(1, shortcuts.size)
|
||||||
@@ -53,4 +52,14 @@ class ShortcutsUpdaterTest : KoinTest {
|
|||||||
val manager = checkNotNull(context.getSystemService<ShortcutManager>())
|
val manager = checkNotNull(context.getSystemService<ShortcutManager>())
|
||||||
return manager.dynamicShortcuts.filterNot { it.id == "com.squareup.leakcanary.dynamic_shortcut" }
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -44,7 +44,7 @@ class AppBackupAgentTest : KoinTest {
|
|||||||
scroll = 40,
|
scroll = 40,
|
||||||
percent = 0.2f,
|
percent = 0.2f,
|
||||||
)
|
)
|
||||||
val history = checkNotNull(historyRepository.getOne(SampleData.mangaDetails))
|
val history = checkNotNull(historyRepository.getOne(SampleData.manga))
|
||||||
|
|
||||||
val agent = AppBackupAgent()
|
val agent = AppBackupAgent()
|
||||||
val backup = agent.createBackupFile(get(), backupRepository)
|
val backup = agent.createBackupFile(get(), backupRepository)
|
||||||
|
|||||||
@@ -52,8 +52,8 @@ class ShortcutsUpdater(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
suspend fun await() {
|
suspend fun await(): Boolean {
|
||||||
shortcutsUpdateJob?.join()
|
return shortcutsUpdateJob?.join() != null
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun updateShortcutsImpl() {
|
private suspend fun updateShortcutsImpl() {
|
||||||
|
|||||||
Reference in New Issue
Block a user