91b541cbca46e71a05ff1573938ea0acf33550a8
[jalview.git] / test / jalview / gui / ScalePanelTest.java
1 package jalview.gui;
2
3 import static org.testng.Assert.assertTrue;
4
5 import jalview.datamodel.Alignment;
6 import jalview.datamodel.AlignmentI;
7 import jalview.datamodel.Sequence;
8 import jalview.datamodel.SequenceGroup;
9 import jalview.datamodel.SequenceI;
10
11 import java.awt.event.MouseEvent;
12
13 import org.testng.annotations.BeforeClass;
14 import org.testng.annotations.Test;
15
16 public class ScalePanelTest
17 {
18   @BeforeClass(alwaysRun = true)
19   public void setUpJvOptionPane()
20   {
21     JvOptionPane.setInteractiveMode(false);
22     JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
23   }
24
25   @Test(groups = "Functional")
26   public void testPreventNegativeStartColumn()
27   {
28     SequenceI seq1 = new Sequence("Seq1", "MATRESS");
29     SequenceI seq2 = new Sequence("Seq2", "MADNESS");
30     AlignmentI al = new Alignment(new SequenceI[] { seq1, seq2 });
31     
32     AlignFrame alignFrame = new AlignFrame(al, al.getWidth(),
33             al.getHeight());
34     ScalePanel scalePanel = new ScalePanel(
35             alignFrame.getViewport(), alignFrame.alignPanel
36     );
37     
38     MouseEvent mouse = new MouseEvent(
39             scalePanel, 0, 1, 0, 4, 0, 1, false
40     );
41     scalePanel.mousePressed(mouse);
42     scalePanel.mouseDragged(mouse);
43
44     // simulate dragging selection leftwards beyond the sequences giving
45     // negative X
46     mouse = new MouseEvent(scalePanel, 0, 1, 0, -30, 0, 1, false);
47
48     scalePanel.mouseReleased(mouse);
49
50     SequenceGroup sg = scalePanel.av.getSelectionGroup();
51     int startCol = sg.getStartRes();
52
53     assertTrue(startCol >= 0);
54
55
56   }
57
58 }