Move default tmp dirs, fix BLANK handling
[fanfix.git] / src / be / nikiroo / fanfix / test / BasicSupportTest.java
1 package be.nikiroo.fanfix.test;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5 import java.net.URL;
6 import java.util.ArrayList;
7 import java.util.List;
8 import java.util.Map.Entry;
9
10 import be.nikiroo.fanfix.data.MetaData;
11 import be.nikiroo.fanfix.data.Paragraph;
12 import be.nikiroo.fanfix.data.Paragraph.ParagraphType;
13 import be.nikiroo.fanfix.supported.BasicSupport;
14 import be.nikiroo.utils.test.TestCase;
15 import be.nikiroo.utils.test.TestLauncher;
16
17 public class BasicSupportTest extends TestLauncher {
18
19 public BasicSupportTest(String[] args) {
20 super("BasicSupport", args);
21
22 addSeries(new TestLauncher("General", args) {
23 {
24 addTest(new TestCase("BasicSupport.makeParagraphs()") {
25 @Override
26 public void test() throws Exception {
27 BasicSupportEmpty support = new BasicSupportEmpty() {
28 @Override
29 protected boolean isHtml() {
30 return true;
31 }
32
33 @Override
34 public void fixBlanksBreaks(List<Paragraph> paras) {
35 }
36
37 @Override
38 protected List<Paragraph> requotify(Paragraph para) {
39 List<Paragraph> paras = new ArrayList<Paragraph>(
40 1);
41 paras.add(para);
42 return paras;
43 }
44 };
45
46 List<Paragraph> paras = null;
47
48 paras = support.makeParagraphs(null, "");
49 assertEquals(
50 "An empty content should not generate paragraphs",
51 0, paras.size());
52
53 paras = support.makeParagraphs(null,
54 "Line 1</p><p>Line 2</p><p>Line 3</p>");
55 assertEquals(5, paras.size());
56 assertEquals("Line 1", paras.get(0).getContent());
57 assertEquals(ParagraphType.BLANK, paras.get(1)
58 .getType());
59 assertEquals("Line 2", paras.get(2).getContent());
60 assertEquals(ParagraphType.BLANK, paras.get(3)
61 .getType());
62 assertEquals("Line 3", paras.get(4).getContent());
63
64 paras = support.makeParagraphs(null,
65 "<p>Line1</p><p>Line2</p><p>Line3</p>");
66 assertEquals(6, paras.size());
67 }
68 });
69
70 addTest(new TestCase("BasicSupport.removeDoubleBlanks()") {
71 @Override
72 public void test() throws Exception {
73 BasicSupportEmpty support = new BasicSupportEmpty() {
74 @Override
75 protected boolean isHtml() {
76 return true;
77 }
78 };
79
80 List<Paragraph> paras = null;
81
82 paras = support
83 .makeParagraphs(null,
84 "<p>Line1</p><p>Line2</p><p>Line3<br/><br><p></p>");
85 assertEquals(5, paras.size());
86
87 paras = support
88 .makeParagraphs(null,
89 "<p>Line1</p><p>Line2</p><p>Line3<br/><br><p></p>* * *");
90 assertEquals(5, paras.size());
91
92 paras = support.makeParagraphs(null, "1<p>* * *<p>2");
93 assertEquals(3, paras.size());
94 assertEquals(ParagraphType.BREAK, paras.get(1)
95 .getType());
96
97 paras = support.makeParagraphs(null,
98 "1<p><br/><p>* * *<p>2");
99 assertEquals(3, paras.size());
100 assertEquals(ParagraphType.BREAK, paras.get(1)
101 .getType());
102
103 paras = support.makeParagraphs(null,
104 "1<p>* * *<br/><p><br><p>2");
105 assertEquals(3, paras.size());
106 assertEquals(ParagraphType.BREAK, paras.get(1)
107 .getType());
108
109 paras = support.makeParagraphs(null,
110 "1<p><br/><br>* * *<br/><p><br><p>2");
111 assertEquals(3, paras.size());
112 assertEquals(ParagraphType.BREAK, paras.get(1)
113 .getType());
114 }
115 });
116 }
117 });
118 }
119
120 private class BasicSupportEmpty extends BasicSupport {
121 @Override
122 protected String getSourceName() {
123 return null;
124 }
125
126 @Override
127 protected boolean supports(URL url) {
128 return false;
129 }
130
131 @Override
132 protected boolean isHtml() {
133 return false;
134 }
135
136 @Override
137 protected MetaData getMeta(URL source, InputStream in)
138 throws IOException {
139 return null;
140 }
141
142 @Override
143 protected String getDesc(URL source, InputStream in) throws IOException {
144 return null;
145 }
146
147 @Override
148 protected List<Entry<String, URL>> getChapters(URL source,
149 InputStream in) throws IOException {
150 return null;
151 }
152
153 @Override
154 protected String getChapterContent(URL source, InputStream in,
155 int number) throws IOException {
156 return null;
157 }
158
159 @Override
160 // and make it public!
161 public List<Paragraph> makeParagraphs(URL source, String content)
162 throws IOException {
163 return super.makeParagraphs(source, content);
164 }
165
166 @Override
167 // and make it public!
168 public void fixBlanksBreaks(List<Paragraph> paras) {
169 super.fixBlanksBreaks(paras);
170 }
171 }
172 }