2 * © 2013 xplosion interactive
5 package net.pterodactylus.sone.web.ajax;
7 import static org.hamcrest.CoreMatchers.is;
8 import static org.hamcrest.CoreMatchers.notNullValue;
9 import static org.junit.Assert.assertThat;
10 import static org.mockito.Matchers.anyString;
11 import static org.mockito.Mockito.mock;
12 import static org.mockito.Mockito.never;
13 import static org.mockito.Mockito.times;
14 import static org.mockito.Mockito.verify;
15 import static org.mockito.Mockito.when;
18 import java.net.URISyntaxException;
20 import net.pterodactylus.sone.core.Core;
21 import net.pterodactylus.sone.web.WebInterface;
22 import net.pterodactylus.sone.web.page.FreenetRequest;
24 import freenet.clients.http.HTTPRequestImpl;
25 import freenet.support.api.HTTPRequest;
26 import org.junit.Test;
29 * Tests for {@link BookmarkAjaxPage}.
31 * @author <a href="mailto:d.roden@xplosion.de">David Roden</a>
33 public class BookmarkAjaxPageTest {
36 public void testBookmarkingExistingPost() throws URISyntaxException {
38 Core core = mock(Core.class);
39 WebInterface webInterface = mock(WebInterface.class);
40 when(webInterface.getCore()).thenReturn(core);
41 HTTPRequest httpRequest = new HTTPRequestImpl(new URI("/ajax/bookmark.ajax?post=abc"), "GET");
42 FreenetRequest request = mock(FreenetRequest.class);
43 when(request.getHttpRequest()).thenReturn(httpRequest);
45 /* create JSON page. */
46 BookmarkAjaxPage bookmarkAjaxPage = new BookmarkAjaxPage(webInterface);
47 JsonReturnObject jsonReturnObject = bookmarkAjaxPage.createJsonObject(request);
49 /* verify response. */
50 assertThat(jsonReturnObject, notNullValue());
51 assertThat(jsonReturnObject.isSuccess(), is(true));
53 /* verify behaviour. */
54 verify(core, times(1)).bookmarkPost(anyString());
55 verify(core).bookmarkPost("abc");
59 public void testBookmarkingMissingPost() throws URISyntaxException {
61 Core core = mock(Core.class);
62 WebInterface webInterface = mock(WebInterface.class);
63 when(webInterface.getCore()).thenReturn(core);
64 HTTPRequest httpRequest = new HTTPRequestImpl(new URI("/ajax/bookmark.ajax"), "GET");
65 FreenetRequest request = mock(FreenetRequest.class);
66 when(request.getHttpRequest()).thenReturn(httpRequest);
68 /* create JSON page. */
69 BookmarkAjaxPage bookmarkAjaxPage = new BookmarkAjaxPage(webInterface);
70 JsonReturnObject jsonReturnObject = bookmarkAjaxPage.createJsonObject(request);
72 /* verify response. */
73 assertThat(jsonReturnObject, notNullValue());
74 assertThat(jsonReturnObject.isSuccess(), is(false));
75 assertThat(((JsonErrorReturnObject) jsonReturnObject).getError(), is("invalid-post-id"));
77 /* verify behaviour. */
78 verify(core, never()).bookmarkPost(anyString());