+
+ @Test(groups = { "Functional" }, dataProvider = "allInputOperationsData")
+ public void testAllInputOperations(String expectedString,
+ String failureMsg)
+ {
+ Assert.assertTrue(successfulCMDs.contains(expectedString), failureMsg);
+ }
+
+ @Test(
+ groups =
+ { "Functional" },
+ dataProvider = "headlessModeOutputOperationsData")
+ public void testHeadlessModeOutputOperations(String harg, String type,
+ String fileName, boolean withAWT, int expectedMinFileSize,
+ int timeout)
+ {
+ String cmd = harg + type + " " + fileName;
+ // System.out.println(">>>>>>>>>>>>>>>> Command : " + cmd);
+ File file = new File(fileName);
+ file.deleteOnExit();
+ Worker worker = getJalviewDesktopRunner(withAWT, cmd, timeout);
+ assertNotNull(worker, "worker is null");
+ String msg = "Didn't create an output" + type + " file.[" + harg + "]";
+ assertTrue(file.exists(), msg);
+ FileAssert.assertFile(file, msg);
+ FileAssert.assertMinLength(file, expectedMinFileSize);
+ if (worker != null && worker.exit == null)
+ {
+ worker.interrupt();
+ Thread.currentThread().interrupt();
+ worker.process.destroy();
+ Assert.fail("Jalview did not exit after " + type
+ + " generation (try running test again to verify - timeout at "
+ + timeout + "ms). [" + harg + "]");
+ }
+ file.delete();
+ }
+
+ @DataProvider(name = "allInputOperationsData")
+ public Object[][] getHeadlessModeInputParams()
+ {
+ return new Object[][] {
+ // headless mode input operations
+ { "CMD [-color zappo] executed successfully!",
+ "Failed command : -color zappo" },
+ { "CMD [-props test/jalview/bin/testProps.jvprops] executed successfully!",
+ "Failed command : -props File" },
+ { "CMD [-sortbytree] executed successfully!",
+ "Failed command : -sortbytree" },
+ { "CMD [-jabaws http://www.compbio.dundee.ac.uk/jabaws] executed successfully!",
+ "Failed command : -jabaws http://www.compbio.dundee.ac.uk/jabaws" },
+ { "CMD [-open examples/uniref50.fa] executed successfully!",
+ "Failed command : -open examples/uniref50.fa" },
+ { "CMD [-nosortbytree] executed successfully!",
+ "Failed command : -nosortbytree" },
+ { "CMD [-features examples/testdata/plantfdx.features] executed successfully!",
+ "Failed command : -features examples/testdata/plantfdx.features" },
+ { "CMD [-annotations examples/testdata/plantfdx.annotations] executed successfully!",
+ "Failed command : -annotations examples/testdata/plantfdx.annotations" },
+ { "CMD [-tree examples/testdata/uniref50_test_tree] executed successfully!",
+ "Failed command : -tree examples/testdata/uniref50_test_tree" },
+ // non headless mode input operations
+ { "CMD [-nousagestats] executed successfully!",
+ "Failed command : -nousagestats" },
+ { "CMD [-noquestionnaire] executed successfully!",
+ "Failed command : -noquestionnaire" } };
+ }
+
+ @DataProvider(name = "headlessModeOutputOperationsData")
+ public static Object[][] getHeadlessModeOutputParams()
+ {
+ // JBPNote: I'm not clear why need to specify full path for output file
+ // when running tests on build server, but we will keep this patch for now
+ // since it works.
+ // https://issues.jalview.org/browse/JAL-1889?focusedCommentId=21609&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-21609
+ String workingDir = "test/jalview/bin/";
+ return new Object[][] { { "nodisplay -open examples/uniref50.fa",
+ " -eps", workingDir + "test_uniref50_out.eps", true,
+ MINFILESIZE_BIG, TEST_TIMEOUT },
+ { "nodisplay -open examples/uniref50.fa", " -eps",
+ workingDir + "test_uniref50_out.eps", false,
+ MINFILESIZE_BIG, TEST_TIMEOUT },
+ { "nogui -open examples/uniref50.fa", " -eps",
+ workingDir + "test_uniref50_out.eps", true, MINFILESIZE_BIG,
+ TEST_TIMEOUT },
+ { "nogui -open examples/uniref50.fa", " -eps",
+ workingDir + "test_uniref50_out.eps", false,
+ MINFILESIZE_BIG, TEST_TIMEOUT },
+ { "headless -open examples/uniref50.fa", " -eps",
+ workingDir + "test_uniref50_out.eps", true, MINFILESIZE_BIG,
+ TEST_TIMEOUT },
+ { "headless -open examples/uniref50.fa", " -svg",
+ workingDir + "test_uniref50_out.svg", false,
+ MINFILESIZE_BIG, TEST_TIMEOUT },
+ { "headless -open examples/uniref50.fa", " -png",
+ workingDir + "test_uniref50_out.png", true, MINFILESIZE_BIG,
+ TEST_TIMEOUT },
+ { "headless -open examples/uniref50.fa", " -html",
+ workingDir + "test_uniref50_out.html", true,
+ MINFILESIZE_BIG, TEST_TIMEOUT },
+ { "headless -open examples/uniref50.fa", " -fasta",
+ workingDir + "test_uniref50_out.mfa", true, MINFILESIZE_SMALL,
+ TEST_TIMEOUT },
+ { "headless -open examples/uniref50.fa", " -clustal",
+ workingDir + "test_uniref50_out.aln", true, MINFILESIZE_SMALL,
+ TEST_TIMEOUT },
+ { "headless -open examples/uniref50.fa", " -msf",
+ workingDir + "test_uniref50_out.msf", true, MINFILESIZE_SMALL,
+ TEST_TIMEOUT },
+ { "headless -open examples/uniref50.fa", " -pileup",
+ workingDir + "test_uniref50_out.aln", true, MINFILESIZE_SMALL,
+ TEST_TIMEOUT },
+ { "headless -open examples/uniref50.fa", " -pir",
+ workingDir + "test_uniref50_out.pir", true, MINFILESIZE_SMALL,
+ TEST_TIMEOUT },
+ { "headless -open examples/uniref50.fa", " -pfam",
+ workingDir + "test_uniref50_out.pfam", true, MINFILESIZE_SMALL,
+ TEST_TIMEOUT },
+ { "headless -open examples/uniref50.fa", " -blc",
+ workingDir + "test_uniref50_out.blc", true, MINFILESIZE_SMALL,
+ TEST_TIMEOUT },
+ { "headless -open examples/uniref50.fa", " -jalview",
+ workingDir + "test_uniref50_out.jvp", true, MINFILESIZE_SMALL,
+ TEST_TIMEOUT }, };
+ }