1 package net.pterodactylus.sone.web.pages
3 import net.pterodactylus.sone.test.*
4 import net.pterodactylus.sone.web.*
5 import net.pterodactylus.util.web.Method.*
6 import org.hamcrest.MatcherAssert.*
7 import org.hamcrest.Matchers.*
9 import org.mockito.Mockito.*
12 * Unit test for [UnfollowSonePage].
14 class UnfollowSonePageTest : WebPageTest(::UnfollowSonePage) {
17 fun `page returns correct path`() {
18 assertThat(page.path, equalTo("unfollowSone.html"))
22 fun `page requires login`() {
23 assertThat(page.requiresLogin(), equalTo(true))
27 fun `page returns correct page title`() {
28 addTranslation("Page.UnfollowSone.Title", "unfollow page title")
29 assertThat(page.getPageTitle(soneRequest), equalTo("unfollow page title"))
33 fun `get request does not redirect`() {
38 fun `post request unfollows a single sone and redirects to return page`() {
40 addHttpRequestPart("returnPage", "return.html")
41 addHttpRequestPart("sone", "sone-id")
42 verifyRedirect("return.html") {
43 verify(core).unfollowSone(currentSone, "sone-id")
48 fun `post request unfollows two sones and redirects to return page`() {
50 addHttpRequestPart("returnPage", "return.html")
51 addHttpRequestPart("sone", "sone-id1, sone-id2")
52 verifyRedirect("return.html") {
53 verify(core).unfollowSone(currentSone, "sone-id1")
54 verify(core).unfollowSone(currentSone, "sone-id2")
59 fun `page can be created by dependency injection`() {
60 assertThat(baseInjector.getInstance<UnfollowSonePage>(), notNullValue())