X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fio%2FCrossRef2xmlTests.java;fp=test%2Fjalview%2Fio%2FCrossRef2xmlTests.java;h=ae5ed2598f64008929f5240f273ee7ea2da0fc8f;hb=2d2853c51b3fd43918112e4f9a65bdcdcc2e43a5;hp=53a0acb864ace38b2ef6d5c462cf9cc49ce076ff;hpb=83642b44f7e3ba17c202113a435d72a0e2d9118b;p=jalview.git diff --git a/test/jalview/io/CrossRef2xmlTests.java b/test/jalview/io/CrossRef2xmlTests.java index 53a0acb..ae5ed25 100644 --- a/test/jalview/io/CrossRef2xmlTests.java +++ b/test/jalview/io/CrossRef2xmlTests.java @@ -20,6 +20,10 @@ */ package jalview.io; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertTrue; + import jalview.analysis.CrossRef; import jalview.api.AlignmentViewPanel; import jalview.datamodel.AlignedCodonFrame; @@ -60,6 +64,51 @@ public class CrossRef2xmlTests extends Jalview2xmlBase JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); } + @Test(groups = { "Functional" }, enabled = true) + public void openCrossrefsForEnsemblTwice() + { + AlignFrame af = new FileLoader(false).LoadFileWaitTillLoaded( + "examples/testdata/CantShowEnsemblCrossrefsTwice.jvp", + DataSourceType.FILE); + assertNotNull(af, "Couldn't load test's project."); + AlignmentI origAlig = af.getViewport().getAlignment(); + List source = new CrossRef(origAlig.getSequencesArray(), + origAlig.getDataset()).findXrefSourcesForSequences(true); + assertEquals(source.size(), 1, "Expected just one crossref to show."); + List views; + { + // try to show once - in a code block so handler is forgotten about + CrossRefAction xref1 = CrossRefAction.getHandlerFor( + origAlig.getSequencesArray(), true, source.get(0), af); + try + { + xref1.run(); + views = (List) PA.getValue(xref1, "xrefViews"); + assertTrue(views.size() > 0, + "Couldn't get cross ref on first attempt (SERIOUS FAIL)."); + } catch (Exception ex) + { + Assert.fail("Unexpected Exception for first xref action", ex); + } + } + + views = null; + // now just try it again + CrossRefAction xref2 = CrossRefAction.getHandlerFor( + origAlig.getSequencesArray(), true, source.get(0), af); + try + { + xref2.run(); + views = (List) PA.getValue(xref2, "xrefViews"); + assertTrue(views.size() > 0, + "Couldn't get cross ref on second attempt (SERIOUS FAIL)."); + } catch (Exception ex) + { + Assert.fail("Unexpected Exception for second xref action", ex); + } + // TODO : check that both views contain the same data + } + @DataProvider(name = "initialAccessions") static Object[][] getAccessions() {