package jalview.gui; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNull; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.Sequence; import org.testng.annotations.Test; public class AnnotationLabelsTest { @Test(groups = "Functional") public void testGetTooltip() { assertNull(AnnotationLabels.getTooltip(null)); /* * simple description only */ AlignmentAnnotation ann = new AlignmentAnnotation("thelabel", "thedesc", null); String expected = "thedesc"; assertEquals(AnnotationLabels.getTooltip(ann), expected); /* * description needing html encoding * (no idea why '<' is encoded but '>' is not) */ ann.description = "TCoffee scores < 56 and > 28"; expected = "TCoffee scores < 56 and > 28"; assertEquals(AnnotationLabels.getTooltip(ann), expected); /* * description already html formatted */ ann.description = "hello world"; assertEquals(AnnotationLabels.getTooltip(ann), ann.description); /* * simple description and score */ ann.description = "hello world"; ann.setScore(2.34d); expected = "hello world
Score: 2.34"; assertEquals(AnnotationLabels.getTooltip(ann), expected); /* * html description and score */ ann.description = "hello world"; ann.setScore(2.34d); expected = "hello world
Score: 2.34"; assertEquals(AnnotationLabels.getTooltip(ann), expected); /* * score, no description */ ann.description = " "; assertEquals(AnnotationLabels.getTooltip(ann), " Score: 2.34"); ann.description = null; assertEquals(AnnotationLabels.getTooltip(ann), " Score: 2.34"); /* * sequenceref, simple description */ ann.description = "Count < 12"; ann.sequenceRef = new Sequence("Seq1", "MLRIQST"); ann.hasScore = false; ann.score = Double.NaN; expected = "Seq1 : Count < 12"; assertEquals(AnnotationLabels.getTooltip(ann), expected); /* * sequenceref, html description, score */ ann.description = "Score < 4.8"; ann.sequenceRef = new Sequence("Seq1", "MLRIQST"); ann.setScore(-2.1D); expected = "Seq1 : Score < 4.8
Score: -2.1"; assertEquals(AnnotationLabels.getTooltip(ann), expected); /* * no score, null description */ ann.description = null; ann.hasScore = false; ann.score = Double.NaN; assertNull(AnnotationLabels.getTooltip(ann)); /* * no score, empty description, sequenceRef */ ann.description = ""; assertEquals(AnnotationLabels.getTooltip(ann), "Seq1 :"); /* * no score, empty description, no sequenceRef */ ann.sequenceRef = null; assertNull(AnnotationLabels.getTooltip(ann)); } }