|
|
|
@ -52,27 +52,14 @@ internal class MangaParserTest {
|
|
|
|
val parser = context.newParserInstance(source)
|
|
|
|
val parser = context.newParserInstance(source)
|
|
|
|
val subject = parser.getList(
|
|
|
|
val subject = parser.getList(
|
|
|
|
offset = 0,
|
|
|
|
offset = 0,
|
|
|
|
filter = MangaListFilter.Advanced(
|
|
|
|
order = SortOrder.POPULARITY,
|
|
|
|
sortOrder = SortOrder.POPULARITY,
|
|
|
|
filter = MangaListFilterV2.EMPTY,
|
|
|
|
tags = emptySet(),
|
|
|
|
|
|
|
|
locale = null,
|
|
|
|
|
|
|
|
localeMangas = null,
|
|
|
|
|
|
|
|
states = emptySet(),
|
|
|
|
|
|
|
|
tagsExclude = emptySet(),
|
|
|
|
|
|
|
|
contentRating = emptySet(),
|
|
|
|
|
|
|
|
query = null,
|
|
|
|
|
|
|
|
year = null,
|
|
|
|
|
|
|
|
yearFrom = null,
|
|
|
|
|
|
|
|
yearTo = null,
|
|
|
|
|
|
|
|
types = emptySet(),
|
|
|
|
|
|
|
|
demographics = emptySet(),
|
|
|
|
|
|
|
|
),
|
|
|
|
|
|
|
|
).minByOrNull {
|
|
|
|
).minByOrNull {
|
|
|
|
it.title.length
|
|
|
|
it.title.length
|
|
|
|
} ?: error("No manga found")
|
|
|
|
} ?: error("No manga found")
|
|
|
|
val query = subject.title
|
|
|
|
val query = subject.title
|
|
|
|
check(query.isNotBlank()) { "Manga title '$query' is blank" }
|
|
|
|
check(query.isNotBlank()) { "Manga title '$query' is blank" }
|
|
|
|
val list = parser.getList(0, MangaListFilter.Search(query))
|
|
|
|
val list = parser.getList(0, SortOrder.RELEVANCE, MangaListFilterV2(query = query))
|
|
|
|
assert(list.isNotEmpty()) { "Empty search results by \"$query\"" }
|
|
|
|
assert(list.isNotEmpty()) { "Empty search results by \"$query\"" }
|
|
|
|
assert(list.singleOrNull { it.url == subject.url && it.id == subject.id } != null) {
|
|
|
|
assert(list.singleOrNull { it.url == subject.url && it.id == subject.id } != null) {
|
|
|
|
"Single subject '${subject.title} (${subject.publicUrl})' not found in search results"
|
|
|
|
"Single subject '${subject.title} (${subject.publicUrl})' not found in search results"
|
|
|
|
@ -102,9 +89,8 @@ internal class MangaParserTest {
|
|
|
|
val tag = tags.last()
|
|
|
|
val tag = tags.last()
|
|
|
|
val list = parser.getList(
|
|
|
|
val list = parser.getList(
|
|
|
|
offset = 0,
|
|
|
|
offset = 0,
|
|
|
|
MangaListFilter.Advanced.Builder(parser.defaultSortOrder)
|
|
|
|
order = parser.defaultSortOrder,
|
|
|
|
.tags(setOf(tag))
|
|
|
|
filter = MangaListFilterV2(tags = setOf(tag)),
|
|
|
|
.build(),
|
|
|
|
|
|
|
|
)
|
|
|
|
)
|
|
|
|
checkMangaList(list, "${tag.title} (${tag.key})")
|
|
|
|
checkMangaList(list, "${tag.title} (${tag.key})")
|
|
|
|
assert(list.all { it.source == source })
|
|
|
|
assert(list.all { it.source == source })
|
|
|
|
@ -117,10 +103,8 @@ internal class MangaParserTest {
|
|
|
|
if (!parser.isMultipleTagsSupported) return@runTest
|
|
|
|
if (!parser.isMultipleTagsSupported) return@runTest
|
|
|
|
val tags = parser.getAvailableTags().shuffled().take(2).toSet()
|
|
|
|
val tags = parser.getAvailableTags().shuffled().take(2).toSet()
|
|
|
|
|
|
|
|
|
|
|
|
val filter = MangaListFilter.Advanced.Builder(parser.availableSortOrders.first())
|
|
|
|
val filter = MangaListFilterV2(tags = tags)
|
|
|
|
.tags(tags)
|
|
|
|
val list = parser.getList(0, parser.defaultSortOrder, filter)
|
|
|
|
.build()
|
|
|
|
|
|
|
|
val list = parser.getList(0, filter)
|
|
|
|
|
|
|
|
checkMangaList(list, "${tags.joinToString { it.title }} (${tags.joinToString { it.key }})")
|
|
|
|
checkMangaList(list, "${tags.joinToString { it.title }} (${tags.joinToString { it.key }})")
|
|
|
|
assert(list.all { it.source == source })
|
|
|
|
assert(list.all { it.source == source })
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -133,22 +117,11 @@ internal class MangaParserTest {
|
|
|
|
if (locales.isEmpty()) {
|
|
|
|
if (locales.isEmpty()) {
|
|
|
|
return@runTest
|
|
|
|
return@runTest
|
|
|
|
}
|
|
|
|
}
|
|
|
|
val filter = MangaListFilter.Advanced(
|
|
|
|
val filter = MangaListFilterV2(
|
|
|
|
sortOrder = parser.availableSortOrders.first(),
|
|
|
|
|
|
|
|
tags = setOf(),
|
|
|
|
|
|
|
|
tagsExclude = setOf(),
|
|
|
|
|
|
|
|
locale = locales.random(),
|
|
|
|
locale = locales.random(),
|
|
|
|
localeMangas = locales.random(),
|
|
|
|
sourceLocale = locales.random(),
|
|
|
|
states = setOf(),
|
|
|
|
|
|
|
|
contentRating = setOf(),
|
|
|
|
|
|
|
|
query = null,
|
|
|
|
|
|
|
|
year = null,
|
|
|
|
|
|
|
|
yearFrom = null,
|
|
|
|
|
|
|
|
yearTo = null,
|
|
|
|
|
|
|
|
types = emptySet(),
|
|
|
|
|
|
|
|
demographics = emptySet(),
|
|
|
|
|
|
|
|
)
|
|
|
|
)
|
|
|
|
val list = parser.getList(offset = 0, filter)
|
|
|
|
val list = parser.getList(offset = 0, order = parser.defaultSortOrder, filter)
|
|
|
|
checkMangaList(list, filter.locale.toString())
|
|
|
|
checkMangaList(list, filter.locale.toString())
|
|
|
|
assert(list.all { it.source == source })
|
|
|
|
assert(list.all { it.source == source })
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|