X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Ftemplate%2FLinkedElementRenderFilterTest.kt;h=e8e7fc3fc6a99a367ca1a9f6e5eb2c3f47f3eb42;hb=550309db774fb837ba2172571b04c24ee417e4e8;hp=07ef1781d4f49b7a53b95f89befc4a51c05927ec;hpb=b91ce252d94a8876097b939e129dc33264cef2f5;p=Sone.git diff --git a/src/test/kotlin/net/pterodactylus/sone/template/LinkedElementRenderFilterTest.kt b/src/test/kotlin/net/pterodactylus/sone/template/LinkedElementRenderFilterTest.kt index 07ef178..e8e7fc3 100644 --- a/src/test/kotlin/net/pterodactylus/sone/template/LinkedElementRenderFilterTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/template/LinkedElementRenderFilterTest.kt @@ -1,10 +1,16 @@ package net.pterodactylus.sone.template +import com.google.inject.Guice import net.pterodactylus.sone.core.LinkedElement +import net.pterodactylus.sone.test.getInstance +import net.pterodactylus.sone.test.isProvidedByMock +import net.pterodactylus.util.template.ClassPathTemplateProvider import net.pterodactylus.util.template.HtmlFilter import net.pterodactylus.util.template.TemplateContextFactory import org.hamcrest.MatcherAssert.assertThat import org.hamcrest.Matchers.`is` +import org.hamcrest.Matchers.notNullValue +import org.hamcrest.Matchers.nullValue import org.jsoup.Jsoup import org.junit.Test @@ -17,11 +23,27 @@ class LinkedElementRenderFilterTest { init { templateContextFactory.addFilter("html", HtmlFilter()) + templateContextFactory.addProvider(ClassPathTemplateProvider(LinkedElementRenderFilter::class.java, "/templates/")) } private val filter = LinkedElementRenderFilter(templateContextFactory) @Test + fun `filter returns null for objects that are not linked elements`() { + assertThat(filter.format(null, Any(), null), nullValue()) + } + + @Test + fun `filter renders loading animation for not loaded elements`() { + val html = filter.format(null, LinkedElement("KSK@gpl.png", loading = true), emptyMap()) as String + val spanNode = Jsoup.parseBodyFragment(html).body().child(0) + assertThat(spanNode.nodeName(), `is`("span")) + assertThat(spanNode.attr("class"), `is`("linked-element")) + assertThat(spanNode.attr("title"), `is`("KSK@gpl.png")) + assertThat(spanNode.attr("style"), `is`("background-image: url('images/loading-animation.gif')")) + } + + @Test fun `filter can render linked images`() { val html = filter.format(null, LinkedElement("KSK@gpl.png"), emptyMap()) as String val linkNode = Jsoup.parseBodyFragment(html).body().child(0) @@ -34,4 +56,10 @@ class LinkedElementRenderFilterTest { assertThat(spanNode.attr("style"), `is`("background-image: url('/KSK@gpl.png')")) } + @Test + fun `render filter can be created by guice`() { + val injector = Guice.createInjector(TemplateContextFactory::class.isProvidedByMock()) + assertThat(injector.getInstance(), notNullValue()) + } + }