Replace web page test base with Kotlin version
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / pages / DeleteSonePageTest.kt
1 package net.pterodactylus.sone.web.pages
2
3 import net.pterodactylus.sone.test.whenever
4 import net.pterodactylus.util.web.Method.POST
5 import org.hamcrest.MatcherAssert.assertThat
6 import org.hamcrest.Matchers.equalTo
7 import org.junit.Test
8 import org.mockito.Mockito.any
9 import org.mockito.Mockito.never
10 import org.mockito.Mockito.verify
11
12 /**
13  * Unit test for [DeleteSonePage].
14  */
15 class DeleteSonePageTest: WebPageTest(::DeleteSonePage) {
16
17         @Test
18         fun `page returns correct path`() {
19             assertThat(page.path, equalTo("deleteSone.html"))
20         }
21
22         @Test
23         fun `page requires login`() {
24             assertThat(page.requiresLogin(), equalTo(true))
25         }
26
27         @Test
28         fun `page returns correct title`() {
29             whenever(l10n.getString("Page.DeleteSone.Title")).thenReturn("delete sone page")
30                 assertThat(page.getPageTitle(freenetRequest), equalTo("delete sone page"))
31         }
32
33         @Test
34         fun `get request does not redirect`() {
35                 page.processTemplate(freenetRequest, templateContext)
36         }
37
38         @Test
39         fun `post request without delete confirmation redirects to index`() {
40                 setMethod(POST)
41                 verifyRedirect("index.html") {
42                         verify(core, never()).deleteSone(any())
43                 }
44         }
45
46         @Test
47         fun `post request with delete confirmation deletes sone and redirects to index`() {
48                 setMethod(POST)
49                 addHttpRequestPart("deleteSone", "true")
50                 verifyRedirect("index.html") {
51                         verify(core).deleteSone(currentSone)
52                 }
53         }
54
55 }