2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
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.
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.
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.
21 package jalview.ws.gui;
23 import java.util.Locale;
25 import jalview.bin.Cache;
26 import jalview.bin.Console;
27 import jalview.gui.JvOptionPane;
28 import jalview.gui.WsJobParameters;
29 import jalview.util.MessageManager;
30 import jalview.ws.api.ServiceWithParameters;
31 import jalview.ws.jabaws.JalviewJabawsTestUtils;
32 import jalview.ws.jws2.JabaPreset;
33 import jalview.ws.jws2.Jws2Discoverer;
34 import jalview.ws.jws2.jabaws2.Jws2Instance;
35 import jalview.ws.params.ArgumentI;
36 import jalview.ws.params.ParamDatastoreI;
38 import java.awt.BorderLayout;
39 import java.awt.event.WindowAdapter;
40 import java.awt.event.WindowEvent;
41 import java.util.ArrayList;
42 import java.util.Iterator;
43 import java.util.List;
45 import javax.swing.JFrame;
46 import javax.swing.JPanel;
48 import org.testng.annotations.BeforeClass;
49 import org.testng.annotations.Test;
51 import compbio.metadata.Preset;
52 import compbio.metadata.PresetManager;
54 public class Jws2ParamView
57 @BeforeClass(alwaysRun = true)
58 public void setUpJvOptionPane()
60 JvOptionPane.setInteractiveMode(false);
61 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
65 * which services to test
67 public static List<String> serviceTests = new ArrayList<>();
70 * which presets to test for services
72 public static List<String> presetTests = new ArrayList<>();
75 serviceTests.add("AAConWS".toLowerCase(Locale.ROOT));
78 public static Jws2Discoverer disc = null;
80 @BeforeClass(alwaysRun = true)
81 public static void setUpBeforeClass() throws Exception
83 Cache.loadProperties("test/jalview/io/testProps.jvprops");
84 disc = JalviewJabawsTestUtils.getJabawsDiscoverer();
88 * This test marked Interactive as it appears to need user action to complete
92 @Test(groups = { "Interactive" }, enabled = true)
93 public void testJws2Gui()
95 Iterator<String> presetEnum = presetTests.iterator();
96 for (ServiceWithParameters _service : disc.getServices())
98 // This will fail for non-jabaws services
99 Jws2Instance service = (Jws2Instance) _service;
100 if (serviceTests.size() == 0
101 || serviceTests.contains(service.getName().toLowerCase(Locale.ROOT)))
103 List<Preset> prl = null;
105 if (presetEnum.hasNext())
107 PresetManager prman = service.getPresets();
110 pr = prman.getPresetByName(presetEnum.next());
113 // just grab the last preset.
114 prl = prman.getPresets();
120 PresetManager prman = service.getPresets();
123 prl = prman.getPresets();
126 Iterator<Preset> en = (prl == null) ? null : prl.iterator();
127 while (en != null && en.hasNext())
137 WsJobParameters pgui = new WsJobParameters((ParamDatastoreI) null,
138 service, new JabaPreset(service, pr),
139 (List<ArgumentI>) null);
140 JFrame jf = new JFrame(MessageManager
141 .formatMessage("label.ws_parameters_for", new String[]
142 { service.getActionText() }));
143 jf.setSize(700, 800);
144 JPanel cont = new JPanel(new BorderLayout());
146 cont.setPreferredSize(pgui.getPreferredSize());
147 cont.add(pgui, BorderLayout.CENTER);
148 jf.setLayout(new BorderLayout());
149 jf.add(cont, BorderLayout.CENTER);
152 final Thread thr = Thread.currentThread();
155 * This seems to need a user to manually inspect / test / close the
156 * GUI for each service tested. Not standalone JUnit.
158 jf.addWindowListener(new WindowAdapter()
161 public void windowClosing(WindowEvent e)
167 boolean inter = false;
172 Thread.sleep(10 * 1000);
173 } catch (InterruptedException e)