1 package net.pterodactylus.sone.template
3 import net.pterodactylus.sone.core.ElementLoader
4 import net.pterodactylus.sone.core.LinkedElement
5 import net.pterodactylus.sone.test.mock
6 import net.pterodactylus.sone.text.FreenetLinkPart
7 import net.pterodactylus.sone.text.LinkPart
8 import net.pterodactylus.sone.text.PlainTextPart
9 import org.hamcrest.MatcherAssert.assertThat
10 import org.hamcrest.Matchers.contains
12 import org.mockito.Mockito.`when`
15 * Unit test for [LinkedElementsFilter].
17 class LinkedElementsFilterTest {
19 private val imageLoader = mock<ElementLoader>()
20 private val filter = LinkedElementsFilter(imageLoader)
23 fun `filter finds all loaded freenet images`() {
25 PlainTextPart("text"),
26 LinkPart("http://link", "link"),
27 FreenetLinkPart("KSK@link", "link", false),
28 FreenetLinkPart("KSK@loading.png", "link", false),
29 FreenetLinkPart("KSK@link.png", "link", false)
31 `when`(imageLoader.loadElement("KSK@link")).thenReturn(LinkedElement("KSK@link", failed = true))
32 `when`(imageLoader.loadElement("KSK@loading.png")).thenReturn(LinkedElement("KSK@loading.png", loading = true))
33 `when`(imageLoader.loadElement("KSK@link.png")).thenReturn(LinkedElement("KSK@link.png"))
34 val loadedImages = filter.format(null, parts, null)
35 assertThat(loadedImages, contains<LinkedElement>(
36 LinkedElement("KSK@loading.png", failed = false, loading = true),
37 LinkedElement("KSK@link.png", failed = false, loading = false)