✨ Show audio player for links to audio files
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / template / LinkedElementRenderFilterTest.kt
index 8363f6b..e93bfeb 100644 (file)
@@ -8,7 +8,7 @@ import org.hamcrest.MatcherAssert.*
 import org.hamcrest.Matchers.*
 import org.jsoup.*
 import org.jsoup.nodes.*
-import org.junit.*
+import kotlin.test.Test
 
 /**
  * Unit test for [LinkedElementRenderFilter].
@@ -64,6 +64,19 @@ class LinkedElementRenderFilterTest {
        }
 
        @Test
+       fun `filter can render audio player`() {
+               val html = filter.format(null, LinkedElement("KSK@gpl.mp3", properties = mapOf("type" to "audio")), emptyMap()) as String
+               val outerSpanNode = Jsoup.parseBodyFragment(html).body().child(0)
+               assertThat(outerSpanNode.nodeName(), equalTo("span"))
+               assertThat(outerSpanNode.attr("class"), equalTo("linked-element loaded"))
+               assertThat(outerSpanNode.attr("title"), equalTo("KSK@gpl.mp3"))
+               val linkNode = outerSpanNode.child(0)
+               assertThat(linkNode.nodeName(), equalTo("audio"))
+               assertThat(linkNode.attr("controls"), equalTo(""))
+               assertThat(linkNode.attr("src"), equalTo("/KSK@gpl.mp3"))
+       }
+
+       @Test
        fun `render filter can be created by guice`() {
                val injector = Guice.createInjector(TemplateContextFactory::class.isProvidedByMock())
                assertThat(injector.getInstance<LinkedElementRenderFilter>(), notNullValue())