X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fgui%2FAlignViewportTest.java;h=b2286e006b51b06aa99a8aeb5debafe895fda7e9;hb=b4d2b6a2ed131265ed599db27de9b82aaf010400;hp=d6b2454c716ba86d673c8626cf996837f3d0f318;hpb=7d67fb613ec026dc9a265e351e7fab542e3f1d61;p=jalview.git diff --git a/test/jalview/gui/AlignViewportTest.java b/test/jalview/gui/AlignViewportTest.java index d6b2454..b2286e0 100644 --- a/test/jalview/gui/AlignViewportTest.java +++ b/test/jalview/gui/AlignViewportTest.java @@ -38,6 +38,7 @@ import jalview.datamodel.PDBEntry.Type; import jalview.datamodel.SearchResults; import jalview.datamodel.SearchResultsI; import jalview.datamodel.Sequence; +import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; import jalview.io.DataSourceType; import jalview.io.FileLoader; @@ -45,10 +46,12 @@ import jalview.schemes.ColourSchemeI; import jalview.schemes.PIDColourScheme; import jalview.structure.StructureSelectionManager; import jalview.util.MapList; +import jalview.viewmodel.ViewportRanges; import java.util.ArrayList; import java.util.List; +import org.testng.Assert; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -56,6 +59,13 @@ import org.testng.annotations.Test; public class AlignViewportTest { + @BeforeClass(alwaysRun = true) + public void setUpJvOptionPane() + { + JvOptionPane.setInteractiveMode(false); + JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); + } + AlignmentI al; AlignViewport testee; @@ -63,7 +73,8 @@ public class AlignViewportTest @BeforeClass(alwaysRun = true) public static void setUpBeforeClass() throws Exception { - Jalview.main(new String[] { "-props", "test/jalview/testProps.jvprops" }); + Jalview.main(new String[] { "-nonews", "-props", + "test/jalview/testProps.jvprops" }); } @BeforeMethod(alwaysRun = true) @@ -150,7 +161,7 @@ public class AlignViewportTest acf2.addMap(s1, s1, new MapList(new int[] { 1, 4 }, new int[] { 4, 1 }, 1, 1)); - List mappings = new ArrayList(); + List mappings = new ArrayList<>(); mappings.add(acf1); mappings.add(acf2); af1.getViewport().getAlignment().setCodonFrames(mappings); @@ -207,11 +218,11 @@ public class AlignViewportTest acf3.addMap(cs2, cs2, new MapList(new int[] { 1, 12 }, new int[] { 1, 12 }, 1, 1)); - List mappings1 = new ArrayList(); + List mappings1 = new ArrayList<>(); mappings1.add(acf1); af1.getViewport().getAlignment().setCodonFrames(mappings1); - List mappings2 = new ArrayList(); + List mappings2 = new ArrayList<>(); mappings2.add(acf2); mappings2.add(acf3); af2.getViewport().getAlignment().setCodonFrames(mappings2); @@ -270,12 +281,12 @@ public class AlignViewportTest acf3.addMap(cs2, cs2, new MapList(new int[] { 1, 12 }, new int[] { 1, 12 }, 1, 1)); - List mappings1 = new ArrayList(); + List mappings1 = new ArrayList<>(); mappings1.add(acf1); mappings1.add(acf2); af1.getViewport().getAlignment().setCodonFrames(mappings1); - List mappings2 = new ArrayList(); + List mappings2 = new ArrayList<>(); mappings2.add(acf2); mappings2.add(acf3); af2.getViewport().getAlignment().setCodonFrames(mappings2); @@ -318,6 +329,8 @@ public class AlignViewportTest Boolean.TRUE.toString()); Cache.applicationProperties.setProperty("SHOW_CONSERVATION", Boolean.FALSE.toString()); + Cache.applicationProperties.setProperty("SHOW_OCCUPANCY", + Boolean.FALSE.toString()); Cache.applicationProperties.setProperty("SHOW_IDENTITY", Boolean.FALSE.toString()); AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( @@ -338,16 +351,17 @@ public class AlignViewportTest public void testSetGlobalColourScheme() { /* - * test for JAL-2283 don't inadvertently turn on colour by conservation + * test for JAL-2283: don't inadvertently turn on colour by conservation */ - Cache.applicationProperties.setProperty("DEFAULT_COLOUR_PROT", "NONE"); + Cache.applicationProperties.setProperty("DEFAULT_COLOUR_PROT", "None"); Cache.applicationProperties.setProperty("SHOW_CONSERVATION", Boolean.TRUE.toString()); AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( "examples/uniref50.fa", DataSourceType.FILE); ColourSchemeI cs = new PIDColourScheme(); af.getViewport().setGlobalColourScheme(cs); - assertFalse(cs.conservationApplied()); + assertFalse(af.getViewport().getResidueShading() + .conservationApplied()); } @Test(groups = { "Functional" }) @@ -373,4 +387,129 @@ public class AlignViewportTest af.getViewport().setSearchResults(null); assertFalse(af.getViewport().hasSearchResults()); } + + /** + * Verify that setting the selection group has the side-effect of setting the + * context on the group, unless it already has one, but does not change + * whether the group is defined or not. + */ + @Test(groups = { "Functional" }) + public void testSetSelectionGroup() + { + AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( + "examples/uniref50.fa", DataSourceType.FILE); + AlignViewport av = af.getViewport(); + SequenceGroup sg1 = new SequenceGroup(); + SequenceGroup sg2 = new SequenceGroup(); + SequenceGroup sg3 = new SequenceGroup(); + + av.setSelectionGroup(sg1); + assertSame(sg1.getContext(), av.getAlignment()); // context set + assertFalse(sg1.isDefined()); // group not defined + + sg2.setContext(sg1, false); + av.setSelectionGroup(sg2); + assertFalse(sg2.isDefined()); // unchanged + assertSame(sg2.getContext(), sg1); // unchanged + + // create a defined group + sg3.setContext(av.getAlignment(), true); + av.setSelectionGroup(sg3); + assertTrue(sg3.isDefined()); // unchanged + } + /** + * Verify that setting/clearing SHOW_OCCUPANCY preference adds or omits occupancy row from viewport + */ + @Test(groups = { "Functional" }) + public void testShowOrDontShowOccupancy() + { + // disable occupancy + jalview.bin.Cache.setProperty("SHOW_OCCUPANCY", Boolean.FALSE.toString()); + AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( + "examples/uniref50.fa", DataSourceType.FILE); + AlignViewport av = af.getViewport(); + Assert.assertNull(av.getAlignmentGapAnnotation(), "Preference did not disable occupancy row."); + int c = 0; + for (AlignmentAnnotation aa : av.getAlignment().findAnnotations(null, + null, "Occupancy")) + { + c++; + } + Assert.assertEquals(c, 0, "Expected zero occupancy rows."); + + // enable occupancy + jalview.bin.Cache.setProperty("SHOW_OCCUPANCY", Boolean.TRUE.toString()); + af = new FileLoader().LoadFileWaitTillLoaded( + "examples/uniref50.fa", DataSourceType.FILE); + av = af.getViewport(); + Assert.assertNotNull(av.getAlignmentGapAnnotation(), "Preference did not enable occupancy row."); + c = 0; + for (AlignmentAnnotation aa : av.getAlignment().findAnnotations(null, + null, av.getAlignmentGapAnnotation().label)) + { + c++; + } + ; + Assert.assertEquals(c, 1, "Expected to find one occupancy row."); + } + + @Test(groups = { "Functional" }) + public void testGetConsensusSeq() + { + /* + * A-C + * A-C + * A-D + * --D + * consensus expected to be A-C + */ + String fasta = ">s1\nA-C\n>s2\nA-C\n>s3\nA-D\n>s4\n--D\n"; + AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(fasta, + DataSourceType.PASTE); + AlignViewport testme = af.getViewport(); + SequenceI cons = testme.getConsensusSeq(); + assertEquals("A-C", cons.getSequenceAsString()); + } + + @Test(groups = { "Functional" }) + public void testHideRevealSequences() + { + ViewportRanges ranges = testee.getRanges(); + assertEquals(3, al.getHeight()); + assertEquals(0, ranges.getStartSeq()); + assertEquals(2, ranges.getEndSeq()); + + /* + * hide first sequence + */ + testee.hideSequence(new SequenceI[] { al.getSequenceAt(0) }); + assertEquals(2, al.getHeight()); + assertEquals(0, ranges.getStartSeq()); + assertEquals(1, ranges.getEndSeq()); + + /* + * reveal hidden sequences above the first + */ + testee.showSequence(0); + assertEquals(3, al.getHeight()); + assertEquals(0, ranges.getStartSeq()); + assertEquals(2, ranges.getEndSeq()); + + /* + * hide first and third sequences + */ + testee.hideSequence(new SequenceI[] { al.getSequenceAt(0), + al.getSequenceAt(2) }); + assertEquals(1, al.getHeight()); + assertEquals(0, ranges.getStartSeq()); + assertEquals(0, ranges.getEndSeq()); + + /* + * reveal all hidden sequences + */ + testee.showAllHiddenSeqs(); + assertEquals(3, al.getHeight()); + assertEquals(0, ranges.getStartSeq()); + assertEquals(2, ranges.getEndSeq()); + } }