Fix new tests and make TestLWN work
[gofetch.git] / src / be / nikiroo / gofetch / test / TestBase.java
index e8bfde089785b1ce73408430aa5c4a850320f169..1da6b48a6a2f7451bb13425bb4a9d4125665f1bc 100644 (file)
@@ -19,6 +19,13 @@ import be.nikiroo.utils.test.TestLauncher;
 
 /**
  * Base class for {@link BasicSupport}s testing.
+ * <p>
+ * It will use the paths:
+ * <ul>
+ * <li><tt>test/XXX/source</tt>: the html source files</li>
+ * <li><tt>test/XXX/expected</tt>: the expected output</li>
+ * <li><tt>test/XXX/actual</tt>: the actual output of the last test</li>
+ * </ul>
  * 
  * @author niki
  */
@@ -28,15 +35,16 @@ abstract class TestBase extends TestLauncher {
                addTest(support);
        }
 
-       static protected InputStream doOpen(Map<URL, File> map, URL url)
-                       throws IOException {
+       static protected InputStream doOpen(BasicSupport support,
+                       Map<URL, File> map, URL url) throws IOException {
                File file = map.get(url);
                if (file == null) {
                        throw new FileNotFoundException("Test file not found for URL: "
                                        + url);
                }
 
-               return new FileInputStream(file);
+               return new FileInputStream("test/source/" + support.getType() + "/"
+                               + file);
 
        }
 
@@ -47,10 +55,15 @@ abstract class TestBase extends TestLauncher {
                                File expected = new File("test/expected/" + support.getType());
                                File actual = new File("test/result/" + support.getType());
 
+                               IOUtils.deltree(actual);
+                               expected.mkdirs();
+                               actual.mkdirs();
+
                                Output gopher = new Gopher(support.getType(), "", "", 70);
                                Output html = new Html(support.getType(), "", "", 80);
 
                                for (Story story : support.list()) {
+                                       support.fetch(story);
                                        IOUtils.writeSmallFile(new File(actual, story.getId()
                                                        + ".header"), gopher.exportHeader(story));
                                        IOUtils.writeSmallFile(