+ { "~/hello/sailor", homeDir, "/hello", "sailor", "~" }, //
+ { "./examples/uniref50.fa", "./", "examples", "uniref50", "Users" }, //
+ { "./examples/uniref50.1.fa", "./", "examples", "uniref50.1",
+ "Users" }, //
+ { "examples/uniref50.fa", "examples", "examples", "uniref50",
+ ".fa" }, //
+ };
+ }
+
+ @Test(groups = "Functional", dataProvider = "convertWildcardsToPathData")
+ public void convertWildcardsToPathTest(String value, String wildcard,
+ String dirname, String basename, String path)
+ {
+
+ Assert.assertEquals(
+ FileUtils.convertWildcardsToPath(value, wildcard, dirname,
+ basename),
+ path, "Conversion of wildcard output path is not right.");
+
+ }
+
+ @DataProvider(name = "convertWildcardsToPathData")
+ public Object[][] convertWildcardsToPathData()
+ {
+ return new Object[][] {
+ /*
+ * cmdline args
+ * Arg (null if only testing headless)
+ * String value if there is one (null otherwise)
+ * boolean value if String value is null
+ * expected value of isHeadless()
+ */
+ /*
+ */
+ { "*/*", "*", "{dirname}", "{basename}", "{dirname}/{basename}" },
+ { "*/", "*", "{dirname}", "{basename}", "{dirname}/" },
+ { "/*", "*", "{dirname}", "{basename}", "/{basename}" },
+ { "*", "*", "{dirname}", "{basename}", "{basename}" },
+ { "tmp/output/*/file-*.stk", "*", "{dirname}", "{basename}",
+ "tmp/output/{dirname}/file-{basename}.stk" },
+ { "/*.file", "*", "{dirname}", "{basename}", "/{basename}.file" },
+ { "*/file.stk", "*", "{dirname}", "{basename}",
+ "{dirname}/file.stk" },
+ { "tmp/abc*def/file.stk", "*", "{dirname}", "{basename}",
+ "tmp/abc{dirname}def/file.stk" },
+ { "a*b/c*d", "*", "{dirname}", "{basename}",
+ "a{dirname}b/c{basename}d" },
+ { "a*b/c", "*", "{dirname}", "{basename}", "a{dirname}b/c" },
+ { "a/b*c", "*", "{dirname}", "{basename}", "a/b{basename}c" },
+ { "a*b", "*", "{dirname}", "{basename}", "a{basename}b" },
+ { "aSTARb/cSTARd", "STAR", "BEFORE", "AFTER", "aBEFOREb/cAFTERd" },
+ { "aSTARb/c", "STAR", "BEFORE", "AFTER", "aBEFOREb/c" },
+ { "a/bSTARc", "STAR", "BEFORE", "AFTER", "a/bAFTERc" },
+ { "aSTARb", "STAR", "BEFORE", "AFTER", "aAFTERb" },
+ //
+ };
+ }
+
+ @Test(
+ groups = "Functional",
+ dataProvider = "stringFilenamesBaseAndExtensionsData")
+ public void stringGetBaseAndExtensionTest(String filename,
+ String extension, String base)
+ {
+ String thisBase = FileUtils.getBase(filename);
+ Assert.assertEquals(thisBase, base,
+ "base part of path and filename not as expected");
+ String thisExtension = FileUtils.getExtension(filename);
+ Assert.assertEquals(thisExtension, extension,
+ "extension part of filename not as expected");
+ }
+
+ @DataProvider(name = "stringFilenamesBaseAndExtensionsData")
+ public Object[][] stringFilenamesBaseAndExtensionsData()
+ {
+ return new Object[][] {
+ /*
+ * String full URL or path
+ * String base the above but without the extension if there is one
+ * String extension the filename extension if there is one
+ */
+ /*
+ */
+ { "/examples/uniref50.fa", "fa", "/examples/uniref50." },
+ { "/examples/uniref50", null, "/examples/uniref50" },
+ { "/examples/.uniref50", null, "/examples/.uniref50" },
+ { "/exampl.es/uniref50", null, "/exampl.es/uniref50" },
+ { "/examples/uniref50.", "", "/examples/uniref50." },
+ { "examples/uniref50.fa", "fa", "examples/uniref50." },
+ { "examples/uniref50", null, "examples/uniref50" },
+ { "examples/.uniref50", null, "examples/.uniref50" },
+ { "exampl.es/uniref50", null, "exampl.es/uniref50" },
+ { "examples/uniref50.", "", "examples/uniref50." },
+ { "https://www.jalview.org:443/examples/uniref50.fa", "fa",
+ "https://www.jalview.org:443/examples/uniref50." },
+ { "https://www.jalview.org:443/examples/uniref50", null,
+ "https://www.jalview.org:443/examples/uniref50" },
+ { "https://www.jalview.org:443/examples/.uniref50", null,
+ "https://www.jalview.org:443/examples/.uniref50" },
+ { "https://www.jalview.org:443/exampl.es/uniref50", null,
+ "https://www.jalview.org:443/exampl.es/uniref50" },
+ { "https://www.jalview.org:443/examples/uniref50.", "",
+ "https://www.jalview.org:443/examples/uniref50." },
+ /*
+ */
+ //