JAL-1645 Version-Rel Version 2.9 Year-Rel 2015 Licensing glob
[jalview.git] / test / jalview / ws / gui / Jws2ParamView.java
index 2d40dd4..71a9ca4 100644 (file)
@@ -1,32 +1,36 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
- * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9)
+ * Copyright (C) 2015 The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
  * Jalview is free software: you can redistribute it and/or
  * modify it under the terms of the GNU General Public License 
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
  *  
  * Jalview is distributed in the hope that it will be useful, but 
  * WITHOUT ANY WARRANTY; without even the implied warranty 
  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
  * PURPOSE.  See the GNU General Public License for more details.
  * 
- * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 package jalview.ws.gui;
 
-import static org.junit.Assert.*;
+import jalview.bin.Cache;
 import jalview.gui.WsJobParameters;
+import jalview.util.MessageManager;
 import jalview.ws.jabaws.JalviewJabawsTestUtils;
 import jalview.ws.jws2.JabaPreset;
 import jalview.ws.jws2.Jws2Discoverer;
 import jalview.ws.jws2.jabaws2.Jws2Instance;
 
 import java.awt.BorderLayout;
+import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -34,11 +38,9 @@ import java.util.List;
 import javax.swing.JFrame;
 import javax.swing.JPanel;
 
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
 
-import compbio.metadata.Option;
-import compbio.metadata.Parameter;
 import compbio.metadata.Preset;
 import compbio.metadata.PresetManager;
 
@@ -58,217 +60,103 @@ public class Jws2ParamView
     serviceTests.add("AAConWS".toLowerCase());
   }
 
-  public static Jws2Discoverer disc=null;
-  @BeforeClass
+  public static Jws2Discoverer disc = null;
+
+  @BeforeClass(alwaysRun = true)
   public static void setUpBeforeClass() throws Exception
   {
+    Cache.initLogger();
     disc = JalviewJabawsTestUtils.getJabawsDiscoverer();
-    
   }
-  @Test
+
+  /**
+   * This test marked Interactive as it appears to need user action to complete
+   * rather than hang
+   */
+
+  @Test(groups = { "Interactive" }, enabled = true)
   public void testJws2Gui()
   {
-    Jws2Instance lastserv = null;
     Iterator<String> presetEnum = presetTests.iterator();
     for (Jws2Instance service : disc.getServices())
     {
-      lastserv = service;
       if (serviceTests.size() == 0
               || serviceTests.contains(service.serviceType.toLowerCase()))
       {
-        if (lastserv != null)
+        List<Preset> prl = null;
+        Preset pr = null;
+        if (presetEnum.hasNext())
         {
-          List<Preset> prl = null;
-          Preset pr = null;
-          if (presetEnum.hasNext())
+          PresetManager prman = service.getPresets();
+          if (prman != null)
           {
-            PresetManager prman = lastserv.getPresets();
-            if (prman != null)
+            pr = prman.getPresetByName(presetEnum.next());
+            if (pr == null)
             {
-              pr = prman.getPresetByName(presetEnum.next());
-              if (pr == null)
-              {
-                // just grab the last preset.
-                prl = prman.getPresets();
-              }
+              // just grab the last preset.
+              prl = prman.getPresets();
             }
           }
-          else
+        }
+        else
+        {
+          PresetManager prman = service.getPresets();
+          if (prman != null)
           {
-            PresetManager prman = lastserv.getPresets();
-            if (prman != null)
-            {
-              prl = prman.getPresets();
-            }
+            prl = prman.getPresets();
           }
-          Iterator<Preset> en = (prl == null) ? null : prl.iterator();
-          while (en != null && en.hasNext())
+        }
+        Iterator<Preset> en = (prl == null) ? null : prl.iterator();
+        while (en != null && en.hasNext())
+        {
+          if (en != null)
           {
-            if (en != null)
+            if (!en.hasNext())
             {
-              if (!en.hasNext())
-              {
-                en = prl.iterator();
-              }
-              pr = en.next();
-            }
-            {
-              System.out.println("Testing opts dupes for "
-                      + lastserv.getUri() + " : "
-                      + lastserv.getActionText() + ":" + pr.getName());
-              List<Option> rg = lastserv.getRunnerConfig().getOptions();
-              for (Option o : rg)
-              {
-                try
-                {
-                  Option cpy = jalview.ws.jws2.ParameterUtils.copyOption(o);
-                } catch (Exception e)
-                {
-                  System.err.println("Failed to copy " + o.getName());
-                  e.printStackTrace();
-                } catch (Error e)
-                {
-                  System.err.println("Failed to copy " + o.getName());
-                  e.printStackTrace();
-                }
-              }
-            }
-            {
-              System.out.println("Testing param dupes:");
-              List<Parameter> rg = lastserv.getRunnerConfig()
-                      .getParameters();
-              for (Parameter o : rg)
-              {
-                try
-                {
-                  Parameter cpy = jalview.ws.jws2.ParameterUtils
-                          .copyParameter(o);
-                } catch (Exception e)
-                {
-                  System.err.println("Failed to copy " + o.getName());
-                  e.printStackTrace();
-                } catch (Error e)
-                {
-                  System.err.println("Failed to copy " + o.getName());
-                  e.printStackTrace();
-                }
-              }
+              en = prl.iterator();
             }
+            pr = en.next();
+          }
+          WsJobParameters pgui = new WsJobParameters(service,
+                  new JabaPreset(service, pr));
+          JFrame jf = new JFrame(MessageManager.formatMessage(
+                  "label.ws_parameters_for",
+                  new String[] { service.getActionText() }));
+          jf.setSize(700, 800);
+          JPanel cont = new JPanel(new BorderLayout());
+          pgui.validate();
+          cont.setPreferredSize(pgui.getPreferredSize());
+          cont.add(pgui, BorderLayout.CENTER);
+          jf.setLayout(new BorderLayout());
+          jf.add(cont, BorderLayout.CENTER);
+          jf.validate();
+
+          final Thread thr = Thread.currentThread();
+
+          /*
+           * This seems to need a user to manually inspect / test / close the
+           * GUI for each service tested. Not standalone JUnit.
+           */
+          jf.addWindowListener(new WindowAdapter()
+          {
+            public void windowClosing(WindowEvent e)
             {
-              System.out.println("Testing param write:");
-              List<String> writeparam = null, readparam = null;
-              try
-              {
-                writeparam = jalview.ws.jws2.ParameterUtils
-                        .writeParameterSet(
-                                pr.getArguments(lastserv.getRunnerConfig()),
-                                " ");
-                System.out.println("Testing param read :");
-                List<Option> pset = jalview.ws.jws2.ParameterUtils
-                        .processParameters(writeparam,
-                                lastserv.getRunnerConfig(), " ");
-                readparam = jalview.ws.jws2.ParameterUtils
-                        .writeParameterSet(pset, " ");
-                Iterator<String> o = pr.getOptions().iterator(), s = writeparam
-                        .iterator(), t = readparam.iterator();
-                boolean failed = false;
-                while (s.hasNext() && t.hasNext())
-                {
-                  String on = o.next(), sn = s.next(), st = t.next();
-                  if (!sn.equals(st))
-                  {
-                    System.out.println("Original was " + on
-                            + " Phase 1 wrote " + sn + "\tPhase 2 wrote "
-                            + st);
-                    failed = true;
-                  }
-                }
-                if (failed)
-                {
-                  System.out.println("Original parameters:\n"
-                          + pr.getOptions());
-                  System.out.println("Wrote parameters in first set:\n"
-                          + writeparam);
-                  System.out.println("Wrote parameters in second set:\n"
-                          + readparam);
-
-                }
-              } catch (Exception e)
-              {
-                e.printStackTrace();
-              }
+              thr.interrupt();
             }
-            WsJobParameters pgui = new WsJobParameters(lastserv,
-                    new JabaPreset(lastserv, pr));
-            JFrame jf = new JFrame("Parameters for "
-                    + lastserv.getActionText());
-            JPanel cont = new JPanel(new BorderLayout());
-            pgui.validate();
-            cont.setPreferredSize(pgui.getPreferredSize());
-            cont.add(pgui, BorderLayout.CENTER);
-            jf.setLayout(new BorderLayout());
-            jf.add(cont, BorderLayout.CENTER);
-            jf.validate();
-            final Thread thr = Thread.currentThread();
-            jf.addWindowListener(new WindowListener()
+          });
+          jf.setVisible(true);
+          boolean inter = false;
+          while (!inter)
+          {
+            try
             {
-
-              public void windowActivated(WindowEvent e)
-              {
-                // TODO Auto-generated method stub
-
-              }
-
-              public void windowClosed(WindowEvent e)
-              {
-              }
-
-              public void windowClosing(WindowEvent e)
-              {
-                thr.interrupt();
-
-              }
-
-              public void windowDeactivated(WindowEvent e)
-              {
-                // TODO Auto-generated method stub
-
-              }
-
-              public void windowDeiconified(WindowEvent e)
-              {
-                // TODO Auto-generated method stub
-
-              }
-
-              public void windowIconified(WindowEvent e)
-              {
-                // TODO Auto-generated method stub
-
-              }
-
-              public void windowOpened(WindowEvent e)
-              {
-                // TODO Auto-generated method stub
-
-              }
-
-            });
-            jf.setVisible(true);
-            boolean inter = false;
-            while (!inter)
+              Thread.sleep(10 * 1000);
+            } catch (InterruptedException e)
             {
-              try
-              {
-                Thread.sleep(10000);
-              } catch (Exception e)
-              {
-                inter = true;
-              }
-              ;
+              inter = true;
             }
-            jf.dispose();
           }
+          jf.dispose();
         }
       }
     }