package be.nikiroo.fanfix.test; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.Map.Entry; import be.nikiroo.fanfix.data.MetaData; import be.nikiroo.fanfix.data.Paragraph; import be.nikiroo.fanfix.data.Paragraph.ParagraphType; import be.nikiroo.fanfix.supported.BasicSupport; import be.nikiroo.utils.test.TestCase; import be.nikiroo.utils.test.TestLauncher; public class BasicSupportTest extends TestLauncher { public BasicSupportTest(String[] args) { super("BasicSupport", args); addSeries(new TestLauncher("General", args) { { addTest(new TestCase("BasicSupport.makeParagraphs()") { @Override public void test() throws Exception { BasicSupportEmpty support = new BasicSupportEmpty() { @Override protected boolean isHtml() { return true; } @Override public void fixBlanksBreaks(List paras) { } @Override protected List requotify(Paragraph para) { List paras = new ArrayList( 1); paras.add(para); return paras; } }; List paras = null; paras = support.makeParagraphs(null, ""); assertEquals( "An empty content should not generate paragraphs", 0, paras.size()); paras = support.makeParagraphs(null, "Line 1

Line 2

Line 3

"); assertEquals(5, paras.size()); assertEquals("Line 1", paras.get(0).getContent()); assertEquals(ParagraphType.BLANK, paras.get(1) .getType()); assertEquals("Line 2", paras.get(2).getContent()); assertEquals(ParagraphType.BLANK, paras.get(3) .getType()); assertEquals("Line 3", paras.get(4).getContent()); paras = support.makeParagraphs(null, "

Line1

Line2

Line3

"); assertEquals(6, paras.size()); } }); addTest(new TestCase("BasicSupport.removeDoubleBlanks()") { @Override public void test() throws Exception { BasicSupportEmpty support = new BasicSupportEmpty() { @Override protected boolean isHtml() { return true; } }; List paras = null; paras = support .makeParagraphs(null, "

Line1

Line2

Line3

"); assertEquals(5, paras.size()); paras = support .makeParagraphs(null, "

Line1

Line2

Line3

* * *"); assertEquals(5, paras.size()); paras = support.makeParagraphs(null, "1

* * *

2"); assertEquals(3, paras.size()); assertEquals(ParagraphType.BREAK, paras.get(1) .getType()); paras = support.makeParagraphs(null, "1


* * *

2"); assertEquals(3, paras.size()); assertEquals(ParagraphType.BREAK, paras.get(1) .getType()); paras = support.makeParagraphs(null, "1

* * *


2"); assertEquals(3, paras.size()); assertEquals(ParagraphType.BREAK, paras.get(1) .getType()); paras = support.makeParagraphs(null, "1



* * *


2"); assertEquals(3, paras.size()); assertEquals(ParagraphType.BREAK, paras.get(1) .getType()); } }); } }); } private class BasicSupportEmpty extends BasicSupport { @Override protected String getSourceName() { return null; } @Override protected boolean supports(URL url) { return false; } @Override protected boolean isHtml() { return false; } @Override protected MetaData getMeta(URL source, InputStream in) throws IOException { return null; } @Override protected String getDesc(URL source, InputStream in) throws IOException { return null; } @Override protected List> getChapters(URL source, InputStream in) throws IOException { return null; } @Override protected String getChapterContent(URL source, InputStream in, int number) throws IOException { return null; } @Override // and make it public! public List makeParagraphs(URL source, String content) throws IOException { return super.makeParagraphs(source, content); } @Override // and make it public! public void fixBlanksBreaks(List paras) { super.fixBlanksBreaks(paras); } } }