From a9173ad89b663b8f3977fe4fe627a90ec3a8f0ba Mon Sep 17 00:00:00 2001 From: gmungoc Date: Wed, 26 Aug 2015 15:26:46 +0100 Subject: [PATCH] JAL-1270 test separated out of JalviewChimeraView --- test/jalview/ext/jmol/JmolViewerTest.java | 90 +++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 test/jalview/ext/jmol/JmolViewerTest.java diff --git a/test/jalview/ext/jmol/JmolViewerTest.java b/test/jalview/ext/jmol/JmolViewerTest.java new file mode 100644 index 0000000..aa127cf --- /dev/null +++ b/test/jalview/ext/jmol/JmolViewerTest.java @@ -0,0 +1,90 @@ +package jalview.ext.jmol; + +import static org.testng.AssertJUnit.assertTrue; + +import jalview.api.structures.JalviewStructureDisplayI; +import jalview.bin.Cache; +import jalview.datamodel.SequenceI; +import jalview.gui.AlignFrame; +import jalview.gui.Preferences; +import jalview.gui.StructureViewer; +import jalview.gui.StructureViewer.ViewerType; +import jalview.io.FormatAdapter; + +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +@Test(singleThreaded = true) +public class JmolViewerTest +{ + + /** + * @throws java.lang.Exception + */ + @BeforeClass(alwaysRun = true) + public static void setUpBeforeClass() throws Exception + { + jalview.bin.Jalview.main(new String[] + { + "-noquestionnaire -nonews -props", + "test/jalview/ext/rbvi/chimera/testProps.jvprops" }); + } + + /** + * @throws java.lang.Exception + */ + @AfterClass + public static void tearDownAfterClass() throws Exception + { + jalview.gui.Desktop.instance.closeAll_actionPerformed(null); + } + + @Test(groups ={ "Functional" }) + public void testSingleSeqViewJMol() + { + Cache.setProperty(Preferences.STRUCTURE_DISPLAY, ViewerType.JMOL.name()); + String inFile = "examples/1gaq.txt"; + AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded( + inFile, FormatAdapter.FILE); + assertTrue("Didn't read input file " + inFile, af != null); + for (SequenceI sq : af.getViewport().getAlignment().getSequences()) + { + SequenceI dsq = sq.getDatasetSequence(); + while (dsq.getDatasetSequence() != null) + { + dsq = dsq.getDatasetSequence(); + } + if (dsq.getAllPDBEntries() != null && dsq.getAllPDBEntries().size() > 0) + { + for (int q = 0; q < dsq.getAllPDBEntries().size(); q++) + { + final StructureViewer structureViewer = new StructureViewer(af + .getViewport().getStructureSelectionManager()); + structureViewer.setViewerType(ViewerType.JMOL); + JalviewStructureDisplayI jmolViewer = structureViewer + .viewStructures(dsq.getAllPDBEntries().elementAt(q), + new SequenceI[] + { sq }, af.getCurrentView().getAlignPanel()); + /* + * Wait for viewer load thread to complete + */ + try + { + while (!jmolViewer.getBinding().isFinishedInit()) + { + Thread.sleep(500); + } + } catch (InterruptedException e) + { + } + + jmolViewer.closeViewer(true); + // todo: break here means only once through this loop? + break; + } + break; + } + } + } +} -- 1.7.10.2