JAL-2421 incomplete unit test
[jalview.git] / test / jalview / gui / AlignmentPanelTest.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3  * Copyright (C) $$Year-Rel$$ The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3
10  * of the License, or (at your option) any later version.
11  *  
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License
18  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
19  * The Jalview Authors are detailed in the 'AUTHORS' file.
20  */
21 package jalview.gui;
22
23 import static org.testng.Assert.assertEquals;
24
25 import jalview.datamodel.Alignment;
26 import jalview.datamodel.Sequence;
27 import jalview.datamodel.SequenceI;
28
29 import java.awt.Dimension;
30
31 import org.testng.annotations.BeforeClass;
32 import org.testng.annotations.Test;
33
34 public class AlignmentPanelTest
35 {
36   SequenceI seq1 = new Sequence(
37           "Seq1",
38           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
39
40   SequenceI seq2 = new Sequence(
41           "Seq2",
42           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
43
44   SequenceI seq3 = new Sequence(
45           "Seq3",
46           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
47
48   SequenceI seq4 = new Sequence(
49           "Seq4",
50           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
51
52   SequenceI seq5 = new Sequence(
53           "Seq5",
54           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
55
56   SequenceI seq6 = new Sequence(
57           "Seq6",
58           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
59
60   SequenceI seq7 = new Sequence(
61           "Seq7",
62           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
63
64   SequenceI seq8 = new Sequence(
65           "Seq8",
66           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
67
68   SequenceI seq9 = new Sequence(
69           "Seq9",
70           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
71
72   SequenceI seq10 = new Sequence(
73           "Seq10",
74           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
75
76   SequenceI seq11 = new Sequence(
77           "Seq11",
78           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
79
80   SequenceI seq12 = new Sequence(
81           "Seq12",
82           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
83
84   SequenceI seq13 = new Sequence(
85           "Seq13",
86           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
87
88   SequenceI seq14 = new Sequence(
89           "Seq14",
90           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
91
92   SequenceI seq15 = new Sequence(
93           "Seq15",
94           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
95
96   SequenceI seq16 = new Sequence(
97           "Seq16",
98           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
99
100   SequenceI seq17 = new Sequence(
101           "Seq17",
102           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
103
104   SequenceI seq18 = new Sequence(
105           "Seq18",
106           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
107
108   SequenceI seq19 = new Sequence(
109           "Seq19",
110           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
111
112   SequenceI seq20 = new Sequence(
113           "Seq20",
114           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
115
116   SequenceI seq21 = new Sequence(
117           "Seq21",
118           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
119
120   SequenceI seq22 = new Sequence(
121           "Seq22",
122           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
123
124   SequenceI seq23 = new Sequence(
125           "Seq23",
126           "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
127
128   @BeforeClass(alwaysRun = true)
129   public void setUp()
130   {
131     JvOptionPane.setInteractiveMode(false);
132     JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
133   }
134
135   /**
136    * Test side effect that end residue is set correctly by setScrollValues, with
137    * or without hidden columns
138    */
139   @Test(groups = "Functional")
140   public void TestSetScrollValues()
141   {
142     SequenceI[] seqs = new SequenceI[] { seq1, seq2, seq3, seq4, seq5,
143         seq6, seq7, seq8, seq9, seq10, seq11, seq12, seq13, seq14, seq15,
144         seq16, seq17, seq18, seq19, seq20, seq21, seq22, seq23 };
145     Alignment al = new Alignment(seqs);
146     al.setDataset(null);
147
148     AlignFrame alignFrame = new AlignFrame(al, 500, 700);
149
150     alignFrame.alignPanel.getSeqPanel().seqCanvas
151             .setPreferredSize(new Dimension(300, 300));
152
153     int oldres = alignFrame.getViewport().getEndRes();
154     alignFrame.alignPanel.setScrollValues(-1, 5);
155
156     // setting -ve x value does not change residue
157     assertEquals(alignFrame.getViewport().getEndRes(), oldres);
158
159     alignFrame.alignPanel.setScrollValues(0, 5);
160
161     // setting 0 as x value does not change residue
162     assertEquals(alignFrame.getViewport().getEndRes(), oldres);
163
164     alignFrame.alignPanel.setScrollValues(5, 5);
165     // setting x value to 20 extends endRes by 20px converted to residues
166     assertEquals(alignFrame.getViewport().getEndRes(), oldres + 5);
167
168
169   }
170 }