1 package net.pterodactylus.sone.web;
3 import static net.pterodactylus.sone.web.WebTestUtils.redirectsTo;
4 import static org.hamcrest.MatcherAssert.assertThat;
5 import static org.hamcrest.Matchers.is;
6 import static org.mockito.ArgumentMatchers.any;
7 import static org.mockito.Mockito.mock;
8 import static org.mockito.Mockito.never;
9 import static org.mockito.Mockito.verify;
11 import net.pterodactylus.sone.data.Post;
12 import net.pterodactylus.util.web.Method;
14 import org.junit.Test;
17 * Unit test for {@link BookmarkPage}.
19 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
21 public class BookmarkPageTest extends WebPageTest {
23 private final BookmarkPage page = new BookmarkPage(template, webInterface);
26 public void pathIsSetCorrectly() {
27 assertThat(page.getPath(), is("bookmark.html"));
31 public void getRequestDoesNotBookmarkAnythingAndDoesNotRedirect() throws Exception {
32 page.processTemplate(freenetRequest, templateContext);
33 verify(core, never()).bookmarkPost(any(Post.class));
37 public void postIsBookmarkedCorrectly() throws Exception {
39 Post post = mock(Post.class);
40 addPost("post-id", post);
41 expectedException.expect(redirectsTo("return-page.html"));
43 page.processTemplate(freenetRequest, templateContext);
45 verify(core).bookmarkPost(post);
49 private void setupRequest() {
50 request("", Method.POST);
51 addHttpRequestParameter("post", "post-id");
52 addHttpRequestParameter("returnPage", "return-page.html");
56 public void nonExistentPostIsNotBookmarked() throws Exception {
58 addPost("post-id", null);
59 expectedException.expect(redirectsTo("return-page.html"));
61 page.processTemplate(freenetRequest, templateContext);
63 verify(core, never()).bookmarkPost(any(Post.class));