X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FWebPageTest.java;h=3e2df88db8877d94f4ad8f0d58760a612871fd0d;hp=c135d073a269d241cc0bba5c24c33cbbbc01862e;hb=7b55e0be6a3283e43a9bbab98f82aebdd948eb33;hpb=e30087dacaf59f2328e74f1a88a2be3e60a93e80 diff --git a/src/test/java/net/pterodactylus/sone/web/WebPageTest.java b/src/test/java/net/pterodactylus/sone/web/WebPageTest.java index c135d07..3e2df88 100644 --- a/src/test/java/net/pterodactylus/sone/web/WebPageTest.java +++ b/src/test/java/net/pterodactylus/sone/web/WebPageTest.java @@ -1,6 +1,8 @@ package net.pterodactylus.sone.web; import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.RETURNS_DEEP_STUBS; import static org.mockito.Mockito.mock; @@ -9,10 +11,15 @@ import static org.mockito.Mockito.when; import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; import net.pterodactylus.sone.core.Core; import net.pterodactylus.sone.core.UpdateChecker; +import net.pterodactylus.sone.data.Post; import net.pterodactylus.sone.data.Sone; +import net.pterodactylus.sone.freenet.wot.OwnIdentity; import net.pterodactylus.sone.web.page.FreenetRequest; import net.pterodactylus.util.notify.Notification; import net.pterodactylus.util.template.Template; @@ -22,9 +29,12 @@ import net.pterodactylus.util.web.Method; import freenet.clients.http.ToadletContext; import freenet.support.api.HTTPRequest; +import com.google.common.base.Optional; import org.junit.Before; import org.junit.Rule; import org.junit.rules.ExpectedException; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; /** * Base class for web page tests. @@ -47,17 +57,34 @@ public abstract class WebPageTest { protected final FreenetRequest freenetRequest = mock(FreenetRequest.class); protected final ToadletContext toadletContext = mock(ToadletContext.class); + private final Set ownIdentities = new HashSet<>(); + private final List localSones = new ArrayList<>(); @Before public final void setupFreenetRequest() { when(freenetRequest.getToadletContext()).thenReturn(toadletContext); when(freenetRequest.getHttpRequest()).thenReturn(httpRequest); + when(httpRequest.getPartAsStringFailsafe(anyString(), anyInt())).thenAnswer(new Answer() { + @Override + public String answer(InvocationOnMock invocation) throws Throwable { + return ""; + } + }); } @Before public final void setupCore() { UpdateChecker updateChecker = mock(UpdateChecker.class); - when(webInterface.getCore().getUpdateChecker()).thenReturn(updateChecker); + when(core.getUpdateChecker()).thenReturn(updateChecker); + when(core.getLocalSone(anyString())).thenReturn(null); + when(core.getLocalSones()).thenReturn(localSones); + when(core.getSone(anyString())).thenReturn(Optional.absent()); + when(core.getPost(anyString())).thenReturn(Optional.absent()); + } + + @Before + public final void setupIdentityManager() { + when(core.getIdentityManager().getAllOwnIdentities()).thenReturn(ownIdentities); } @Before @@ -67,6 +94,11 @@ public abstract class WebPageTest { when(webInterface.getNotifications(currentSone)).thenReturn(new ArrayList()); } + protected void unsetCurrentSone() { + when(webInterface.getCurrentSone(toadletContext)).thenReturn(null); + when(webInterface.getCurrentSone(eq(toadletContext), anyBoolean())).thenReturn(null); + } + protected void request(String uri, Method method) { try { when(freenetRequest.getUri()).thenReturn(new URI(uri)); @@ -76,4 +108,31 @@ public abstract class WebPageTest { when(freenetRequest.getMethod()).thenReturn(method); } + 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())); + } + }); + } + + protected void addPost(String postId, Post post) { + when(core.getPost(postId)).thenReturn(Optional.fromNullable(post)); + } + + protected void addSone(String soneId, Sone sone) { + when(core.getSone(eq(soneId))).thenReturn(Optional.fromNullable(sone)); + } + + protected void addLocalSone(String soneId, Sone sone) { + when(core.getLocalSone(eq(soneId))).thenReturn(sone); + localSones.add(sone); + } + + protected void addOwnIdentity(OwnIdentity ownIdentity) { + ownIdentities.add(ownIdentity); + } + }