6 import org.testng.Assert;
7 import org.testng.annotations.AfterClass;
8 import org.testng.annotations.AfterMethod;
9 import org.testng.annotations.BeforeClass;
10 import org.testng.annotations.DataProvider;
11 import org.testng.annotations.Test;
13 import jalview.api.AlignViewportI;
14 import jalview.datamodel.AlignmentAnnotation;
15 import jalview.datamodel.AlignmentI;
16 import jalview.datamodel.SequenceI;
17 import jalview.gui.AlignFrame;
18 import jalview.gui.AlignmentPanel;
19 import jalview.gui.Desktop;
20 import jalview.gui.JvOptionPane;
21 import jalview.gui.StructureViewerBase;
24 public class CommandsTest2
26 @BeforeClass(alwaysRun = true)
27 public static void setUpBeforeClass() throws Exception
29 Cache.loadProperties("test/jalview/bin/commandsTest.jvprops");
30 Date oneHourFromNow = new Date(
31 System.currentTimeMillis() + 3600 * 1000);
32 Cache.setDateProperty("JALVIEW_NEWS_RSS_LASTMODIFIED", oneHourFromNow);
33 if (Desktop.instance != null)
34 Desktop.instance.closeAll_actionPerformed(null);
38 @AfterClass(alwaysRun = true)
39 public static void resetProps()
41 Cache.loadProperties("test/jalview/testProps.jvprops");
44 @BeforeClass(alwaysRun = true)
45 public void setUpJvOptionPane()
47 JvOptionPane.setInteractiveMode(false);
48 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
51 @AfterMethod(alwaysRun = true)
52 public void tearDown()
54 if (Desktop.instance != null)
55 Desktop.instance.closeAll_actionPerformed(null);
61 dataProvider = "structureOpeningArgsParams",
62 singleThreaded = true)
63 public void structureOpeningArgsTest(String cmdLine, int seqNum,
64 int annNum, int viewerNum)
66 String[] args = cmdLine.split("\\s+");
71 // sleep for slow build server to open annotations and viewer windows
72 Thread.sleep(seqNum * 100 + annNum * 200 + viewerNum * 1500);
73 } catch (InterruptedException e)
78 AlignFrame[] afs = Desktop.getAlignFrames();
79 Assert.assertNotNull(afs);
80 Assert.assertTrue(afs.length > 0);
82 AlignFrame af = afs[0];
83 Assert.assertNotNull(af);
85 AlignmentPanel ap = af.alignPanel;
86 Assert.assertNotNull(ap);
88 AlignmentI al = ap.getAlignment();
89 Assert.assertNotNull(al);
91 List<SequenceI> seqs = al.getSequences();
92 Assert.assertNotNull(seqs);
94 Assert.assertEquals(seqs.size(), seqNum, "Wrong number of sequences");
96 AlignViewportI av = ap.getAlignViewport();
97 Assert.assertNotNull(av);
99 AlignmentAnnotation[] aas = al.getAlignmentAnnotation();
102 for (AlignmentAnnotation aa : aas)
104 System.err.println("##### DIAGNOSIS: annotation " + ++dcount
105 + " is labelled '" + aa.label + "'");
110 Assert.assertEquals(visibleAnn, annNum,
111 "Wrong number of visible annotations");
115 List<StructureViewerBase> openViewers = Desktop.instance
116 .getStructureViewers(ap, null);
117 Assert.assertNotNull(openViewers);
119 for (StructureViewerBase svb : openViewers)
124 Assert.assertEquals(count, viewerNum,
125 "Wrong number of structure viewers opened");
129 @DataProvider(name = "structureOpeningArgsParams")
130 public Object[][] structureOpeningArgsParams()
139 return new Object[][] {
143 { "--nonews --nosplash --debug " + "--append=examples/uniref50.fa "
144 + "--colour=gecos:flower "
145 + "--structure=[seqid=FER1_SPIOL]examples/AlphaFold/AF-P00221-F1-model_v4.cif "
146 + "--paematrix=examples/AlphaFold/AF-P00221-F1-predicted_aligned_error_v4.json "
147 + "--props=test/jalview/bin/commandsTest2.jvprops1 ",
149 { "--nonews --nosplash --debug " + "--append=examples/uniref50.fa "
150 + "--colour=gecos:flower "
151 + "--structure=[seqid=FER1_SPIOL]examples/AlphaFold/AF-P00221-F1-model_v4.cif "
152 + "--paematrix=examples/AlphaFold/AF-P00221-F1-predicted_aligned_error_v4.json "
153 + "--props=test/jalview/bin/commandsTest2.jvprops2 ",
155 { "--nonews --nosplash --debug " + "--append=examples/uniref50.fa "
156 + "--colour=gecos:flower "
157 + "--structure=[seqid=FER1_SPIOL]examples/AlphaFold/AF-P00221-F1-model_v4.cif "
158 + "--paematrix=examples/AlphaFold/AF-P00221-F1-predicted_aligned_error_v4.json "
159 + "--nossannotations "
160 + "--props=test/jalview/bin/commandsTest2.jvprops1 ",
162 { "--nonews --nosplash --debug " + "--append=examples/uniref50.fa "
163 + "--colour=gecos:flower "
164 + "--structure=[seqid=FER1_SPIOL]examples/AlphaFold/AF-P00221-F1-model_v4.cif "
165 + "--paematrix=examples/AlphaFold/AF-P00221-F1-predicted_aligned_error_v4.json "
167 + "--props=test/jalview/bin/commandsTest2.jvprops1 ",
169 { "--nonews --nosplash --debug " + "--append=examples/uniref50.fa "
170 + "--colour=gecos:flower "
171 + "--structure=[seqid=FER1_SPIOL]examples/AlphaFold/AF-P00221-F1-model_v4.cif "
172 + "--paematrix=examples/AlphaFold/AF-P00221-F1-predicted_aligned_error_v4.json "
173 + "--noannotations " + "--nossannotations "
174 + "--props=test/jalview/bin/commandsTest2.jvprops1 ",
176 { "--nonews --nosplash --debug " + "--append=examples/uniref50.fa "
177 + "--colour=gecos:flower "
178 + "--structure=[seqid=FER1_SPIOL]examples/AlphaFold/AF-P00221-F1-model_v4.cif "
179 + "--paematrix=examples/AlphaFold/AF-P00221-F1-predicted_aligned_error_v4.json "
180 + "--noannotations " + "--nossannotations "
181 + "--props=test/jalview/bin/commandsTest2.jvprops1 ",
183 { "--argfile=test/jalview/bin/commandsTest2.argfile1 ", 16, 19, 3 },
184 { "--argfile=test/jalview/bin/commandsTest2.argfile2 ", 16, 0, 2 },