X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Ftemplate%2FLinkedElementRenderFilterTest.kt;h=07cba3d47f7580139c997aa0f91a059f7a1eafaf;hp=c3e26c053facb406ceb6c51dfae3ffe417e13c68;hb=19e49c0a2463b90c3468903672d8ba600da217d2;hpb=992404e5183f824e478d6f2273d7998d48ceeea5 diff --git a/src/test/kotlin/net/pterodactylus/sone/template/LinkedElementRenderFilterTest.kt b/src/test/kotlin/net/pterodactylus/sone/template/LinkedElementRenderFilterTest.kt index c3e26c0..07cba3d 100644 --- a/src/test/kotlin/net/pterodactylus/sone/template/LinkedElementRenderFilterTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/template/LinkedElementRenderFilterTest.kt @@ -9,9 +9,12 @@ 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.contains +import org.hamcrest.Matchers.equalTo import org.hamcrest.Matchers.notNullValue import org.hamcrest.Matchers.nullValue import org.jsoup.Jsoup +import org.jsoup.nodes.Element import org.junit.Test /** @@ -46,7 +49,7 @@ class LinkedElementRenderFilterTest { @Test fun `filter can render linked images`() { - val html = filter.format(null, LinkedElement("KSK@gpl.png"), emptyMap()) as String + val html = filter.format(null, LinkedElement("KSK@gpl.png", properties = mapOf("type" to "image")), emptyMap()) as String val outerSpanNode = Jsoup.parseBodyFragment(html).body().child(0) assertThat(outerSpanNode.nodeName(), `is`("span")) assertThat(outerSpanNode.attr("class"), `is`("linked-element loaded")) @@ -59,8 +62,24 @@ class LinkedElementRenderFilterTest { } @Test + fun `filter can render HTML pages`() { + val html = filter.format(null, LinkedElement("KSK@gpl.html", properties = mapOf("type" to "html", "title" to "Page Title", "description" to "This is the description.")), emptyMap()) as String + val outerSpanNode = Jsoup.parseBodyFragment(html).body().child(0) + assertThat(outerSpanNode.nodeName(), equalTo("span")) + assertThat(outerSpanNode.attr("class"), `is`("linked-element loaded")) + assertThat(outerSpanNode.attr("title"), `is`("KSK@gpl.html")) + val linkNode = outerSpanNode.child(0) + assertThat(linkNode.nodeName(), equalTo("a")) + assertThat(linkNode.attr("href"), equalTo("/KSK@gpl.html")) + val divNodes = linkNode.children() + assertThat(divNodes.map(Element::nodeName), contains("div", "div")) + assertThat(divNodes.map { it.attr("class") }, contains("heading", "description")) + assertThat(divNodes.map(Element::text), contains("Page Title", "This is the description.")) + } + + @Test fun `render filter can be created by guice`() { - val injector = Guice.createInjector(TemplateContextFactory::class.isProvidedByMock()) + val injector = Guice.createInjector(TemplateContextFactory::class.isProvidedByMock()) assertThat(injector.getInstance(), notNullValue()) }