Add filter for linked images
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / template / LinkedImagesFilterTest.kt
1 package net.pterodactylus.sone.template
2
3 import net.pterodactylus.sone.core.ImageLoader
4 import net.pterodactylus.sone.core.LoadedImage
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
11 import org.junit.Test
12 import org.mockito.Mockito.`when`
13
14 /**
15  * Unit test for [LinkedImagesFilter].
16  */
17 class LinkedImagesFilterTest {
18
19         private val imageLoader = mock<ImageLoader>()
20         private val filter = LinkedImagesFilter(imageLoader)
21
22         @Test
23         fun `filter finds all loaded freenet images`() {
24                 val parts = listOf(
25                                 PlainTextPart("text"),
26                                 LinkPart("http://link", "link"),
27                                 FreenetLinkPart("KSK@link", "link", false),
28                                 FreenetLinkPart("KSK@link.png", "link", false)
29                 )
30                 `when`(imageLoader.toLoadedImage("KSK@link.png")).thenReturn(LoadedImage("KSK@link.png", "image/png", 1440, 900))
31                 val loadedImages = filter.format(null, parts, null)
32                 assertThat(loadedImages, Matchers.contains(
33                                 LoadedImage("KSK@link.png", "image/png", 1440, 900)
34                 ))
35         }
36
37 }