X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fio%2FBioJsHTMLOutputTest.java;h=24e6cf7b2155d0d78173d33eff83eeb4f3837e7f;hb=582096635d0502a9bc8415c8f1ef3bcc9c545a44;hp=86b54700b266c9eb6383c02803d060efaf380e91;hpb=64fb69927bb37d8773a75b684a3e7ab3f0c5c212;p=jalview.git diff --git a/test/jalview/io/BioJsHTMLOutputTest.java b/test/jalview/io/BioJsHTMLOutputTest.java index 86b5470..24e6cf7 100644 --- a/test/jalview/io/BioJsHTMLOutputTest.java +++ b/test/jalview/io/BioJsHTMLOutputTest.java @@ -1,26 +1,70 @@ +/* + * 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 . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.io; +import jalview.gui.JvOptionPane; +import jalview.json.binding.biojs.BioJSReleasePojo; +import jalview.json.binding.biojs.BioJSRepositoryPojo; + import java.io.File; import java.io.IOException; +import java.net.MalformedURLException; import java.net.URISyntaxException; +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) { @@ -29,39 +73,40 @@ 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.updateBioJSVersionsInfo(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 versions = null; try { - versions = bjs - .updateBioJSVersionsInfo(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); @@ -70,8 +115,47 @@ 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(groups = { "Network" }) + public void testBioJsUpdate() + { + String url = BioJsHTMLOutput.BJS_TEMPLATE_GIT_REPO; + AssertJUnit + .assertTrue("URL not reacable : " + url, urlIsReachable(url)); + String response = BioJsHTMLOutput.getURLContentAsString(url); + 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(">>> repo count : " + + repository.getReleases().size()); + for (BioJSReleasePojo release : repository.getReleases()) + { + System.out.println("repo type : " + release.getType()); + System.out.println("url : " + release.getUrl()); + System.out.println("release version : " + release.getVersion()); + } + } + + private static boolean urlIsReachable(String urlString) + { + try + { + final URL url = new URL(urlString); + final URLConnection conn = url.openConnection(); + conn.connect(); + return true; + } catch (MalformedURLException e) + { + throw new RuntimeException(e); + } catch (IOException e) + { + return false; + } + } }