import jalview.datamodel.Annotation;
import jalview.datamodel.PDBEntry;
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;
-import jalview.io.FormatAdapter;
import jalview.schemes.ColourSchemeI;
import jalview.schemes.PIDColourScheme;
import jalview.structure.StructureSelectionManager;
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;
public class AlignViewportTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
AlignmentI al;
AlignViewport testee;
@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)
* alignment with reference to mappings
*/
AlignFrame af1 = new FileLoader().LoadFileWaitTillLoaded(
- ">Seq1\nCAGT\n", FormatAdapter.PASTE);
+ ">Seq1\nCAGT\n", DataSourceType.PASTE);
SequenceI s1 = af1.getViewport().getAlignment().getSequenceAt(0);
AlignedCodonFrame acf1 = new AlignedCodonFrame();
ssm.resetAll();
AlignFrame af1 = new FileLoader().LoadFileWaitTillLoaded(
- ">Seq1\nRSVQ\n", FormatAdapter.PASTE);
+ ">Seq1\nRSVQ\n", DataSourceType.PASTE);
AlignFrame af2 = new FileLoader().LoadFileWaitTillLoaded(
- ">Seq2\nDGEL\n", FormatAdapter.PASTE);
+ ">Seq2\nDGEL\n", DataSourceType.PASTE);
SequenceI cs1 = new Sequence("cseq1", "CCCGGGTTTAAA");
SequenceI cs2 = new Sequence("cseq2", "CTTGAGTCTAGA");
SequenceI s1 = af1.getViewport().getAlignment().getSequenceAt(0);
ssm.resetAll();
AlignFrame af1 = new FileLoader().LoadFileWaitTillLoaded(
- ">Seq1\nRSVQ\n", FormatAdapter.PASTE);
+ ">Seq1\nRSVQ\n", DataSourceType.PASTE);
AlignFrame af2 = new FileLoader().LoadFileWaitTillLoaded(
- ">Seq2\nDGEL\n", FormatAdapter.PASTE);
+ ">Seq2\nDGEL\n", DataSourceType.PASTE);
SequenceI cs1 = new Sequence("cseq1", "CCCGGGTTTAAA");
SequenceI cs2 = new Sequence("cseq2", "CTTGAGTCTAGA");
SequenceI s1 = af1.getViewport().getAlignment().getSequenceAt(0);
Cache.applicationProperties.setProperty("SHOW_IDENTITY",
Boolean.FALSE.toString());
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
- "examples/uniref50.fa", FormatAdapter.FILE);
+ "examples/uniref50.fa", DataSourceType.FILE);
AlignmentAnnotation[] anns = af.viewport.getAlignment()
.getAlignmentAnnotation();
assertNotNull("No annotations found", anns);
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("SHOW_ANNOTATIONS",
- Boolean.TRUE.toString());
+ Cache.applicationProperties.setProperty("DEFAULT_COLOUR_PROT", "None");
Cache.applicationProperties.setProperty("SHOW_CONSERVATION",
- Boolean.FALSE.toString());
- Cache.applicationProperties.setProperty("DEFAULT_COLOUR_PROT", "NONE");
+ Boolean.TRUE.toString());
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
- "examples/uniref50.fa", FormatAdapter.FILE);
+ "examples/uniref50.fa", DataSourceType.FILE);
ColourSchemeI cs = new PIDColourScheme();
af.getViewport().setGlobalColourScheme(cs);
- assertFalse(cs.conservationApplied());
+ assertFalse(af.getViewport().getResidueShading()
+ .conservationApplied());
+ }
+
+ @Test(groups = { "Functional" })
+ public void testSetGetHasSearchResults()
+ {
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
+ "examples/uniref50.fa", DataSourceType.FILE);
+ SearchResultsI sr = new SearchResults();
+ SequenceI s1 = af.getViewport().getAlignment().getSequenceAt(0);
+
+ // create arbitrary range on first sequence
+ sr.addResult(s1, s1.getStart() + 10, s1.getStart() + 15);
+
+ // test set
+ af.getViewport().setSearchResults(sr);
+ // has -> true
+ assertTrue(af.getViewport().hasSearchResults());
+ // get == original
+ assertEquals(sr, af.getViewport().getSearchResults());
+
+ // set(null) results in has -> false
+
+ 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
+ */
+ @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();
+
+ av.setSelectionGroup(sg1);
+ assertSame(sg1.getContext(), av.getAlignment()); // context set
+
+ sg2.setContext(sg1);
+ av.setSelectionGroup(sg2);
+ assertSame(sg2.getContext(), sg1); // 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.");
+
}
}