1 package net.pterodactylus.sone.web.ajax
3 import net.pterodactylus.sone.test.mock
4 import net.pterodactylus.sone.test.whenever
5 import net.pterodactylus.util.notify.Notification
6 import org.hamcrest.MatcherAssert.assertThat
7 import org.hamcrest.Matchers.equalTo
9 import org.mockito.Mockito.verify
12 * Unit test for [DismissNotificationAjaxPage].
14 class DismissNotificationAjaxPageTest : JsonPageTest("dismissNotification.ajax", requiresLogin = false, pageSupplier = ::DismissNotificationAjaxPage) {
17 fun `request without notification returns invalid-notification-id`() {
18 assertThat(json.isSuccess, equalTo(false))
19 assertThat(json.error, equalTo("invalid-notification-id"))
23 fun `request to dismiss non-dismissable notification results in not-dismissable`() {
24 val notification = mock<Notification>()
25 addNotification(notification, "foo")
26 addRequestParameter("notification", "foo")
27 assertThat(json.isSuccess, equalTo(false))
28 assertThat(json.error, equalTo("not-dismissable"))
32 fun `request to dismiss dismissable notification dismisses notification`() {
33 val notification = mock<Notification>().apply { whenever(isDismissable).thenReturn(true) }
34 addNotification(notification, "foo")
35 addRequestParameter("notification", "foo")
36 assertThat(json.isSuccess, equalTo(true))
37 verify(notification).dismiss()