*/
package jalview.gui;
-import java.awt.Font;
-import java.awt.FontMetrics;
-
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
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.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.DataSourceType;
import jalview.io.FileLoader;
+import jalview.util.Platform;
+import jalview.viewmodel.ViewportRanges;
import junit.extensions.PA;
public class SeqCanvasTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUp()
+ {
+ // 2.11.2 - beforeMethod setup
+ // 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());
+
+ Cache.loadProperties(null);
+ Desktop.getInstance().setVisible(false);
+ }
+
private AlignFrame af;
/**
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
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
int canvasWidth = 400;
int canvasHeight = 300;
int residueColumns = (canvasWidth - 2 * labelWidth) / charWidth;
- int wrappedWidth = testee.calculateWrappedGeometry(canvasWidth,
- canvasHeight);
+ int wrappedWidth = testee.calculateWrappedGeometry(canvasWidth, canvasHeight);
assertEquals(wrappedWidth, residueColumns);
assertEquals(PA.getValue(testee, "labelWidthWest"), labelWidth);
assertEquals(PA.getValue(testee, "labelWidthEast"), labelWidth);
assertEquals(PA.getValue(testee, "wrappedSpaceAboveAlignment"),
2 * charHeight);
- int repeatingHeight = (int) PA.getValue(testee,
- "wrappedRepeatHeightPx");
+ int repeatingHeight = (int) PA.getValue(testee, "wrappedRepeatHeightPx");
assertEquals(repeatingHeight, charHeight * (2 + al.getHeight()));
assertEquals(PA.getValue(testee, "wrappedVisibleWidths"), 1);
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);
AlignmentI al = av.getAlignment();
assertEquals(al.getWidth(), 157);
assertEquals(al.getHeight(), 15);
-
+
av.setWrapAlignment(true);
av.getRanges().setStartEndSeq(0, 14);
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;
-
+
/*
* first with scales above, left, right
*/
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();
/*
int canvasWidth = 400;
int canvasHeight = 300;
int residueColumns = (canvasWidth - 2 * labelWidth) / charWidth;
- int wrappedWidth = testee.calculateWrappedGeometry(canvasWidth,
- canvasHeight);
+ int wrappedWidth = testee.calculateWrappedGeometry(canvasWidth, canvasHeight);
assertEquals(wrappedWidth, residueColumns);
assertEquals(PA.getValue(testee, "labelWidthWest"), labelWidth);
assertEquals(PA.getValue(testee, "labelWidthEast"), labelWidth);
assertEquals(PA.getValue(testee, "wrappedSpaceAboveAlignment"),
2 * charHeight);
- int repeatingHeight = (int) PA.getValue(testee,
- "wrappedRepeatHeightPx");
+ int repeatingHeight = (int) PA.getValue(testee, "wrappedRepeatHeightPx");
assertEquals(repeatingHeight, charHeight * (2 + al.getHeight())
+ SeqCanvas.SEQS_ANNOTATION_GAP + annotationHeight);
assertEquals(PA.getValue(testee, "wrappedVisibleWidths"), 1);
-
+
/*
* repeat height is 17 * (2 + 15) = 289 + 3 + annotationHeight = 510
* make canvas height 2 of these plus 3 charHeights
+ 2 * (annotationHeight + SeqCanvas.SEQS_ANNOTATION_GAP);
testee.calculateWrappedGeometry(canvasWidth, canvasHeight);
assertEquals(PA.getValue(testee, "wrappedVisibleWidths"), 3);
-
+
/*
* reduce canvas height by 1 pixel - should not be enough height
* to draw 3 widths
canvasHeight -= 1;
testee.calculateWrappedGeometry(canvasWidth, canvasHeight);
assertEquals(PA.getValue(testee, "wrappedVisibleWidths"), 2);
-
+
/*
* turn off scale above - can now fit in 2 and a bit widths
*/
av.setScaleAboveWrapped(false);
testee.calculateWrappedGeometry(canvasWidth, canvasHeight);
assertEquals(PA.getValue(testee, "wrappedVisibleWidths"), 3);
-
+
/*
* reduce height to enough for 2 widths and not quite a third
* i.e. two repeating heights + spacer + sequence - 1 pixel
assertEquals(repeatingHeight, charHeight * (2 + al.getHeight()));
}
- @BeforeMethod(alwaysRun = true)
- public void setUp()
- {
- 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());
- }
-
@Test(groups = "Functional")
public void testClear_HighlightAndSelection()
{
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
+ "examples/uniref50.fa", DataSourceType.FILE);
AlignViewport av = af.getViewport();
SearchResultsI highlight = new SearchResults();
highlight.addResult(