1 package net.pterodactylus.rhynodge.filters.comics
3 import net.pterodactylus.rhynodge.Filter
4 import net.pterodactylus.rhynodge.filters.ResourceLoader
5 import net.pterodactylus.rhynodge.states.ComicState
6 import net.pterodactylus.rhynodge.states.ComicState.Comic
7 import net.pterodactylus.rhynodge.states.ComicState.Strip
8 import net.pterodactylus.rhynodge.states.HtmlState
9 import org.hamcrest.MatcherAssert.assertThat
10 import org.hamcrest.Matchers.contains
11 import org.hamcrest.Matchers.instanceOf
15 * Unit test for [SinfestComicFilter].
17 class SinfestComicFilterTest {
19 private val sinfestFilter: Filter = SinfestComicFilter()
20 private val htmlState = ResourceLoader
21 .loadDocument(SinfestComicFilter::class.java, "sinfest.html", "https://sinfest.xyz/")
22 .let { HtmlState("https://sinfest.xyz/", it) }
25 fun canParseComicsFromHtml() {
26 val state = sinfestFilter.filter(htmlState)
27 assertThat(state, instanceOf(ComicState::class.java))
31 fun imageUrlsAreParsedCorrectly() {
32 val comicState = sinfestFilter.filter(htmlState) as ComicState
33 assertThat(comicState.comics(), contains(
34 Comic("October 24, 2021: Unperson 33").add(Strip("https://sinfest.xyz/btphp/comics/2021-10-24.jpg", ""))