Commit | Line | Data |
---|---|---|
92fb0719 NR |
1 | package be.nikiroo.fanfix.test; |
2 | ||
22848428 NR |
3 | import java.io.File; |
4 | import java.io.FileOutputStream; | |
5 | import java.io.IOException; | |
6 | import java.util.Properties; | |
7 | ||
581d42c0 | 8 | import be.nikiroo.fanfix.Instance; |
22848428 NR |
9 | import be.nikiroo.fanfix.bundles.ConfigBundle; |
10 | import be.nikiroo.utils.IOUtils; | |
2aac79c7 | 11 | import be.nikiroo.utils.TempFiles; |
22848428 | 12 | import be.nikiroo.utils.resources.Bundles; |
92fb0719 NR |
13 | import be.nikiroo.utils.test.TestLauncher; |
14 | ||
15 | /** | |
16 | * Tests for Fanfix. | |
17 | * | |
18 | * @author niki | |
19 | */ | |
20 | public class Test extends TestLauncher { | |
2aac79c7 NR |
21 | /** |
22 | * The temporary files handler. | |
23 | */ | |
24 | static TempFiles tempFiles; | |
25 | ||
2a25f781 NR |
26 | /** |
27 | * Create the Fanfix {@link TestLauncher}. | |
28 | * | |
29 | * @param args | |
30 | * the arguments to configure the number of columns and the ok/ko | |
31 | * {@link String}s | |
32 | */ | |
92fb0719 | 33 | public Test(String[] args) { |
68e370a4 | 34 | super("Fanfix", args); |
581d42c0 | 35 | Instance.setTraceHandler(null); |
68e370a4 | 36 | addSeries(new BasicSupportTest(args)); |
6cac0e45 | 37 | addSeries(new LibraryTest(args)); |
f7460e4c | 38 | addSeries(new ConversionTest(args)); |
92fb0719 NR |
39 | } |
40 | ||
41 | /** | |
42 | * Main entry point of the program. | |
43 | * | |
44 | * @param args | |
45 | * the arguments passed to the {@link TestLauncher}s. | |
22848428 | 46 | * @throws IOException |
2a25f781 | 47 | * in case of I/O error |
92fb0719 | 48 | */ |
22848428 | 49 | static public void main(String[] args) throws IOException { |
2aac79c7 NR |
50 | int result = 0; |
51 | tempFiles = new TempFiles("fanfix-test"); | |
9fe3f177 | 52 | try { |
2aac79c7 NR |
53 | File tmpConfig = tempFiles.createTempDir("fanfix-config"); |
54 | File tmpCache = tempFiles.createTempDir("fanfix-cache"); | |
55 | ||
56 | FileOutputStream out = null; | |
57 | try { | |
58 | out = new FileOutputStream(new File(tmpConfig, | |
59 | "config.properties")); | |
60 | Properties props = new Properties(); | |
61 | props.setProperty("CACHE_DIR", tmpCache.getAbsolutePath()); | |
62 | props.store(out, null); | |
63 | } finally { | |
64 | if (out != null) { | |
65 | out.close(); | |
66 | } | |
9fe3f177 | 67 | } |
22848428 | 68 | |
2aac79c7 NR |
69 | ConfigBundle config = new ConfigBundle(); |
70 | Bundles.setDirectory(tmpConfig.getAbsolutePath()); | |
71 | config.updateFile(tmpConfig.getPath()); | |
22848428 | 72 | |
2aac79c7 | 73 | System.setProperty("CONFIG_DIR", tmpConfig.getAbsolutePath()); |
22848428 | 74 | |
2aac79c7 | 75 | result = new Test(args).launch(); |
22848428 | 76 | |
2aac79c7 NR |
77 | IOUtils.deltree(tmpConfig); |
78 | IOUtils.deltree(tmpCache); | |
79 | } finally { | |
80 | // Test temp files | |
81 | tempFiles.close(); | |
82 | ||
83 | // This is usually done in Fanfix.Main: | |
84 | Instance.getTempFiles().close(); | |
85 | } | |
22848428 NR |
86 | |
87 | System.exit(result); | |
92fb0719 NR |
88 | } |
89 | } |