JAL-1270 test separated out of JalviewChimeraView
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Wed, 26 Aug 2015 14:26:46 +0000 (15:26 +0100)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Wed, 26 Aug 2015 14:26:46 +0000 (15:26 +0100)
test/jalview/ext/jmol/JmolViewerTest.java [new file with mode: 0644]

diff --git a/test/jalview/ext/jmol/JmolViewerTest.java b/test/jalview/ext/jmol/JmolViewerTest.java
new file mode 100644 (file)
index 0000000..aa127cf
--- /dev/null
@@ -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;
+      }
+    }
+  }
+}