package test.app; import static org.fest.assertions.Assertions.assertThat; import static org.fest.swing.edt.GuiActionRunner.execute; import static org.fest.swing.finder.JFileChooserFinder.findFileChooser; import java.awt.Dimension; import java.awt.FileDialog; import java.io.File; import javax.swing.JFrame; import org.fest.swing.annotation.RunsInEDT; import org.fest.swing.edt.GuiQuery; import org.fest.swing.edt.GuiTask; import org.fest.swing.fixture.FrameFixture; import org.fest.swing.fixture.JFileChooserFixture; import org.fest.swing.junit.testcase.FestSwingJUnitTestCase; import app.SpreadApp; /** * Basic gui test methods for SPREAD * */ public class SPREADBase extends FestSwingJUnitTestCase { protected FrameFixture spreadFrame; protected SpreadApp spreadApp; protected void onSetUp() { spreadFrame = new FrameFixture(robot(), createNewEditor()); spreadFrame.show(); spreadFrame.resizeTo(new Dimension(1224, 786)); spreadApp = SpreadApp.gui; } @RunsInEDT private static JFrame createNewEditor() { return execute(new GuiQuery<JFrame>() { protected JFrame executeInEDT() throws Throwable { SpreadApp gui = new SpreadApp(); JFrame frame = gui.launchFrame(); return frame; } }); } void warning(String str) { System.err.println("\n\n=====================================================\n"); System.err.println(str); System.err.println("\n=====================================================\n\n"); } // for handling file open events on Mac FileDialog fileDlg = null; String _dir; File _file; boolean isMac() { return System.getProperty("os.name").toLowerCase().startsWith("mac os x"); } void importAlignment(String dir, File ... files) { if (!isMac()) { spreadFrame.menuItemWithPath("File", "Import Alignment").click(); JFileChooserFixture fileChooser = findFileChooser().using(robot()); fileChooser.setCurrentDirectory(new File(dir)); fileChooser.selectFiles(files).approve(); } else { this._dir = dir; for (File file : files) { _file = new File(dir + "/" + file.getName()); execute(new GuiTask() { protected void executeInEDT() { try { // spreadApp.doc.importNexus(_file); } catch (Exception e) { e.printStackTrace(); } } }); } } } void assertArrayEquals(Object [] o, String array) { String str = array.substring(1, array.length() - 1); String [] strs = str.split(", "); for (int i = 0; i < o.length && i < strs.length; i++) { assertThat(strs[i]).as("expected array value " + strs[i] + " instead of " + o[i].toString()).isEqualTo(o[i].toString()); } assertThat(o.length).as("arrays do not match: different lengths").isEqualTo(strs.length); } }