1 package net.pterodactylus.sone.web.ajax
3 import net.pterodactylus.sone.data.Sone
4 import net.pterodactylus.sone.test.getInstance
5 import net.pterodactylus.sone.test.mock
6 import net.pterodactylus.sone.web.baseInjector
7 import org.hamcrest.MatcherAssert.assertThat
8 import org.hamcrest.Matchers.equalTo
9 import org.hamcrest.Matchers.notNullValue
10 import org.hamcrest.Matchers.nullValue
12 import org.mockito.Mockito.verify
15 * Unit test for [UntrustAjaxPage].
17 class UntrustAjaxPageTest : JsonPageTest("untrustSone.ajax", pageSupplier = ::UntrustAjaxPage) {
20 fun `request without sone results in invalid-sone-id`() {
21 assertThatJsonFailed("invalid-sone-id")
25 fun `request with invalid sone results in invalid-sone-id`() {
26 addRequestParameter("sone", "invalid")
27 assertThatJsonFailed("invalid-sone-id")
31 fun `request with valid sone results in sone being untrusted`() {
32 val sone = mock<Sone>()
33 addSone(sone, "sone-id")
34 addRequestParameter("sone", "sone-id")
35 assertThatJsonIsSuccessful()
36 verify(core).untrustSone(currentSone, sone)
40 fun `request with valid sone results in null trust value being returned`() {
41 val sone = mock<Sone>()
42 addSone(sone, "sone-id")
43 addRequestParameter("sone", "sone-id")
44 assertThatJsonIsSuccessful()
45 assertThat(json["trustValue"], nullValue())
49 fun `page can be created by dependency injection`() {
50 assertThat(baseInjector.getInstance<UntrustAjaxPage>(), notNullValue())