X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=blobdiff_plain;f=test%2Fjalview%2Fproject%2FJalview2xmlTests.java;h=5dd3040f9a354fd396098f3d6ceb50065217cb18;hp=72cbc50c7136eaf6f0ec7827df08635fbbf56d51;hb=8a6ddd92f9f3573caf58ff9060347a9d4afdbd00;hpb=2574bf4ab96840e3e064a0e4de521973fd299edc diff --git a/test/jalview/project/Jalview2xmlTests.java b/test/jalview/project/Jalview2xmlTests.java index 72cbc50..5dd3040 100644 --- a/test/jalview/project/Jalview2xmlTests.java +++ b/test/jalview/project/Jalview2xmlTests.java @@ -1045,10 +1045,46 @@ public class Jalview2xmlTests extends Jalview2xmlBase */ public void testMergeDatasetsforViews() throws IOException { + // simple project - two views on one alignment AlignFrame af = new FileLoader(false).LoadFileWaitTillLoaded( "examples/testdata/projects/twoViews.jvp", DataSourceType.FILE); assertNotNull(af); assertTrue(af.getAlignPanels().size() > 1); + verifyDs(af); + } + + /** + * pre 2.11 - jalview 2.10 erroneously created new dataset entries for each + * view (JAL-3171) this test ensures we can import and merge those views This + * is a more complex project + */ + public void testMergeDatasetsforManyViews() throws IOException + { + Desktop.instance.closeAll_actionPerformed(null); + + // complex project - one dataset, several views on several alignments + AlignFrame af = new FileLoader(false).LoadFileWaitTillLoaded( + "examples/testdata/projects/manyViews.jvp", + DataSourceType.FILE); + assertNotNull(af); + + AlignmentI ds = null; + for (AlignFrame alignFrame : Desktop.getAlignFrames()) + { + if (ds == null) + { + ds = verifyDs(alignFrame); + } + else + { + // check that this frame's dataset matches the last + assertTrue(ds == verifyDs(alignFrame)); + } + } + } + + private AlignmentI verifyDs(AlignFrame af) + { AlignmentI ds = null; for (AlignmentViewPanel ap : af.getAlignPanels()) { @@ -1062,5 +1098,6 @@ public class Jalview2xmlTests extends Jalview2xmlBase "Dataset was not the same for imported 2.10.5 project with several alignment views"); } } + return ds; } }