1 package net.pterodactylus.sone.web.ajax;
3 import static org.hamcrest.MatcherAssert.assertThat;
4 import static org.hamcrest.Matchers.is;
5 import static org.mockito.Mockito.verify;
6 import static org.mockito.Mockito.when;
8 import net.pterodactylus.sone.data.Mocks;
9 import net.pterodactylus.sone.data.Post;
10 import net.pterodactylus.sone.data.Sone;
11 import net.pterodactylus.sone.web.page.FreenetRequest;
13 import org.junit.Test;
16 * Unit test for {@link DeletePostAjaxPage}.
18 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
20 public class DeletePostAjaxPageTest {
22 private Mocks mocks = new Mocks();
23 private final DeletePostAjaxPage deletePostAjaxPage = new DeletePostAjaxPage(mocks.webInterface);
24 private final FreenetRequest freenetRequest = mocks.mockRequest("deletePost.ajax");
27 public void canDeletePost() {
28 Sone sender = mocks.mockSone("SoneId").local().create();
29 Post post = mocks.mockPost(sender, "PostId").create();
30 when(freenetRequest.getHttpRequest().getParam("post")).thenReturn("PostId");
31 JsonReturnObject jsonReturnObject = deletePostAjaxPage.createJsonObject(freenetRequest);
32 assertThat(jsonReturnObject.isSuccess(), is(true));
33 verify(mocks.core).deletePost(post);
37 public void canNotDeletePostWithInvalidId() {
38 JsonReturnObject jsonReturnObject = deletePostAjaxPage.createJsonObject(freenetRequest);
39 verifyFailure(jsonReturnObject, "invalid-post-id");
42 private void verifyFailure(JsonReturnObject jsonReturnObject, String errorId) {
43 assertThat(jsonReturnObject.isSuccess(), is(false));
44 assertThat(((JsonErrorReturnObject) jsonReturnObject).getError(), is(errorId));
48 public void canNotDeletePostFromRemoteSone() {
49 Sone sender = mocks.mockSone("SoneId").create();
50 mocks.mockPost(sender, "PostId").create();
51 when(freenetRequest.getHttpRequest().getParam("post")).thenReturn("PostId");
52 JsonReturnObject jsonReturnObject = deletePostAjaxPage.createJsonObject(freenetRequest);
53 verifyFailure(jsonReturnObject, "not-authorized");