1 package net.pterodactylus.sone.web
3 import net.pterodactylus.sone.test.mock
4 import net.pterodactylus.sone.test.whenever
5 import net.pterodactylus.sone.web.WebTestUtils.redirectsTo
6 import net.pterodactylus.util.notify.Notification
7 import net.pterodactylus.util.web.Method.GET
9 import org.mockito.Mockito.never
10 import org.mockito.Mockito.verify
11 import kotlin.test.fail
14 * Unit test for [DismissNotificationPage].
16 class DismissNotificationPageTest : WebPageTest() {
18 private val page = DismissNotificationPage(template, webInterface)
19 private val notification = mock<Notification>()
22 fun `get request with invalid notification ID redirects to return page`() {
24 addHttpRequestParameter("returnPage", "return.html")
25 expectedException.expect(redirectsTo("return.html"))
26 page.handleRequest(freenetRequest, templateContext)
30 fun `get request with dismissible notification dismisses the notification and redirects to return page`() {
32 addNotification("notification-id", notification)
33 addHttpRequestParameter("notification", "notification-id")
34 addHttpRequestParameter("returnPage", "return.html")
35 expectedException.expect(redirectsTo("return.html"))
37 page.handleRequest(freenetRequest, templateContext)
40 verify(notification, never()).dismiss()
45 fun `get request with non dismissible notification redirects to return page`() {
47 whenever(notification.isDismissable).thenReturn(true)
48 addNotification("notification-id", notification)
49 addHttpRequestParameter("notification", "notification-id")
50 addHttpRequestParameter("returnPage", "return.html")
51 expectedException.expect(redirectsTo("return.html"))
53 page.handleRequest(freenetRequest, templateContext)
56 verify(notification).dismiss()