package be.nikiroo.fanfix.test;
import java.io.File;
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.Instance;
import be.nikiroo.fanfix.bundles.StringId;
import be.nikiroo.fanfix.data.MetaData;
import be.nikiroo.fanfix.data.Paragraph;
import be.nikiroo.fanfix.data.Paragraph.ParagraphType;
import be.nikiroo.fanfix.data.Story;
import be.nikiroo.fanfix.supported.BasicSupport;
import be.nikiroo.fanfix.supported.BasicSupport.SupportType;
import be.nikiroo.utils.IOUtils;
import be.nikiroo.utils.test.TestCase;
import be.nikiroo.utils.test.TestLauncher;
public class BasicSupportTest extends TestLauncher {
// quote chars
private char openQuote = Instance.getTrans().getChar(
StringId.OPEN_SINGLE_QUOTE);
private char closeQuote = Instance.getTrans().getChar(
StringId.CLOSE_SINGLE_QUOTE);
private char openDoubleQuote = Instance.getTrans().getChar(
StringId.OPEN_DOUBLE_QUOTE);
private char closeDoubleQuote = Instance.getTrans().getChar(
StringId.CLOSE_DOUBLE_QUOTE);
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
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; } }; ListLine1
Line2
Line3
Line1
Line2
Line3
* * *
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());
}
});
addTest(new TestCase("BasicSupport.processPara() quotes") {
@Override
public void test() throws Exception {
BasicSupportEmpty support = new BasicSupportEmpty() {
@Override
protected boolean isHtml() {
return true;
}
};
Paragraph para;
// sanity check
para = support.processPara("");
assertEquals(ParagraphType.BLANK, para.getType());
//
para = support.processPara("\"Yes, my Lord!\"");
assertEquals(ParagraphType.QUOTE, para.getType());
assertEquals(openDoubleQuote + "Yes, my Lord!"
+ closeDoubleQuote, para.getContent());
para = support.processPara("«Yes, my Lord!»");
assertEquals(ParagraphType.QUOTE, para.getType());
assertEquals(openDoubleQuote + "Yes, my Lord!"
+ closeDoubleQuote, para.getContent());
para = support.processPara("'Yes, my Lord!'");
assertEquals(ParagraphType.QUOTE, para.getType());
assertEquals(openQuote + "Yes, my Lord!" + closeQuote,
para.getContent());
para = support.processPara("‹Yes, my Lord!›");
assertEquals(ParagraphType.QUOTE, para.getType());
assertEquals(openQuote + "Yes, my Lord!" + closeQuote,
para.getContent());
}
});
addTest(new TestCase(
"BasicSupport.processPara() double-simple quotes") {
@Override
public void setUp() throws Exception {
super.setUp();
};
@Override
public void tearDown() throws Exception {
super.tearDown();
}
@Override
public void test() throws Exception {
BasicSupportEmpty support = new BasicSupportEmpty() {
@Override
protected boolean isHtml() {
return true;
}
};
Paragraph para;
para = support.processPara("''Yes, my Lord!''");
assertEquals(ParagraphType.QUOTE, para.getType());
assertEquals(openDoubleQuote + "Yes, my Lord!"
+ closeDoubleQuote, para.getContent());
para = support.processPara("‹‹Yes, my Lord!››");
assertEquals(ParagraphType.QUOTE, para.getType());
assertEquals(openDoubleQuote + "Yes, my Lord!"
+ closeDoubleQuote, para.getContent());
}
});
addTest(new TestCase("BasicSupport.processPara() apostrophe") {
@Override
public void test() throws Exception {
BasicSupportEmpty support = new BasicSupportEmpty() {
@Override
protected boolean isHtml() {
return true;
}
};
Paragraph para;
String text = "Nous étions en été, mais cela aurait être l'hiver quand nous n'étions encore qu'à Aubeuge";
para = support.processPara(text);
assertEquals(ParagraphType.NORMAL, para.getType());
assertEquals(text, para.getContent());
}
});
addTest(new TestCase("BasicSupport.processPara() words count") {
@Override
public void test() throws Exception {
BasicSupportEmpty support = new BasicSupportEmpty() {
@Override
protected boolean isHtml() {
return true;
}
};
Paragraph para;
para = support.processPara("«Yes, my Lord!»");
assertEquals(3, para.getWords());
para = support.processPara("One, twee, trois.");
assertEquals(3, para.getWords());
}
});
addTest(new TestCase("BasicSupport.requotify() words count") {
@Override
public void test() throws Exception {
BasicSupportEmpty support = new BasicSupportEmpty();
char openDoubleQuote = Instance.getTrans().getChar(
StringId.OPEN_DOUBLE_QUOTE);
char closeDoubleQuote = Instance.getTrans().getChar(
StringId.CLOSE_DOUBLE_QUOTE);
String content = null;
Paragraph para = null;
List