3 import static org.testng.Assert.assertEquals;
4 import static org.testng.Assert.assertTrue;
6 import jalview.bin.Cache;
7 import jalview.bin.Jalview;
8 import jalview.datamodel.Alignment;
9 import jalview.datamodel.AlignmentI;
10 import jalview.datamodel.Sequence;
11 import jalview.datamodel.SequenceGroup;
12 import jalview.datamodel.SequenceI;
13 import jalview.io.DataSourceType;
14 import jalview.io.FileLoader;
15 import jalview.viewmodel.ViewportRanges;
17 import java.awt.event.MouseEvent;
19 import org.testng.annotations.BeforeClass;
20 import org.testng.annotations.Test;
22 public class ScalePanelTest
24 @BeforeClass(alwaysRun = true)
25 public void setUpJvOptionPane()
27 JvOptionPane.setInteractiveMode(false);
28 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
31 @Test(groups = "Functional")
32 public void testPreventNegativeStartColumn()
34 SequenceI seq1 = new Sequence("Seq1", "MATRESS");
35 SequenceI seq2 = new Sequence("Seq2", "MADNESS");
36 AlignmentI al = new Alignment(new SequenceI[] { seq1, seq2 });
38 AlignFrame alignFrame = new AlignFrame(al, al.getWidth(),
40 ScalePanel scalePanel = alignFrame.alignPanel.getScalePanel();
42 MouseEvent mouse = new MouseEvent(scalePanel, 0, 1, 0, 4, 0, 1, false);
43 scalePanel.mousePressed(mouse);
44 scalePanel.mouseDragged(mouse);
46 // simulate dragging selection leftwards beyond the sequences giving
48 mouse = new MouseEvent(scalePanel, 0, 1, 0, -30, 0, 1, false);
50 scalePanel.mouseReleased(mouse);
52 SequenceGroup sg = scalePanel.av.getSelectionGroup();
53 int startCol = sg.getStartRes();
55 assertTrue(startCol >= 0);
61 @Test(groups = "Functional")
62 public void testSelectColumns_withHidden()
64 String seq1 = ">Seq1\nANTOFAGASTAVALPARAISOMONTEVIDEOANTANANARIVO";
65 AlignFrame alignFrame = new FileLoader().LoadFileWaitTillLoaded(seq1,
66 DataSourceType.PASTE);
67 ScalePanel scalePanel = alignFrame.alignPanel.getScalePanel();
70 * hide columns 1-20 (of 43); then 'drag' to select columns 30-31;
71 * 31 is 51 in absolute columns but bug JAL-3212 reduces it to
74 AlignViewport viewport = alignFrame.getViewport();
75 ViewportRanges ranges = viewport.getRanges();
76 assertEquals(ranges.getStartRes(), 0);
77 assertEquals(ranges.getEndRes(), 42);
78 viewport.hideColumns(0, 19);
79 alignFrame.alignPanel.updateLayout();
80 assertEquals(ranges.getStartRes(), 0);
81 assertEquals(ranges.getEndRes(), 22);
83 int cw = viewport.getCharWidth();
84 int xPos = 9 * cw + 2;
85 MouseEvent mouse = new MouseEvent(scalePanel, 0, 1, 0, xPos, 0, 1,
87 scalePanel.mousePressed(mouse);
88 scalePanel.mouseDragged(mouse);
90 mouse = new MouseEvent(scalePanel, 0, 1, 0, xPos, 0, 1, false);
91 scalePanel.mouseReleased(mouse);
93 SequenceGroup sg = scalePanel.av.getSelectionGroup();
94 assertEquals(sg.getStartRes(), 29);
95 assertEquals(sg.getEndRes(), 30);
98 @BeforeClass(alwaysRun = true)
99 public static void setUpBeforeClass() throws Exception
102 * use read-only test properties file
104 Cache.loadProperties("test/jalview/io/testProps.jvprops");
105 Jalview.main(new String[] { "-nonews" });