X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftext%2FSoneTextParserTest.java;h=34767b520a6727a143c6882cfa4713d339c82d62;hb=03f3d46b352590724bc63c800f03aac5c957769b;hp=d81cdc6efa881d6fc6ce49d236f9f5b304190324;hpb=008f8fadc29475e47ebad45d86c9412ceb5c7cf9;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 d81cdc6..34767b5 100644 --- a/src/test/java/net/pterodactylus/sone/text/SoneTextParserTest.java +++ b/src/test/java/net/pterodactylus/sone/text/SoneTextParserTest.java @@ -1,5 +1,5 @@ /* - * Sone - SoneTextParserTest.java - Copyright © 2011–2012 David Roden + * Sone - SoneTextParserTest.java - Copyright © 2011–2013 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,10 +19,11 @@ package net.pterodactylus.sone.text; import java.io.IOException; import java.io.StringReader; +import java.util.Arrays; + +import net.pterodactylus.sone.database.memory.MemoryDatabase; import junit.framework.TestCase; -import net.pterodactylus.sone.core.SoneProvider; -import net.pterodactylus.sone.data.Sone; /** * JUnit test case for {@link SoneTextParser}. @@ -43,7 +44,7 @@ public class SoneTextParserTest extends TestCase { */ @SuppressWarnings("static-method") public void testPlainText() throws IOException { - SoneTextParser soneTextParser = new SoneTextParser(null, null); + SoneTextParser soneTextParser = new SoneTextParser(new MemoryDatabase(null)); Iterable parts; /* check basic operation. */ @@ -70,7 +71,7 @@ public class SoneTextParserTest extends TestCase { */ @SuppressWarnings("static-method") public void testKSKLinks() throws IOException { - SoneTextParser soneTextParser = new SoneTextParser(null, null); + SoneTextParser soneTextParser = new SoneTextParser(new MemoryDatabase(null)); Iterable parts; /* check basic links. */ @@ -97,7 +98,7 @@ public class SoneTextParserTest extends TestCase { */ @SuppressWarnings({ "synthetic-access", "static-method" }) public void testEmptyLinesAndSoneLinks() throws IOException { - SoneTextParser soneTextParser = new SoneTextParser(new TestSoneProvider(), null); + SoneTextParser soneTextParser = new SoneTextParser(new MemoryDatabase(null)); Iterable parts; /* check basic links. */ @@ -106,6 +107,24 @@ public class SoneTextParserTest extends TestCase { assertEquals("Part Text", "Some text.\n\nLink to [Sone|DAxKQzS48mtaQc7sUVHIgx3fnWZPQBz0EueBreUVWrU] and stuff.", convertText(parts, PlainTextPart.class, SonePart.class)); } + /** + * Test for a bug discovered in Sone 0.8.4 where a plain “http://” would be + * parsed into a link. + * + * @throws IOException + * if an I/O error occurs + */ + @SuppressWarnings({ "synthetic-access", "static-method" }) + public void testEmpyHttpLinks() throws IOException { + SoneTextParser soneTextParser = new SoneTextParser(new MemoryDatabase(null)); + Iterable parts; + + /* check empty http links. */ + parts = soneTextParser.parse(null, new StringReader("Some text. Empty link: http:// – nice!")); + assertNotNull("Parts", parts); + assertEquals("Part Text", "Some text. Empty link: http:// – nice!", convertText(parts, PlainTextPart.class)); + } + // // PRIVATE METHODS // @@ -121,7 +140,7 @@ public class SoneTextParserTest extends TestCase { * valid * @return The converted text */ - private String convertText(Iterable parts, Class... validClasses) { + private static String convertText(Iterable parts, Class... validClasses) { StringBuilder text = new StringBuilder(); for (Part part : parts) { assertNotNull("Part", part); @@ -133,7 +152,7 @@ public class SoneTextParserTest extends TestCase { } } if (!classValid) { - assertEquals("Part’s Class", null, part.getClass()); + fail("Part’s Class (" + part.getClass() + ") is not one of " + Arrays.toString(validClasses)); } if (part instanceof PlainTextPart) { text.append(((PlainTextPart) part).getText()); @@ -151,30 +170,4 @@ public class SoneTextParserTest extends TestCase { return text.toString(); } - /** - * Mock Sone provider. - * - * @author David ‘Bombe’ Roden - */ - private static class TestSoneProvider implements SoneProvider { - - /** - * {@inheritDoc} - */ - @Override - public Sone getSone(final String soneId, boolean create) { - return new Sone(soneId) { - - /** - * {@inheritDoc} - */ - @Override - public String getName() { - return soneId; - } - }; - } - - } - }