X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Ftemplate%2FRenderFilterTest.kt;h=b8d6259ff920d5dc3d557aaccfd03344abfe1620;hb=ffd92ca2374c0b2218e583d02e0bdd24b8c110ae;hp=b4a8755a5beb73f67d8fbad6201856d9a58e0a95;hpb=831779f8fcdf131063016644b7fb39baade8527b;p=Sone.git diff --git a/src/test/kotlin/net/pterodactylus/sone/template/RenderFilterTest.kt b/src/test/kotlin/net/pterodactylus/sone/template/RenderFilterTest.kt index b4a8755..b8d6259 100644 --- a/src/test/kotlin/net/pterodactylus/sone/template/RenderFilterTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/template/RenderFilterTest.kt @@ -10,7 +10,6 @@ import net.pterodactylus.sone.text.FreemailPart import net.pterodactylus.sone.text.FreenetLinkPart import net.pterodactylus.sone.text.LinkPart import net.pterodactylus.sone.text.Part -import net.pterodactylus.sone.text.PartContainer import net.pterodactylus.sone.text.PlainTextPart import net.pterodactylus.sone.text.PostPart import net.pterodactylus.sone.text.SonePart @@ -23,7 +22,6 @@ import org.hamcrest.Matchers.containsInAnyOrder import org.jsoup.Jsoup import org.jsoup.nodes.Attribute import org.jsoup.nodes.Element -import org.jsoup.nodes.TextNode import org.junit.Test import org.mockito.Mockito.`when` import java.net.URLEncoder @@ -54,78 +52,14 @@ class RenderFilterTest { private val filter = RenderFilter(core, templateContextFactory) @Test - fun plainTextIsRenderedCorrectly() { + fun `plain text part is rendered correctly`() { assertThat(renderParts(PlainTextPart("plain text")), `is`("plain text")) } private fun renderParts(vararg part: Part) = filter.format(templateContext, listOf(*part), parameters) as String @Test - fun plainTextPartIsShortenedIfLengthExceedsMaxLength() { - setLengthAndCutOffLength(15, 10) - assertThat(renderParts(PlainTextPart("This is a long text.")), `is`("This is a …")) - } - - @Test - fun plainTextPartIsNotShortenedIfLengthDoesNotExceedMaxLength() { - setLengthAndCutOffLength(20, 10) - assertThat(renderParts(PlainTextPart("This is a long text.")), `is`("This is a …")) - } - - @Test - fun shortPartsAreNotShortened() { - setLengthAndCutOffLength(15, 10) - assertThat(renderParts(PlainTextPart("This.")), `is`("This.")) - } - - @Test - fun multiplePlainTextPartsAreShortened() { - setLengthAndCutOffLength(15, 10) - assertThat(renderParts(PlainTextPart("This "), PlainTextPart("is a long text.")), `is`("This is a …")) - } - - @Test - fun partsAfterLengthHasBeenReachedAreIgnored() { - setLengthAndCutOffLength(15, 10) - assertThat(renderParts(PlainTextPart("This is a long text."), PlainTextPart(" And even more.")), `is`("This is a …")) - } - - @Test - fun linkPartsAreNotShortened() { - setLengthAndCutOffLength(15, 10) - val linkNode = Jsoup.parseBodyFragment(renderParts(FreenetLinkPart("KSK@gpl.txt", "This is a long text.", false))).body().child(0) - verifyLink(linkNode, "/KSK@gpl.txt", "freenet", "KSK@gpl.txt", "This is a long text.") - } - - @Test - fun additionalLinkPartsAreIgnored() { - setLengthAndCutOffLength(15, 10) - assertThat(renderParts(PlainTextPart("This is a long text."), FreenetLinkPart("KSK@gpl.txt", "This is a long text.", false)), `is`("This is a …")) - } - - private fun setLengthAndCutOffLength(length: Int, cutOffLength: Int) { - parameters.put("length", length) - parameters.put("cut-off-length", cutOffLength) - } - - @Test - fun sonePartsAreAddedButTheirLengthIsIgnored() { - setLengthAndCutOffLength(15, 10) - val body = Jsoup.parseBodyFragment(renderParts(SonePart(sone), PlainTextPart("This is a long text."))).body() - val linkNode = body.childNode(0) as Element - println(linkNode) - verifyLink(linkNode, "viewSone.html?sone=$SONE_IDENTITY", "in-sone", "First", "First") - assertThat((body.childNode(1) as TextNode).text(), `is`("This is a …")) - } - - @Test - fun additionalSonePartsAreIgnored() { - setLengthAndCutOffLength(15, 10) - assertThat(renderParts(PlainTextPart("This is a long text."), SonePart(sone)), `is`("This is a …")) - } - - @Test - fun freenetLinkIsRenderedCorrectly() { + fun `freenet link is rendered correctly`() { val linkNode = renderParts(FreenetLinkPart("KSK@gpl.txt", "gpl.txt", false)).toLinkNode() verifyLink(linkNode, "/KSK@gpl.txt", "freenet", "KSK@gpl.txt", "gpl.txt") } @@ -141,7 +75,7 @@ class RenderFilterTest { } @Test - fun trustedFreenetLinkIsRenderedWithCorrectCssClass() { + fun `trusted freenet link is rendered with correct css class`() { val linkNode = renderParts(FreenetLinkPart("KSK@gpl.txt", "gpl.txt", true)).toLinkNode() verifyLink(linkNode, "/KSK@gpl.txt", "freenet-trusted", "KSK@gpl.txt", "gpl.txt") } @@ -149,14 +83,14 @@ class RenderFilterTest { private fun String.toLinkNode() = Jsoup.parseBodyFragment(this).body().child(0) @Test - fun internetLinkIsRenderedCorrectly() { + fun `internet link is rendered correctly`() { val linkNode = renderParts(LinkPart("http://test.com/test.html", "test.com/test.html")).toLinkNode() verifyLink(linkNode, "/external-link/?_CHECKED_HTTP_=${URLEncoder.encode("http://test.com/test.html", "UTF-8")}", "internet", "http://test.com/test.html", "test.com/test.html") } @Test - fun sonePartsAreRenderedCorrectly() { + fun `sone parts are rendered correctly`() { val linkNode = renderParts(SonePart(sone)).toLinkNode() verifyLink(linkNode, "viewSone.html?sone=" + SONE_IDENTITY, "in-sone", "First", "First") } @@ -172,14 +106,14 @@ class RenderFilterTest { } @Test - fun sonePartsWithUnknownSoneIsRenderedAsLinkToWebOfTrust() { + fun `sone part with unknown sone is rendered as link to web of trust`() { val sone = setupSone(SONE_IDENTITY, null, "First") val linkNode = renderParts(SonePart(sone)).toLinkNode() verifyLink(linkNode, "/WebOfTrust/ShowIdentity?id=$SONE_IDENTITY", "in-sone", SONE_IDENTITY, SONE_IDENTITY) } @Test - fun postPartIsCutOffCorrectlyWhenThereAreSpaces() { + fun `post part is cut off correctly when there are spaces`() { val post = setupPost(sone, "1234 678901 345 789012 45678 01.") val linkNode = renderParts(PostPart(post)).toLinkNode() verifyLink(linkNode, "viewPost.html?post=$POST_ID", "in-sone", "First", "1234 678901 345…") @@ -194,29 +128,27 @@ class RenderFilterTest { } @Test - fun postPartIsCutOffCorrectlyWhenThereAreNoSpaces() { + fun `post part is cut off correctly when there are no spaces`() { val post = setupPost(sone, "1234567890123456789012345678901.") val linkNode = renderParts(PostPart(post)).toLinkNode() verifyLink(linkNode, "viewPost.html?post=$POST_ID", "in-sone", "First", "12345678901234567890…") } @Test - fun postPartShorterThan21CharsIsNotCutOff() { + fun `post part shorter than 21 chars is not cut off`() { val post = setupPost(sone, "12345678901234567890") val linkNode = renderParts(PostPart(post)).toLinkNode() verifyLink(linkNode, "viewPost.html?post=$POST_ID", "in-sone", "First", "12345678901234567890") } @Test - fun multiplePartsAreRenderedCorrectly() { - val parts = PartContainer() - parts.add(PlainTextPart("te")) - parts.add(PlainTextPart("xt")) - assertThat(renderParts(parts), `is`("text")) + fun `multiple parts are rendered correctly`() { + val parts = arrayOf(PlainTextPart("te"), PlainTextPart("xt")) + assertThat(renderParts(*parts), `is`("text")) } @Test - fun freemailAddressIsDisplayedCorrectly() { + fun `freemail address is displayed correctly`() { val linkNode = renderParts(FreemailPart("sone", FREEMAIL_ID, SONE_IDENTITY)).toLinkNode() verifyLink(linkNode, "/Freemail/NewMessage?to=$SONE_IDENTITY", "in-sone", "First\n$SONE_FREEMAIL", "sone@First.freemail") }