package test.app;
import static org.fest.assertions.Assertions.assertThat;
import static org.fest.swing.finder.JFileChooserFinder.findFileChooser;
import java.io.File;
import javax.swing.JButton;
import org.fest.swing.core.GenericTypeMatcher;
import org.fest.swing.fixture.JFileChooserFixture;
import org.fest.swing.fixture.JOptionPaneFixture;
import org.fest.swing.fixture.JTabbedPaneFixture;
import org.fest.swing.image.ScreenshotTaker;
import org.junit.Test;
public class DiscreteTutorialTest extends SPREADBase {
@Test
public void testDiscreteTutorial() throws Exception {
ScreenshotTaker screenshotTaker = new ScreenshotTaker();
JTabbedPaneFixture f = spreadFrame.tabbedPane();
f.requireVisible();
String[] titles = f.tabTitles();
assertArrayEquals(titles,"[Discrete Tree, Discrete Bayes Factors, Continuous Tree, Time Slicer, Terminal]");
f = f.selectTab("Discrete Tree");
assertThat(f).isNotNull();
spreadFrame.button(new GenericTypeMatcher<JButton>(JButton.class, true) {
@Override
protected boolean isMatching(JButton button) {
// return button.getLabel().equals("Open");
return button.getText().equals("Open");
}
}).click();
JFileChooserFixture fileChooser = findFileChooser().using(robot());
fileChooser.setCurrentDirectory(new File("src/data/tutorial/phylogeography_discrete"));
fileChooser.selectFile(new File("H5N1.tree")).approve();
spreadFrame.comboBox("state").selectItem("location");
spreadFrame.button(new GenericTypeMatcher<JButton>(JButton.class, true) {
@Override
protected boolean isMatching(JButton button) {
// return button.getLabel().equals("Setup");
return button.getText().equals("Setup");
}
}).click();
spreadFrame.button(new GenericTypeMatcher<JButton>(JButton.class, true) {
@Override
protected boolean isMatching(JButton button) {
// return button.getLabel().equals("Load");
return button.getText().equals("Load");
}
}).click();
fileChooser = findFileChooser().using(robot());
fileChooser.setCurrentDirectory(new File("src/data/tutorial/phylogeography_discrete"));
fileChooser.selectFile(new File("H5N1locations.dat")).approve();
spreadFrame.button(new GenericTypeMatcher<JButton>(JButton.class, true) {
@Override
protected boolean isMatching(JButton button) {
// return button.getLabel().equals("Done");
return button.getText().equals("Done");
}
}).click();
spreadFrame.panel("Output.spinWidget").click();
spreadFrame.button(new GenericTypeMatcher<JButton>(JButton.class, true) {
@Override
protected boolean isMatching(JButton button) {
// return button.getLabel().equals("Plot");
return button.getText().equals("Plot");
}
}).click();
try {
JOptionPaneFixture optionPane = new JOptionPaneFixture(robot());
optionPane.okButton().click();
} catch (Exception e) {
// ignore
}
new File("src/data/tutorial/phylogeography_discrete/output.kml").delete();
spreadFrame.button(new GenericTypeMatcher<JButton>(JButton.class, true) {
@Override
protected boolean isMatching(JButton button) {
// return button.getLabel().equals("Generate");
return button.getText().equals("Generate");
}
}).click();
Thread.sleep(300);
if (!(new File("src/data/tutorial/phylogeography_discrete/output.kml").exists())) {
throw new Exception("Expected file output.kml to be generated");
}
new File("SPREADdiscrete.png").delete();
screenshotTaker.saveComponentAsPng(spreadFrame.target, "SPREADdiscrete.png");
} // testDiscreteTutorial
}