X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FBookmarkAjaxPageTest.kt;fp=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FBookmarkAjaxPageTest.kt;h=1d26c71dff5033982b45bb55d056fbd77c8f6d1b;hp=0000000000000000000000000000000000000000;hb=acab609befb73e27ee91cfeae4966aaf76236b5f;hpb=57152c775159b6bcd24aad27faeb2b05891d8dc0 diff --git a/src/test/kotlin/net/pterodactylus/sone/web/ajax/BookmarkAjaxPageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/ajax/BookmarkAjaxPageTest.kt new file mode 100644 index 0000000..1d26c71 --- /dev/null +++ b/src/test/kotlin/net/pterodactylus/sone/web/ajax/BookmarkAjaxPageTest.kt @@ -0,0 +1,54 @@ +package net.pterodactylus.sone.web.ajax + +import net.pterodactylus.sone.data.Post +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.equalTo +import org.junit.Test +import org.mockito.ArgumentMatchers.any +import org.mockito.Mockito.never +import org.mockito.Mockito.verify + +/** + * Unit test for [BookmarkAjaxPage]. + */ +class BookmarkAjaxPageTest : JsonPageTest(::BookmarkAjaxPage) { + + @Test + fun `page returns correct path`() { + assertThat(page.path, equalTo("bookmark.ajax")) + } + + @Test + fun `page does not require login`() { + assertThat(page.requiresLogin(), equalTo(false)) + } + + @Test + fun `missing post ID results in invalid id response`() { + assertThat(json.isSuccess, equalTo(false)) + assertThat((json as JsonErrorReturnObject).error, equalTo("invalid-post-id")) + } + + @Test + fun `empty post ID results in invalid id response`() { + addRequestParameter("post", "") + assertThat(json.isSuccess, equalTo(false)) + assertThat((json as JsonErrorReturnObject).error, equalTo("invalid-post-id")) + } + + @Test + fun `invalid post ID results in success but does not bookmark anything`() { + addRequestParameter("post", "missing") + assertThat(json.isSuccess, equalTo(true)) + verify(core, never()).bookmarkPost(any()) + } + + @Test + fun `valid post ID results in success and bookmarks the post`() { + addRequestParameter("post", "valid-post-id") + val post = addNewPost("valid-post-id", "1", 2) + assertThat(json.isSuccess, equalTo(true)) + verify(core).bookmarkPost(post) + } + +}