X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FWebPageTest.java;h=c73bf61f23169abd73286d0169bd2dd9cea8013c;hb=6b2461a58af4530997197ad3b17749f79c4d297a;hp=5a1d589670a802788264951beea70655e21e5302;hpb=52f3202e3d96c1c2d5dc60ac1d5fa7e3b340a45f;p=Sone.git diff --git a/src/test/java/net/pterodactylus/sone/web/WebPageTest.java b/src/test/java/net/pterodactylus/sone/web/WebPageTest.java index 5a1d589..c73bf61 100644 --- a/src/test/java/net/pterodactylus/sone/web/WebPageTest.java +++ b/src/test/java/net/pterodactylus/sone/web/WebPageTest.java @@ -11,10 +11,14 @@ import static org.mockito.Mockito.when; import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; +import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; +import javax.annotation.Nonnull; + import net.pterodactylus.sone.core.Core; import net.pterodactylus.sone.core.Preferences; import net.pterodactylus.sone.core.UpdateChecker; @@ -60,6 +64,8 @@ public abstract class WebPageTest { protected final TemplateContext templateContext = new TemplateContext(); protected final HTTPRequest httpRequest = mock(HTTPRequest.class); + protected final Map requestParameters = new HashMap<>(); + protected final Map requestHeaders = new HashMap<>(); protected final FreenetRequest freenetRequest = mock(FreenetRequest.class); protected final ToadletContext toadletContext = mock(ToadletContext.class); @@ -73,11 +79,43 @@ public abstract class WebPageTest { when(httpRequest.getPartAsStringFailsafe(anyString(), anyInt())).thenAnswer(new Answer() { @Override public String answer(InvocationOnMock invocation) throws Throwable { - return ""; + String parameter = invocation.getArgument(0); + int maxLength = invocation.getArgument(1); + return requestParameters.containsKey(parameter) ? requestParameters.get(parameter).substring(0, Math.min(maxLength, requestParameters.get(parameter).length())) : ""; + } + }); + when(httpRequest.getParam(anyString())).thenAnswer(new Answer() { + @Override + public String answer(InvocationOnMock invocation) throws Throwable { + String parameter = invocation.getArgument(0); + return requestParameters.containsKey(parameter) ? requestParameters.get(parameter) : ""; + } + }); + when(httpRequest.getParam(anyString(), anyString())).thenAnswer(new Answer() { + @Override + public String answer(InvocationOnMock invocation) throws Throwable { + String parameter = invocation.getArgument(0); + return requestParameters.containsKey(parameter) ? requestParameters.get(parameter) : invocation.getArgument(1); + } + }); + when(httpRequest.isPartSet(anyString())).thenAnswer(new Answer() { + @Override + public Boolean answer(InvocationOnMock invocation) throws Throwable { + return requestParameters.containsKey(invocation.getArgument(0)); + } + }); + when(httpRequest.getParts()).thenAnswer(new Answer() { + @Override + public String[] answer(InvocationOnMock invocation) throws Throwable { + return requestParameters.keySet().toArray(new String[requestParameters.size()]); + } + }); + when(httpRequest.getHeader(anyString())).thenAnswer(new Answer() { + @Override + public String answer(InvocationOnMock invocation) throws Throwable { + return requestHeaders.get(invocation.getArgument(0).toLowerCase()); } }); - when(httpRequest.getParam(anyString())).thenReturn(""); - when(httpRequest.getParam(anyString(), anyString())).thenReturn(""); } @Before @@ -103,6 +141,7 @@ public abstract class WebPageTest { public final void setupWebInterface() { when(webInterface.getCurrentSone(toadletContext)).thenReturn(currentSone); when(webInterface.getCurrentSone(eq(toadletContext), anyBoolean())).thenReturn(currentSone); + when(webInterface.getNotification(anyString())).thenReturn(Optional.absent()); when(webInterface.getNotifications(currentSone)).thenReturn(new ArrayList()); } @@ -125,17 +164,12 @@ public abstract class WebPageTest { when(freenetRequest.getMethod()).thenReturn(method); } + protected void addHttpRequestHeader(@Nonnull String name, String value) { + requestHeaders.put(name.toLowerCase(), value); + } + protected void addHttpRequestParameter(String name, final String value) { - when(httpRequest.getPartAsStringFailsafe(eq(name), anyInt())).thenAnswer(new Answer() { - @Override - public String answer(InvocationOnMock invocation) throws Throwable { - int maxLength = invocation.getArgument(1); - return value.substring(0, Math.min(maxLength, value.length())); - } - }); - when(httpRequest.getParam(eq(name))).thenReturn(value); - when(httpRequest.getParam(eq(name), anyString())).thenReturn(value); - when(httpRequest.isPartSet(eq(name))).thenReturn(value != null && !value.isEmpty()); + requestParameters.put(name, value); } protected void addPost(String postId, Post post) { @@ -164,4 +198,8 @@ public abstract class WebPageTest { when(core.getImage(eq(imageId), anyBoolean())).thenReturn(image); } + protected void addNotification(String notificationId, Notification notification) { + when(webInterface.getNotification(eq(notificationId))).thenReturn(Optional.of(notification)); + } + }