X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FBookmarkAjaxPageTest.java;h=ed07a5b14ffa33e47d2a1ee8d7d21625300dac29;hb=b30df9db8b6400e00e431ce2a92370cda91615c7;hp=1db89d0bb306c351ad6a576093fb15ca7b0ae257;hpb=c285f43c017dad11f77f13813cfe3837bf43baef;p=Sone.git diff --git a/src/test/java/net/pterodactylus/sone/web/ajax/BookmarkAjaxPageTest.java b/src/test/java/net/pterodactylus/sone/web/ajax/BookmarkAjaxPageTest.java index 1db89d0..ed07a5b 100644 --- a/src/test/java/net/pterodactylus/sone/web/ajax/BookmarkAjaxPageTest.java +++ b/src/test/java/net/pterodactylus/sone/web/ajax/BookmarkAjaxPageTest.java @@ -4,25 +4,24 @@ package net.pterodactylus.sone.web.ajax; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertThat; +import static net.pterodactylus.sone.Verifiers.verifyJsonError; +import static net.pterodactylus.sone.Verifiers.verifySuccessfulJsonResponse; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; import static org.mockito.Matchers.anyString; -import static org.mockito.Mockito.mock; +import static org.mockito.Matchers.eq; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import java.net.URI; import java.net.URISyntaxException; import net.pterodactylus.sone.core.Core; +import net.pterodactylus.sone.data.Mocks; import net.pterodactylus.sone.web.WebInterface; import net.pterodactylus.sone.web.page.FreenetRequest; -import freenet.clients.http.HTTPRequestImpl; -import freenet.support.api.HTTPRequest; import org.junit.Test; /** @@ -32,50 +31,35 @@ import org.junit.Test; */ public class BookmarkAjaxPageTest { - @Test - public void testBookmarkingExistingPost() throws URISyntaxException { - /* create mocks. */ - Core core = mock(Core.class); - WebInterface webInterface = mock(WebInterface.class); - when(webInterface.getCore()).thenReturn(core); - HTTPRequest httpRequest = new HTTPRequestImpl(new URI("/ajax/bookmark.ajax?post=abc"), "GET"); - FreenetRequest request = mock(FreenetRequest.class); - when(request.getHttpRequest()).thenReturn(httpRequest); - - /* create JSON page. */ - BookmarkAjaxPage bookmarkAjaxPage = new BookmarkAjaxPage(webInterface); - JsonReturnObject jsonReturnObject = bookmarkAjaxPage.createJsonObject(request); + private final Mocks mocks = new Mocks(); + private final Core core = mocks.core; + private final WebInterface webInterface = mocks.webInterface; + private final BookmarkAjaxPage bookmarkAjaxPage = new BookmarkAjaxPage(webInterface); - /* verify response. */ - assertThat(jsonReturnObject, notNullValue()); - assertThat(jsonReturnObject.isSuccess(), is(true)); + @Test + public void bookmarkingDoesNotRequireLogin() { + assertThat(bookmarkAjaxPage.requiresLogin(), is(false)); + } - /* verify behaviour. */ - verify(core, times(1)).bookmarkPost(anyString()); - verify(core).bookmarkPost("abc"); + @Test + public void testBookmarkingExistingPost() throws URISyntaxException { + JsonReturnObject jsonReturnObject = performRequest(bookmarkAjaxPage, "abc"); + verifySuccessfulJsonResponse(jsonReturnObject); + verify(core, times(1)).bookmarkPost(eq("abc")); } @Test public void testBookmarkingMissingPost() throws URISyntaxException { - /* create mocks. */ - Core core = mock(Core.class); - WebInterface webInterface = mock(WebInterface.class); - when(webInterface.getCore()).thenReturn(core); - HTTPRequest httpRequest = new HTTPRequestImpl(new URI("/ajax/bookmark.ajax"), "GET"); - FreenetRequest request = mock(FreenetRequest.class); - when(request.getHttpRequest()).thenReturn(httpRequest); - - /* create JSON page. */ - BookmarkAjaxPage bookmarkAjaxPage = new BookmarkAjaxPage(webInterface); - JsonReturnObject jsonReturnObject = bookmarkAjaxPage.createJsonObject(request); - - /* verify response. */ - assertThat(jsonReturnObject, notNullValue()); - assertThat(jsonReturnObject.isSuccess(), is(false)); - assertThat(((JsonErrorReturnObject) jsonReturnObject).getError(), is("invalid-post-id")); - - /* verify behaviour. */ + JsonReturnObject jsonReturnObject = performRequest(bookmarkAjaxPage, null); + verifyJsonError(jsonReturnObject, "invalid-post-id"); verify(core, never()).bookmarkPost(anyString()); } + private JsonReturnObject performRequest(BookmarkAjaxPage bookmarkAjaxPage, String postId) throws URISyntaxException { + FreenetRequest request = mocks.mockRequest(""); + when(request.getHttpRequest().getParam("post")).thenReturn(postId); + when(request.getHttpRequest().getParam("post", null)).thenReturn(postId); + return bookmarkAjaxPage.createJsonObject(request); + } + }