🔀 Merge “release/v81” into “master”
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / ajax / CreatePostAjaxPageTest.kt
index 47fee5b..b79e6df 100644 (file)
@@ -3,11 +3,14 @@ package net.pterodactylus.sone.web.ajax
 import com.google.common.base.Optional
 import net.pterodactylus.sone.data.Post
 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.utils.asOptional
+import net.pterodactylus.sone.web.baseInjector
 import org.hamcrest.MatcherAssert.assertThat
 import org.hamcrest.Matchers.equalTo
+import org.hamcrest.Matchers.notNullValue
 import org.hamcrest.Matchers.nullValue
 import org.junit.Test
 
@@ -18,32 +21,29 @@ class CreatePostAjaxPageTest : JsonPageTest("createPost.ajax", pageSupplier = ::
 
        @Test
        fun `missing text parameter returns error`() {
-               assertThat(json.isSuccess, equalTo(false))
-               assertThat(json.error, equalTo("text-required"))
+               assertThatJsonFailed("text-required")
        }
 
        @Test
        fun `empty text returns error`() {
                addRequestParameter("text", "")
-               assertThat(json.isSuccess, equalTo(false))
-               assertThat(json.error, equalTo("text-required"))
+               assertThatJsonFailed("text-required")
        }
 
        @Test
        fun `whitespace-only text returns error`() {
                addRequestParameter("text", "  ")
-               assertThat(json.isSuccess, equalTo(false))
-               assertThat(json.error, equalTo("text-required"))
+               assertThatJsonFailed("text-required")
        }
 
        @Test
        fun `request with valid data creates post`() {
                addRequestParameter("text", "test")
                val post = createPost()
-               whenever(core.createPost(currentSone, Optional.absent(), "test")).thenReturn(post)
-               assertThat(json.isSuccess, equalTo(true))
-               assertThat(json["postId"].asText(), equalTo("id"))
-               assertThat(json["sone"].asText(), equalTo(currentSone.id))
+               whenever(core.createPost(currentSone, null, "test")).thenReturn(post)
+               assertThatJsonIsSuccessful()
+               assertThat(json["postId"]?.asText(), equalTo("id"))
+               assertThat(json["sone"]?.asText(), equalTo(currentSone.id))
                assertThat(json["recipient"], nullValue())
        }
 
@@ -52,10 +52,10 @@ class CreatePostAjaxPageTest : JsonPageTest("createPost.ajax", pageSupplier = ::
                addRequestParameter("text", "test")
                addRequestParameter("recipient", "invalid")
                val post = createPost()
-               whenever(core.createPost(currentSone, Optional.absent(), "test")).thenReturn(post)
-               assertThat(json.isSuccess, equalTo(true))
-               assertThat(json["postId"].asText(), equalTo("id"))
-               assertThat(json["sone"].asText(), equalTo(currentSone.id))
+               whenever(core.createPost(currentSone, null, "test")).thenReturn(post)
+               assertThatJsonIsSuccessful()
+               assertThat(json["postId"]?.asText(), equalTo("id"))
+               assertThat(json["sone"]?.asText(), equalTo(currentSone.id))
                assertThat(json["recipient"], nullValue())
        }
 
@@ -66,11 +66,11 @@ class CreatePostAjaxPageTest : JsonPageTest("createPost.ajax", pageSupplier = ::
                val recipient = mock<Sone>().apply { whenever(id).thenReturn("valid") }
                addSone(recipient)
                val post = createPost("valid")
-               whenever(core.createPost(currentSone, Optional.of(recipient), "test")).thenReturn(post)
-               assertThat(json.isSuccess, equalTo(true))
-               assertThat(json["postId"].asText(), equalTo("id"))
-               assertThat(json["sone"].asText(), equalTo(currentSone.id))
-               assertThat(json["recipient"].asText(), equalTo("valid"))
+               whenever(core.createPost(currentSone, recipient, "test")).thenReturn(post)
+               assertThatJsonIsSuccessful()
+               assertThat(json["postId"]?.asText(), equalTo("id"))
+               assertThat(json["sone"]?.asText(), equalTo(currentSone.id))
+               assertThat(json["recipient"]?.asText(), equalTo("valid"))
        }
 
        @Test
@@ -78,10 +78,10 @@ class CreatePostAjaxPageTest : JsonPageTest("createPost.ajax", pageSupplier = ::
                addRequestParameter("text", "Link http://freenet.test:8888/KSK@foo is filtered")
                addRequestHeader("Host", "freenet.test:8888")
                val post = createPost()
-               whenever(core.createPost(currentSone, Optional.absent(), "Link KSK@foo is filtered")).thenReturn(post)
-               assertThat(json.isSuccess, equalTo(true))
-               assertThat(json["postId"].asText(), equalTo("id"))
-               assertThat(json["sone"].asText(), equalTo(currentSone.id))
+               whenever(core.createPost(currentSone, null, "Link KSK@foo is filtered")).thenReturn(post)
+               assertThatJsonIsSuccessful()
+               assertThat(json["postId"]?.asText(), equalTo("id"))
+               assertThat(json["sone"]?.asText(), equalTo(currentSone.id))
                assertThat(json["recipient"], nullValue())
        }
 
@@ -92,4 +92,9 @@ class CreatePostAjaxPageTest : JsonPageTest("createPost.ajax", pageSupplier = ::
                                whenever(this.recipientId).thenReturn(recipientId.asOptional())
                        }
 
+       @Test
+       fun `page can be created by dependency injection`() {
+           assertThat(baseInjector.getInstance<CreatePostAjaxPage>(), notNullValue())
+       }
+
 }