X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=test%2Fjalview%2Fext%2Frbvi%2Fchimera%2FJalviewChimeraView.java;h=93a98b8cfeea2defd81d1db985227c1d8eaaf960;hb=ea3d24d953af89ca95d4480371149b70abbfcc67;hp=858806b0dcb509f815db9d62eb920df47074283d;hpb=c4ec878c9cb59fc40a88ed8ecdf5fda46f3de111;p=jalview.git diff --git a/test/jalview/ext/rbvi/chimera/JalviewChimeraView.java b/test/jalview/ext/rbvi/chimera/JalviewChimeraView.java index 858806b..93a98b8 100644 --- a/test/jalview/ext/rbvi/chimera/JalviewChimeraView.java +++ b/test/jalview/ext/rbvi/chimera/JalviewChimeraView.java @@ -1,82 +1,113 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.ext.rbvi.chimera; -import static org.junit.Assert.assertTrue; -import jalview.datamodel.PDBEntry; +import static org.testng.AssertJUnit.assertEquals; +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.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; +@Test(singleThreaded = true) public class JalviewChimeraView { /** * @throws java.lang.Exception */ - @BeforeClass + @BeforeClass(alwaysRun = true) public static void setUpBeforeClass() throws Exception { - jalview.bin.Jalview.main(new String[] - { "-noquestionnaire -nonews -props", "test/src/jalview/ext/rbvi/chimera/testProps.jvprops" }); + jalview.bin.Jalview.main(new String[] { + "-noquestionnaire -nonews -props", + "test/jalview/ext/rbvi/chimera/testProps.jvprops" }); } /** * @throws java.lang.Exception */ - @AfterClass + @AfterClass(alwaysRun = true) public static void tearDownAfterClass() throws Exception { jalview.gui.Desktop.instance.closeAll_actionPerformed(null); - } - - @Test - public void testSingleSeqView() + @Test(groups = { "Functional" }) + public void testSingleSeqViewChimera() { + Cache.setProperty(Preferences.STRUCTURE_DISPLAY, + ViewerType.CHIMERA.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()) + for (SequenceI sq : af.getViewport().getAlignment().getSequences()) { - SequenceI dsq=sq.getDatasetSequence(); - while (dsq.getDatasetSequence()!=null) + System.out.println("** sq=" + sq.getName()); + SequenceI dsq = sq.getDatasetSequence(); + while (dsq.getDatasetSequence() != null) { - dsq=dsq.getDatasetSequence(); + dsq = dsq.getDatasetSequence(); } - if (dsq.getPDBId()!=null && dsq.getPDBId().size()>0) { - for (int q=0;q 0) + { + for (int q = 0; q < dsq.getAllPDBEntries().size(); q++) { - new StructureViewer(af.getViewport() - .getStructureSelectionManager()).viewStructures( - ViewerType.JMOL, - af.getCurrentView().getAlignPanel(), - new PDBEntry[] { (PDBEntry)dsq.getPDBId().elementAt(q) }, - new SequenceI[][] { new SequenceI[] { sq } }); - - new StructureViewer(af.getViewport() - .getStructureSelectionManager()).viewStructures( - ViewerType.CHIMERA, - af.getCurrentView().getAlignPanel(), - new PDBEntry[] { (PDBEntry)dsq.getPDBId().elementAt(q) }, - new SequenceI[][] { new SequenceI[] { sq } }); + final StructureViewer structureViewer = new StructureViewer(af + .getViewport().getStructureSelectionManager()); + structureViewer.setViewerType(ViewerType.CHIMERA); + JalviewStructureDisplayI chimeraViewer = structureViewer + .viewStructures(dsq.getAllPDBEntries().elementAt(q), + new SequenceI[] { sq }, af.getCurrentView() + .getAlignPanel()); + /* + * Wait for viewer load thread to complete + */ + while (!chimeraViewer.getBinding().isFinishedInit()) + { + try + { + Thread.sleep(500); + } catch (InterruptedException e) + { + } + } + assertEquals(1, chimeraViewer.getBinding().getPdbCount()); + chimeraViewer.closeViewer(true); // todo: break here means only once through this loop? break; } break; } - } - // try { - // why? -// Thread.sleep(200000); -// } catch (InterruptedException q) -// { - // } + } } }