X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FCreateReplyAjaxPageTest.kt;h=dfbc1db2bb51e3e4bbf518bcf52c4b83b1010508;hp=9d9008bb7b2cc9dbc6d0f75cfccc03d82e850166;hb=ea7ad5e87074576d17b7df74365a726bd95d7665;hpb=ec7a80c007d6d759823d6d922e6c680c04d334cd diff --git a/src/test/kotlin/net/pterodactylus/sone/web/ajax/CreateReplyAjaxPageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/ajax/CreateReplyAjaxPageTest.kt index 9d9008b..dfbc1db 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/ajax/CreateReplyAjaxPageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/ajax/CreateReplyAjaxPageTest.kt @@ -3,78 +3,70 @@ package net.pterodactylus.sone.web.ajax import net.pterodactylus.sone.data.Post import net.pterodactylus.sone.data.PostReply import net.pterodactylus.sone.data.Sone +import net.pterodactylus.sone.test.getInstance import net.pterodactylus.sone.test.mock import net.pterodactylus.sone.test.whenever +import net.pterodactylus.sone.web.baseInjector import org.hamcrest.MatcherAssert.assertThat import org.hamcrest.Matchers.equalTo +import org.hamcrest.Matchers.notNullValue import org.junit.Test /** * Unit test for [CreateReplyAjaxPage]. */ -class CreateReplyAjaxPageTest : JsonPageTest(::CreateReplyAjaxPage) { - - @Test - fun `page returns correct path`() { - assertThat(page.path, equalTo("createReply.ajax")) - } - - @Test - fun `page needs form password`() { - assertThat(page.needsFormPassword(), equalTo(true)) - } - - @Test - fun `page requires login`() { - assertThat(page.requiresLogin(), equalTo(true)) - } +class CreateReplyAjaxPageTest : JsonPageTest("createReply.ajax", pageSupplier = ::CreateReplyAjaxPage) { @Test fun `invalid post ID results in error message`() { - assertThat(json.isSuccess, equalTo(false)) - assertThat(json.error, equalTo("invalid-post-id")) + assertThatJsonFailed("invalid-post-id") } @Test fun `valid post ID results in created reply`() { val post = mock() - addPost("post-id", post) + addPost(post, "post-id") val reply = mock().apply { whenever(id).thenReturn("reply-id") } whenever(core.createReply(currentSone, post, "")).thenReturn(reply) addRequestParameter("post", "post-id") - assertThat(json.isSuccess, equalTo(true)) - assertThat(json["reply"].asText(), equalTo("reply-id")) - assertThat(json["sone"].asText(), equalTo("soneId")) + assertThatJsonIsSuccessful() + assertThat(json["reply"]?.asText(), equalTo("reply-id")) + assertThat(json["sone"]?.asText(), equalTo("soneId")) } @Test fun `text is filtered when creating reply`() { val post = mock() - addPost("post-id", post) + addPost(post, "post-id") val reply = mock().apply { whenever(id).thenReturn("reply-id") } whenever(core.createReply(currentSone, post, "Text with KSK@foo.bar link")).thenReturn(reply) addRequestParameter("post", "post-id") addRequestParameter("text", "Text with http://127.0.0.1:8888/KSK@foo.bar link") addRequestHeader("Host", "127.0.0.1:8888") - assertThat(json.isSuccess, equalTo(true)) - assertThat(json["reply"].asText(), equalTo("reply-id")) - assertThat(json["sone"].asText(), equalTo("soneId")) + assertThatJsonIsSuccessful() + assertThat(json["reply"]?.asText(), equalTo("reply-id")) + assertThat(json["sone"]?.asText(), equalTo("soneId")) } @Test fun `sender can be chosen from local sones`() { val sone = mock().apply { whenever(id).thenReturn("local-sone") } - addLocalSone("local-sone", sone) + addLocalSone(sone) val post = mock() - addPost("post-id", post) + addPost(post, "post-id") val reply = mock().apply { whenever(id).thenReturn("reply-id") } whenever(core.createReply(sone, post, "Text")).thenReturn(reply) addRequestParameter("post", "post-id") addRequestParameter("text", "Text") addRequestParameter("sender", "local-sone") - assertThat(json.isSuccess, equalTo(true)) - assertThat(json["reply"].asText(), equalTo("reply-id")) - assertThat(json["sone"].asText(), equalTo("local-sone")) + assertThatJsonIsSuccessful() + assertThat(json["reply"]?.asText(), equalTo("reply-id")) + assertThat(json["sone"]?.asText(), equalTo("local-sone")) + } + + @Test + fun `page can be created by dependency injection`() { + assertThat(baseInjector.getInstance(), notNullValue()) } }