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));
}
}