X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftext%2FSoneTextParserTest.java;h=79f197411a156eeb265b080882f103e2d915ddc2;hb=fd32e307db87c617a4c455f592b6e649ec50ae8a;hp=cec779aefee7de2b35f9d5f947a2f191d2317e69;hpb=594aaf74980949ecb964284e51e280c2d24c349d;p=Sone.git diff --git a/src/test/java/net/pterodactylus/sone/text/SoneTextParserTest.java b/src/test/java/net/pterodactylus/sone/text/SoneTextParserTest.java index cec779a..79f1974 100644 --- a/src/test/java/net/pterodactylus/sone/text/SoneTextParserTest.java +++ b/src/test/java/net/pterodactylus/sone/text/SoneTextParserTest.java @@ -26,14 +26,17 @@ import static org.hamcrest.Matchers.notNullValue; import java.io.IOException; import java.util.Collection; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + import net.pterodactylus.sone.data.Post; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.data.impl.IdOnlySone; import net.pterodactylus.sone.database.PostProvider; import net.pterodactylus.sone.database.SoneProvider; -import com.google.common.base.Function; import com.google.common.base.Optional; +import kotlin.jvm.functions.Function1; import org.junit.Test; /** @@ -93,6 +96,13 @@ public class SoneTextParserTest { } @Test + public void soneAndPostCanBeParsedFromTheSameText() { + SoneTextParser parser = new SoneTextParser(new TestSoneProvider(), new TestPostProvider()); + Iterable parts = parser.parse("Text sone://DAxKQzS48mtaQc7sUVHIgx3fnWZPQBz0EueBreUVWrU more text post://f3757817-b45a-497a-803f-9c5aafc10dc6 even more text", null); + assertThat("Part Text", convertText(parts), is("Text [Sone|DAxKQzS48mtaQc7sUVHIgx3fnWZPQBz0EueBreUVWrU] more text [Post|f3757817-b45a-497a-803f-9c5aafc10dc6|text] even more text")); + } + + @Test public void postLinkIsRenderedAsPlainTextIfPostIdIsTooShort() { Iterable parts = soneTextParser.parse("post://too-short", null); assertThat("Part Text", convertText(parts), is("post://too-short")); @@ -197,6 +207,12 @@ public class SoneTextParserTest { } @Test + public void invalidSskAndUskLinkIsParsedAsText() { + Iterable parts = soneTextParser.parse("SSK@a USK@a", null); + assertThat("Part Text", convertText(parts), is("SSK@a USK@a")); + } + + @Test public void sskLinkWithoutContextIsNotTrusted() { Iterable parts = soneTextParser.parse("SSK@qM1nmgU-YUnIttmEhqjTl7ifAF3Z6o~5EPwQW03uEQU,aztSUkT-VT1dWvfSUt9YpfyW~Flmf5yXpBnIE~v8sAg,AAMC--8/test", null); assertThat("Part Text", convertText(parts), is("[SSK@qM1nmgU-YUnIttmEhqjTl7ifAF3Z6o~5EPwQW03uEQU,aztSUkT-VT1dWvfSUt9YpfyW~Flmf5yXpBnIE~v8sAg,AAMC--8/test|SSK@qM1nmgU-YUnIttmEhqjTl7ifAF3Z6o~5EPwQW03uEQU,aztSUkT-VT1dWvfSUt9YpfyW~Flmf5yXpBnIE~v8sAg,AAMC--8/test|test]")); @@ -372,7 +388,7 @@ public class SoneTextParserTest { text.append(((PlainTextPart) part).getText()); } else if (part instanceof FreenetLinkPart) { FreenetLinkPart freenetLinkPart = (FreenetLinkPart) part; - text.append('[').append(freenetLinkPart.getLink()).append('|').append(freenetLinkPart.isTrusted() ? "trusted|" : "").append(freenetLinkPart.getTitle()).append('|').append(freenetLinkPart.getText()).append(']'); + text.append('[').append(freenetLinkPart.getLink()).append('|').append(freenetLinkPart.getTrusted() ? "trusted|" : "").append(freenetLinkPart.getTitle()).append('|').append(freenetLinkPart.getText()).append(']'); } else if (part instanceof FreemailPart) { FreemailPart freemailPart = (FreemailPart) part; text.append(format("[Freemail|%s|%s|%s]", freemailPart.getEmailLocalPart(), freemailPart.getFreemailId(), freemailPart.getIdentityId())); @@ -397,22 +413,21 @@ public class SoneTextParserTest { */ private static class TestSoneProvider implements SoneProvider { + @Nonnull @Override - public Function> soneLoader() { - return new Function>() { + public Function1 getSoneLoader() { + return new Function1() { @Override - public Optional apply(String soneId) { + public Sone invoke(String soneId) { return getSone(soneId); } }; } - /** - * {@inheritDoc} - */ + @Nullable @Override - public Optional getSone(final String soneId) { - return Optional.of(new IdOnlySone(soneId)); + public Sone getSone(final String soneId) { + return new IdOnlySone(soneId); } /** @@ -444,17 +459,18 @@ public class SoneTextParserTest { private static class AbsentSoneProvider extends TestSoneProvider { @Override - public Optional getSone(String soneId) { - return Optional.absent(); + public Sone getSone(String soneId) { + return null; } } private static class TestPostProvider implements PostProvider { + @Nullable @Override - public Optional getPost(final String postId) { - return Optional.of(new Post() { + public Post getPost(@Nonnull final String postId) { + return new Post() { @Override public String getId() { return postId; @@ -499,7 +515,7 @@ public class SoneTextParserTest { public Post setKnown(boolean known) { return null; } - }); + }; } @Override @@ -516,9 +532,10 @@ public class SoneTextParserTest { private static class AbsentPostProvider extends TestPostProvider { + @Nullable @Override - public Optional getPost(String postId) { - return Optional.absent(); + public Post getPost(@Nonnull String postId) { + return null; } }