JAL-3365 expand range of allowed DSSP secondary structure symbols in Stockholm files
[jalview.git] / test / jalview / io / BioJsHTMLOutputTest.java
index 3e94aa9..63485a6 100644 (file)
@@ -1,7 +1,28 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ 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.
+ *  
+ * 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/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.io;
 
-import jalview.json.binding.v1.BioJSReleasePojo;
-import jalview.json.binding.v1.BioJSRepositoryPojo;
+import jalview.gui.JvOptionPane;
+import jalview.json.binding.biojs.BioJSReleasePojo;
+import jalview.json.binding.biojs.BioJSRepositoryPojo;
 
 import java.io.File;
 import java.io.IOException;
@@ -11,22 +32,39 @@ import java.net.URL;
 import java.net.URLConnection;
 import java.util.TreeMap;
 
-import org.junit.Assert;
-import org.junit.Test;
-
+import org.testng.Assert;
+import org.testng.AssertJUnit;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
 
 public class BioJsHTMLOutputTest
 {
 
-  @Test
+  @BeforeClass(alwaysRun = true)
+  public void setUpJvOptionPane()
+  {
+    JvOptionPane.setInteractiveMode(false);
+    JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+  }
+
+  @Test(groups = { "Functional" })
   public void getJalviewAlignmentAsJsonString()
   {
-    BioJsHTMLOutput bioJsHtmlOutput = new BioJsHTMLOutput(null, null);
     String bjsTemplate = null;
     try
     {
-      bioJsHtmlOutput.updateBioJS();
-      bjsTemplate = BioJsHTMLOutput.getBioJsTemplateAsString();
+      BioJsHTMLOutput.updateBioJS();
+      try
+      {
+        // allow the update some three seconds to complete before getting latest
+        // version of BioJS template
+        Thread.sleep(1000 * 3);
+      } catch (InterruptedException e)
+      {
+        e.printStackTrace();
+      }
+      bjsTemplate = HTMLOutput.readFileAsString(
+              BioJsHTMLOutput.getCurrentBJSTemplateFile());
       // System.out.println(bjsTemplate);
     } catch (IOException e)
     {
@@ -35,39 +73,41 @@ public class BioJsHTMLOutputTest
     Assert.assertNotNull(bjsTemplate);
   }
 
-  @Test(expected = NullPointerException.class)
+  @Test(
+    groups =
+    { "Functional" },
+    expectedExceptions = NullPointerException.class)
   public void expectedNullPointerException()
   {
-    BioJsHTMLOutput bjs = new BioJsHTMLOutput(null, null);
     try
     {
-      bjs.refreshBioJSVersionsInfo(null);
+      BioJsHTMLOutput.refreshVersionInfo(null);
     } catch (URISyntaxException e)
     {
-      Assert.fail("Expception occured while testing!");
+      AssertJUnit.fail("Expception occured while testing!");
       e.printStackTrace();
     }
   }
 
-  @Test
+  @Test(groups = { "Functional" })
   public void getBioJsMSAVersions()
   {
-    BioJsHTMLOutput bjs = new BioJsHTMLOutput(null, null);
     TreeMap<String, File> versions = null;
     try
     {
-      bjs.refreshBioJSVersionsInfo(BioJsHTMLOutput.BJS_TEMPLATES_LOCAL_DIRECTORY);
+      BioJsHTMLOutput.refreshVersionInfo(
+              BioJsHTMLOutput.BJS_TEMPLATES_LOCAL_DIRECTORY);
       versions = BioJsHTMLOutput.getBioJsMSAVersions();
     } catch (URISyntaxException e)
     {
-      Assert.fail("Expception occured while testing!");
+      AssertJUnit.fail("Expception occured while testing!");
       e.printStackTrace();
     }
-    Assert.assertNotNull("No versions found", versions);
-    Assert.assertTrue("One or more Templates required", versions.size() > 0);
+    AssertJUnit.assertNotNull("No versions found", versions);
+    AssertJUnit.assertTrue("One or more Templates required",
+            versions.size() > 0);
     System.out
-            .println("Number of discovered versions : "
-            + versions.size());
+            .println("Number of discovered versions : " + versions.size());
     for (String v : versions.keySet())
     {
       System.out.println("version : " + v);
@@ -76,25 +116,25 @@ public class BioJsHTMLOutputTest
 
     System.out.println("\nCurrent latest version : "
             + BioJsHTMLOutput.getCurrentBJSTemplateFile());
-    Assert.assertNotNull("Latest BioJsMSA version NOT found!",
+    AssertJUnit.assertNotNull("Latest BioJsMSA version NOT found!",
             BioJsHTMLOutput.getCurrentBJSTemplateFile());
 
   }
 
-  @Test
+  @Test(groups = { "Network" })
   public void testBioJsUpdate()
   {
     String url = BioJsHTMLOutput.BJS_TEMPLATE_GIT_REPO;
-    Assert.assertTrue("URL not reacable : " + url, urlIsReachable(url));
+    AssertJUnit.assertTrue("URL not reacable : " + url,
+            urlIsReachable(url));
     String response = BioJsHTMLOutput.getURLContentAsString(url);
-    Assert.assertNotNull("Null response read from url!", response);
+    AssertJUnit.assertNotNull("Null response read from url!", response);
     BioJSRepositoryPojo repository = new BioJSRepositoryPojo(response);
     System.out.println(">>> description : " + repository.getDescription());
+    System.out.println(
+            ">>> latest version : " + repository.getLatestReleaseVersion());
     System.out
-.println(">>> latest version : "
-            + repository.getLatestReleaseVersion());
-    System.out.println(">>> repo count : "
-            + repository.getReleases().size());
+            .println(">>> repo count : " + repository.getReleases().size());
     for (BioJSReleasePojo release : repository.getReleases())
     {
       System.out.println("repo type : " + release.getType());