1 package net.pterodactylus.sone.web.pages
3 import net.pterodactylus.sone.data.*
4 import net.pterodactylus.sone.test.getInstance
5 import net.pterodactylus.sone.test.mock
6 import net.pterodactylus.sone.web.*
7 import net.pterodactylus.util.web.Method.*
8 import org.hamcrest.MatcherAssert.*
9 import org.hamcrest.Matchers.*
11 import org.mockito.ArgumentMatchers.any
12 import org.mockito.ArgumentMatchers.eq
13 import org.mockito.Mockito.never
14 import org.mockito.Mockito.verify
17 * Unit test for [UntrustPage].
19 class UntrustPageTest : WebPageTest(::UntrustPage) {
22 fun `page returns correct path`() {
23 assertThat(page.path, equalTo("untrust.html"))
27 fun `page requires login`() {
28 assertThat(page.requiresLogin(), equalTo(true))
32 fun `page returns correct title`() {
33 addTranslation("Page.Untrust.Title", "untrust page title")
34 assertThat(page.getPageTitle(soneRequest), equalTo("untrust page title"))
38 fun `get request does not redirect`() {
40 verify(core, never()).untrustSone(eq(currentSone), any())
45 fun `post request without sone parameter does not untrust but redirects`() {
47 addHttpRequestPart("returnPage", "return.html")
48 verifyRedirect("return.html") {
49 verify(core, never()).untrustSone(eq(currentSone), any())
54 fun `post request with invalid sone parameter does not untrust but redirects`() {
56 addHttpRequestPart("returnPage", "return.html")
57 addHttpRequestPart("sone", "no-sone")
58 verifyRedirect("return.html") {
59 verify(core, never()).untrustSone(eq(currentSone), any())
64 fun `post request with valid sone parameter untrusts and redirects`() {
66 addHttpRequestPart("returnPage", "return.html")
67 addHttpRequestPart("sone", "sone-id")
68 val sone = mock<Sone>()
69 addSone("sone-id", sone)
70 verifyRedirect("return.html") {
71 verify(core).untrustSone(currentSone, sone)
76 fun `page can be created by dependency injection`() {
77 assertThat(baseInjector.getInstance<UntrustPage>(), notNullValue())