X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ffcp%2FFcpInterfaceTest.java;h=bbbf509a34c0b8ea296a12e6dd379f472c538588;hb=6bf4bdce9e12173d64671188b946f10d1d9d4b0b;hp=6648d12d15e3028d8ba6eebb2fd1170cbc2149d3;hpb=726661d4d58c5707b411d316c05b8901b1434d8b;p=Sone.git diff --git a/src/test/java/net/pterodactylus/sone/fcp/FcpInterfaceTest.java b/src/test/java/net/pterodactylus/sone/fcp/FcpInterfaceTest.java index 6648d12..bbbf509 100644 --- a/src/test/java/net/pterodactylus/sone/fcp/FcpInterfaceTest.java +++ b/src/test/java/net/pterodactylus/sone/fcp/FcpInterfaceTest.java @@ -20,6 +20,7 @@ package net.pterodactylus.sone.fcp; import static freenet.pluginmanager.FredPluginFCP.ACCESS_DIRECT; import static freenet.pluginmanager.FredPluginFCP.ACCESS_FCP_FULL; import static freenet.pluginmanager.FredPluginFCP.ACCESS_FCP_RESTRICTED; +import static net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired.ALWAYS; import static net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired.NO; import static net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired.WRITING; import static org.hamcrest.MatcherAssert.assertThat; @@ -59,8 +60,14 @@ public class FcpInterfaceTest { private final FcpInterface fcpInterface = new FcpInterface(core); private final CapturingPluginReplySender pluginReplySender = new CapturingPluginReplySender(); + public FcpInterfaceTest() { + fcpInterface.setActive(true); + fcpInterface.setFullAccessRequired(ALWAYS); + } + @Test public void testThatAnInactiveFcpInterfaceReturnsAnErrorForDirectAccess() throws PluginNotFoundException { + fcpInterface.setActive(false); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_DIRECT); verifyErrorWithCode("400"); @@ -68,6 +75,7 @@ public class FcpInterfaceTest { @Test public void testThatAnInactiveFcpInterfaceReturnsAnErrorForRestrictedFcpAccess() throws PluginNotFoundException { + fcpInterface.setActive(false); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_RESTRICTED); verifyErrorWithCode("400"); @@ -75,6 +83,7 @@ public class FcpInterfaceTest { @Test public void testThatAnInactiveFcpInterfaceReturnsAnErrorForFullFcpAccess() throws PluginNotFoundException { + fcpInterface.setActive(false); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_FULL); verifyErrorWithCode("400"); @@ -82,7 +91,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceReturnsAnErrorForAnUnknownMessage() { - fcpInterface.setActive(true); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "Foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_DIRECT); verifyError(); @@ -90,7 +98,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceReturnsAnErrorForAMessageWithoutIdentifier() { - fcpInterface.setActive(true); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_DIRECT); @@ -99,7 +106,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessAllowsDirectFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_DIRECT); @@ -108,7 +114,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessForWritesAllowsDirectFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(WRITING); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); @@ -118,7 +123,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceNotRequiringFullAccessAllowsDirectFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(NO); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); @@ -128,7 +132,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessAllowsDirectFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_DIRECT); @@ -137,7 +140,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessForWritesAllowsDirectFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(WRITING); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); @@ -147,7 +149,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceNotRequiringFullAccessAllowsDirectFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(NO); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); @@ -157,7 +158,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessAllowsFullFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_FULL); @@ -166,7 +166,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessForWritesAllowsFullFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(WRITING); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); @@ -176,7 +175,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceNotRequiringFullAccessAllowsFullFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(NO); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); @@ -192,7 +190,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessAllowsFullFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_FULL); @@ -201,7 +198,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessForWritesAllowsFullFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(WRITING); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); @@ -211,7 +207,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceNotRequiringFullAccessAllowsFullFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(NO); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); @@ -221,7 +216,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessDoesNotAllowRestrictedFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_RESTRICTED); @@ -230,7 +224,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessForWritesAllowsRestrictedFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(WRITING); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); @@ -240,7 +233,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceNotRequiringFullAccessAllowsRestrictedFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(NO); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); @@ -250,7 +242,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessDoesNotAllowRestrictedFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_RESTRICTED); @@ -259,7 +250,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessForWritesDoesNotAllowRestrictedFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(WRITING); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); @@ -269,7 +259,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceNotRequiringFullAccessAllowsRestrictedFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(NO); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); @@ -279,7 +268,6 @@ public class FcpInterfaceTest { @Test public void testThatAFaultyCommandResultsInAnError() { - fcpInterface.setActive(true); fcpInterface.addCommand("Faulty", new FaultyCommand()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "Faulty").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_FULL); @@ -288,14 +276,12 @@ public class FcpInterfaceTest { @Test public void testThatAFaultyPluginReplySenderIsHandled() { - fcpInterface.setActive(true); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "Faulty").put("Identifier", "foo").get(); fcpInterface.handle(new FaultyPluginReplySender(), fieldSet, null, ACCESS_FCP_FULL); } @Test public void testThatACommandWithDataIsHandledCorrectly() throws IOException { - fcpInterface.setActive(true); fcpInterface.addCommand("CommandWithData", new CommandWithData()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "CommandWithData").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_FULL); @@ -307,7 +293,6 @@ public class FcpInterfaceTest { @Test public void testThatACommandWithABucketIsHandledCorrectly() throws IOException { - fcpInterface.setActive(true); fcpInterface.addCommand("CommandWithBucket", new CommandWithBucket()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "CommandWithBucket").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_FULL); @@ -330,10 +315,13 @@ public class FcpInterfaceTest { if (r == -1) { return offset == data.length; } - readData[offset] = (byte) r; - if (data[offset++] != r) { + if (offset == data.length) { + return false; + } + if (data[offset] != (readData[offset] = (byte) r)) { return false; } + offset++; } } catch (IOException ioe1) { return false;