X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fgui%2FSeqCanvasTest.java;fp=test%2Fjalview%2Fgui%2FSeqCanvasTest.java;h=cd37b615e89466c11705bc57a4ea2e515b016379;hb=586ade46bdcd05ff028a1cff82c3c527326d28ec;hp=22035f145141f0097ef09b3cb32529c8aba09814;hpb=adcef27f5747b4e70e89a56c3735bc3afb8ce9bf;p=jalview.git diff --git a/test/jalview/gui/SeqCanvasTest.java b/test/jalview/gui/SeqCanvasTest.java index 22035f1..cd37b61 100644 --- a/test/jalview/gui/SeqCanvasTest.java +++ b/test/jalview/gui/SeqCanvasTest.java @@ -21,22 +21,36 @@ package jalview.gui; import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertNull; +import static org.testng.Assert.assertTrue; import java.awt.Font; import java.awt.FontMetrics; -import org.testng.annotations.BeforeMethod; +import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import jalview.bin.Cache; import jalview.datamodel.AlignmentI; +import jalview.datamodel.SearchResults; +import jalview.datamodel.SearchResultsI; import jalview.io.DataSourceType; import jalview.io.FileLoader; +import jalview.util.Platform; +import jalview.viewmodel.ViewportRanges; import junit.extensions.PA; public class SeqCanvasTest { - private AlignFrame af; + @BeforeClass(alwaysRun = true) + public void setUp() + { + Cache.loadProperties(null); + Cache.initLogger(); + Desktop.getInstance().setVisible(false); + } /** * Test the method that computes wrapped width in residues, height of wrapped @@ -45,6 +59,9 @@ public class SeqCanvasTest @Test(groups = "Functional") public void testCalculateWrappedGeometry_noAnnotations() { + AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( + "examples/uniref50.fa", DataSourceType.FILE); + AlignViewport av = af.getViewport(); AlignmentI al = av.getAlignment(); assertEquals(al.getWidth(), 157); @@ -57,8 +74,8 @@ public class SeqCanvasTest av.setFont(new Font("SansSerif", Font.PLAIN, 14), true); int charHeight = av.getCharHeight(); int charWidth = av.getCharWidth(); - assertEquals(charHeight, 17); - assertEquals(charWidth, 12); + assertEquals(charHeight, !Platform.isWin() ? 17 : 19); + assertEquals(charWidth, !Platform.isWin() ? 12 : 11); /* * first with scales above, left, right @@ -69,7 +86,8 @@ public class SeqCanvasTest av.setScaleRightWrapped(true); FontMetrics fm = testee.getFontMetrics(av.getFont()); int labelWidth = fm.stringWidth("000") + charWidth; - assertEquals(labelWidth, 39); // 3 x 9 + charWidth + assertEquals(labelWidth, + !Platform.isWin() ? 3 * 9 + charWidth : 3 * 8 + charWidth); /* * width 400 pixels leaves (400 - 2*labelWidth) for residue columns @@ -191,7 +209,7 @@ public class SeqCanvasTest canvasWidth += 2; wrappedWidth = testee.calculateWrappedGeometry(canvasWidth, canvasHeight); - assertEquals(wrappedWidth, 24); // 2px not enough + assertEquals(wrappedWidth, !Platform.isWin() ? 24 : 25); // 2px not enough canvasWidth += 1; wrappedWidth = testee.calculateWrappedGeometry(canvasWidth, canvasHeight); @@ -213,6 +231,8 @@ public class SeqCanvasTest @Test(groups = "Functional") public void testCalculateWrappedGeometry_withAnnotations() { + AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( + "examples/uniref50.fa", DataSourceType.FILE); AlignViewport av = af.getViewport(); AlignmentI al = av.getAlignment(); assertEquals(al.getWidth(), 157); @@ -223,9 +243,10 @@ public class SeqCanvasTest av.setFont(new Font("SansSerif", Font.PLAIN, 14), true); int charHeight = av.getCharHeight(); int charWidth = av.getCharWidth(); - assertEquals(charHeight, 17); - assertEquals(charWidth, 12); - + + assertEquals(charHeight, !Platform.isWin() ? 17 : 19); + assertEquals(charWidth, !Platform.isWin() ? 12 : 11); + SeqCanvas testee = af.alignPanel.getSeqPanel().seqCanvas; /* @@ -235,9 +256,12 @@ public class SeqCanvasTest av.setScaleAboveWrapped(true); av.setScaleLeftWrapped(true); av.setScaleRightWrapped(true); + FontMetrics fm = testee.getFontMetrics(av.getFont()); int labelWidth = fm.stringWidth("000") + charWidth; - assertEquals(labelWidth, 39); // 3 x 9 + charWidth + assertEquals(labelWidth, + !Platform.isWin() ? 3 * 9 + charWidth : 3 * 8 + charWidth); + int annotationHeight = testee.getAnnotationHeight(); /* @@ -309,53 +333,66 @@ public class SeqCanvasTest @Test(groups = "Functional") public void testCalculateWrappedGeometry_fromScrolled() { + AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( + "examples/uniref50.fa", DataSourceType.FILE); + // + System.out.println("ap dim = " + af.alignPanel.getSize()); + System.out.println("seqpan dim = " + af.alignPanel.getSeqPanel().getSize()); + System.out.println("seqcan dim = " + af.alignPanel.getSeqPanel().seqCanvas.getSize()); + + AlignViewport av = af.getViewport(); AlignmentI al = av.getAlignment(); assertEquals(al.getWidth(), 157); assertEquals(al.getHeight(), 15); - av.getRanges().setStartEndSeq(0, 3); - av.setFont(new Font("SansSerif", Font.PLAIN, 14), true); - av.setWrapAlignment(true); + + ViewportRanges ranges = av.getRanges(); + System.out.println(ranges + " before setting to 3"); + ranges.setStartEndSeq(0, 3); + int endSeq = ranges.getEndSeq(); + System.out.println(ranges + " after setting to 3"); av.setShowAnnotation(false); av.setScaleAboveWrapped(true); SeqCanvas testee = af.alignPanel.getSeqPanel().seqCanvas; - + av.setWrapAlignment(true); + av.setFont(new Font("SansSerif", Font.PLAIN, 14), true); int charHeight = av.getCharHeight(); int charWidth = av.getCharWidth(); - assertEquals(charHeight, 17); - assertEquals(charWidth, 12); - + // Windows h=19, w=11. + assertEquals(charHeight, !Platform.isWin() ? 17 : 19); + assertEquals(charWidth, !Platform.isWin() ? 12 : 11); + int canvasWidth = 400; int canvasHeight = 300; testee.calculateWrappedGeometry(canvasWidth, canvasHeight); - - assertEquals(av.getRanges().getEndSeq(), 3); // unchanged + System.out.println(ranges); + assertEquals(ranges.getEndSeq(), endSeq); // unchanged int repeatingHeight = (int) PA.getValue(testee, "wrappedRepeatHeightPx"); - assertEquals(repeatingHeight, charHeight * (2 + al.getHeight())); + int h = charHeight * (2 + al.getHeight()); + assertEquals(repeatingHeight, h); } - - @BeforeMethod(alwaysRun = true) - public void setUp() + @Test(groups = "Functional") + public void testClear_HighlightAndSelection() { - Cache.loadProperties("test/jalview/io/testProps.jvprops"); - Cache.applicationProperties.setProperty("SHOW_IDENTITY", - Boolean.TRUE.toString()); - af = new FileLoader().LoadFileWaitTillLoaded("examples/uniref50.fa", - DataSourceType.FILE); - - /* - * wait for Consensus thread to complete - */ - do - { - try - { - Thread.sleep(50); - } catch (InterruptedException x) - { - } - } while (af.getViewport().getCalcManager().isWorking()); + AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( + "examples/uniref50.fa", DataSourceType.FILE); + AlignViewport av = af.getViewport(); + SearchResultsI highlight = new SearchResults(); + highlight.addResult( + av.getAlignment().getSequenceAt(1).getDatasetSequence(), 50, + 80); + af.alignPanel.highlightSearchResults(highlight); + af.avc.markHighlightedColumns(false, false, false); + assertNotNull(av.getSearchResults(), + "No highlight was created on alignment"); + assertFalse(av.getColumnSelection().isEmpty(), + "No selection was created from highlight"); + af.deselectAllSequenceMenuItem_actionPerformed(null); + assertTrue(av.getColumnSelection().isEmpty(), + "No Selection should be present after deselecting all."); + assertNull(av.getSearchResults(), + "No higlighted search results should be present after deselecting all."); } }