1 package net.pterodactylus.sone.web.pages
3 import net.pterodactylus.sone.test.getInstance
4 import net.pterodactylus.sone.test.whenever
5 import net.pterodactylus.sone.web.baseInjector
6 import net.pterodactylus.util.web.Method.POST
7 import org.hamcrest.MatcherAssert.assertThat
8 import org.hamcrest.Matchers.equalTo
9 import org.hamcrest.Matchers.notNullValue
11 import org.mockito.Mockito.any
12 import org.mockito.Mockito.never
13 import org.mockito.Mockito.verify
16 * Unit test for [DeleteSonePage].
18 class DeleteSonePageTest: WebPageTest(::DeleteSonePage) {
21 fun `page returns correct path`() {
22 assertThat(page.path, equalTo("deleteSone.html"))
26 fun `page requires login`() {
27 assertThat(page.requiresLogin(), equalTo(true))
31 fun `page returns correct title`() {
32 whenever(l10n.getString("Page.DeleteSone.Title")).thenReturn("delete sone page")
33 assertThat(page.getPageTitle(freenetRequest), equalTo("delete sone page"))
37 fun `get request does not redirect`() {
38 page.processTemplate(freenetRequest, templateContext)
42 fun `post request without delete confirmation redirects to index`() {
44 verifyRedirect("index.html") {
45 verify(core, never()).deleteSone(any())
50 fun `post request with delete confirmation deletes sone and redirects to index`() {
52 addHttpRequestPart("deleteSone", "true")
53 verifyRedirect("index.html") {
54 verify(core).deleteSone(currentSone)
59 fun `page can be created by dependency injection`() {
60 assertThat(baseInjector.getInstance<DeleteSonePage>(), notNullValue())