Clarify seen and checked app filtering
This commit is contained in:
@@ -6,13 +6,61 @@ import org.junit.Test
|
||||
class AppListOrderingTest {
|
||||
private fun app(label: String, seen: Boolean = false, selected: Boolean = false) = ListedApp(label, "pkg.$label", seen, selected)
|
||||
|
||||
@Test fun `seen apps are repeated before the full list when requested`() {
|
||||
val items = AppListOrdering.items(listOf(app("Zulu"), app("Beta", seen = true), app("Alpha", seen = true)), false, true)
|
||||
assertEquals(listOf("Alpha", "Beta", "|", "Alpha", "Beta", "Zulu"), items.map { if (it is AppListItem.App) it.value.label else "|" })
|
||||
@Test fun `seen apps are titled and repeated before the full list when requested`() {
|
||||
val items = AppListOrdering.items(
|
||||
listOf(app("Zulu"), app("Beta", seen = true), app("Alpha", seen = true)),
|
||||
onlySeen = false,
|
||||
seenAppsFirst = true,
|
||||
mode = AppRuleMode.BLACKLIST,
|
||||
)
|
||||
assertEquals(listOf("[Seen apps]", "Alpha", "Beta", "|", "[All apps]", "Alpha", "Beta", "Zulu"), items.labels())
|
||||
}
|
||||
|
||||
@Test fun `selected unseen app remains after seen apps in only-seen mode`() {
|
||||
val items = AppListOrdering.items(listOf(app("Seen", seen = true), app("Chosen", selected = true), app("Hidden")), true, true)
|
||||
assertEquals(listOf("Seen", "|", "Chosen"), items.map { if (it is AppListItem.App) it.value.label else "|" })
|
||||
@Test fun `selected unseen apps are titled after seen apps in only-seen mode`() {
|
||||
val items = AppListOrdering.items(
|
||||
listOf(app("Seen", seen = true), app("Chosen", selected = true), app("Hidden")),
|
||||
onlySeen = true,
|
||||
seenAppsFirst = true,
|
||||
mode = AppRuleMode.WHITELIST,
|
||||
)
|
||||
assertEquals(listOf("[Seen apps]", "Seen", "|", "[Whitelisted apps]", "Chosen"), items.labels())
|
||||
}
|
||||
|
||||
@Test fun `only seen and checked without grouping is one alphabetical list`() {
|
||||
val items = AppListOrdering.items(
|
||||
listOf(app("Zulu", seen = true), app("Beta", selected = true), app("Hidden")),
|
||||
onlySeen = true,
|
||||
seenAppsFirst = false,
|
||||
mode = AppRuleMode.BLACKLIST,
|
||||
)
|
||||
assertEquals(listOf("Beta", "Zulu"), items.labels())
|
||||
}
|
||||
|
||||
@Test fun `only seen apps omit section titles without unseen checked apps`() {
|
||||
val items = AppListOrdering.items(
|
||||
listOf(app("Zulu", seen = true), app("Alpha", seen = true), app("Hidden")),
|
||||
onlySeen = true,
|
||||
seenAppsFirst = true,
|
||||
mode = AppRuleMode.BLACKLIST,
|
||||
)
|
||||
assertEquals(listOf("Alpha", "Zulu"), items.labels())
|
||||
}
|
||||
|
||||
@Test fun `all apps without grouping is one alphabetical list`() {
|
||||
val items = AppListOrdering.items(
|
||||
listOf(app("Zulu", seen = true), app("Alpha"), app("Beta", selected = true)),
|
||||
onlySeen = false,
|
||||
seenAppsFirst = false,
|
||||
mode = AppRuleMode.BLACKLIST,
|
||||
)
|
||||
assertEquals(listOf("Alpha", "Beta", "Zulu"), items.labels())
|
||||
}
|
||||
|
||||
private fun List<AppListItem>.labels() = map {
|
||||
when (it) {
|
||||
is AppListItem.App -> it.value.label
|
||||
is AppListItem.SectionTitle -> "[${it.value}]"
|
||||
AppListItem.Separator -> "|"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user