Clover icon

Coverage Report

  1. Project Clover database Thu Nov 7 2024 13:01:17 GMT
  2. Package jalview.io

File BioJsHTMLOutputTest.java

 

Code metrics

0
48
6
1
162
127
12
0.25
8
6
2

Classes

Class Line # Actions
BioJsHTMLOutputTest 40 48 12
0.550%
 

Contributing tests

This file is covered by 3 tests. .

Source view

1    /*
2    * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3    * Copyright (C) $$Year-Rel$$ The Jalview Authors
4    *
5    * This file is part of Jalview.
6    *
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.
11    *
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.
16    *
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.
20    */
21    package jalview.io;
22   
23    import jalview.gui.JvOptionPane;
24    import jalview.json.binding.biojs.BioJSReleasePojo;
25    import jalview.json.binding.biojs.BioJSRepositoryPojo;
26   
27    import java.io.File;
28    import java.io.IOException;
29    import java.net.MalformedURLException;
30    import java.net.URISyntaxException;
31    import java.net.URL;
32    import java.net.URLConnection;
33    import java.util.TreeMap;
34   
35    import org.testng.Assert;
36    import org.testng.AssertJUnit;
37    import org.testng.annotations.BeforeClass;
38    import org.testng.annotations.Test;
39   
 
40    public class BioJsHTMLOutputTest
41    {
42   
 
43  1 toggle @BeforeClass(alwaysRun = true)
44    public void setUpJvOptionPane()
45    {
46  1 JvOptionPane.setInteractiveMode(false);
47  1 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
48    }
49   
 
50  1 toggle @Test(groups = { "Functional" })
51    public void getJalviewAlignmentAsJsonString()
52    {
53  1 String bjsTemplate = null;
54  1 try
55    {
56  1 BioJsHTMLOutput.updateBioJS();
57  1 try
58    {
59    // allow the update some three seconds to complete before getting latest
60    // version of BioJS template
61  1 Thread.sleep(1000 * 3);
62    } catch (InterruptedException e)
63    {
64  0 e.printStackTrace();
65    }
66  1 bjsTemplate = HTMLOutput.readFileAsString(
67    BioJsHTMLOutput.getCurrentBJSTemplateFile());
68    // System.out.println(bjsTemplate);
69    } catch (IOException e)
70    {
71  0 e.printStackTrace();
72    }
73  1 Assert.assertNotNull(bjsTemplate);
74    }
75   
 
76  1 toggle @Test(
77    groups =
78    { "Functional" },
79    expectedExceptions = NullPointerException.class)
80    public void expectedNullPointerException()
81    {
82  1 try
83    {
84  1 BioJsHTMLOutput.refreshVersionInfo(null);
85    } catch (URISyntaxException e)
86    {
87  0 AssertJUnit.fail("Expception occured while testing!");
88  0 e.printStackTrace();
89    }
90    }
91   
 
92  1 toggle @Test(groups = { "Functional" })
93    public void getBioJsMSAVersions()
94    {
95  1 TreeMap<String, File> versions = null;
96  1 try
97    {
98  1 BioJsHTMLOutput.refreshVersionInfo(
99    BioJsHTMLOutput.BJS_TEMPLATES_LOCAL_DIRECTORY);
100  1 versions = BioJsHTMLOutput.getBioJsMSAVersions();
101    } catch (URISyntaxException e)
102    {
103  0 AssertJUnit.fail("Expception occured while testing!");
104  0 e.printStackTrace();
105    }
106  1 AssertJUnit.assertNotNull("No versions found", versions);
107  1 AssertJUnit.assertTrue("One or more Templates required",
108    versions.size() > 0);
109  1 System.out
110    .println("Number of discovered versions : " + versions.size());
111  1 for (String v : versions.keySet())
112    {
113  3 System.out.println("version : " + v);
114  3 System.out.println("File : " + versions.get(v));
115    }
116   
117  1 System.out.println("\nCurrent latest version : "
118    + BioJsHTMLOutput.getCurrentBJSTemplateFile());
119  1 AssertJUnit.assertNotNull("Latest BioJsMSA version NOT found!",
120    BioJsHTMLOutput.getCurrentBJSTemplateFile());
121   
122    }
123   
 
124  0 toggle @Test(groups = { "Network" })
125    public void testBioJsUpdate()
126    {
127  0 String url = BioJsHTMLOutput.BJS_TEMPLATE_GIT_REPO;
128  0 AssertJUnit.assertTrue("URL not reacable : " + url,
129    urlIsReachable(url));
130  0 String response = BioJsHTMLOutput.getURLContentAsString(url);
131  0 AssertJUnit.assertNotNull("Null response read from url!", response);
132  0 BioJSRepositoryPojo repository = new BioJSRepositoryPojo(response);
133  0 System.out.println(">>> description : " + repository.getDescription());
134  0 System.out.println(
135    ">>> latest version : " + repository.getLatestReleaseVersion());
136  0 System.out
137    .println(">>> repo count : " + repository.getReleases().size());
138  0 for (BioJSReleasePojo release : repository.getReleases())
139    {
140  0 System.out.println("repo type : " + release.getType());
141  0 System.out.println("url : " + release.getUrl());
142  0 System.out.println("release version : " + release.getVersion());
143    }
144    }
145   
 
146  0 toggle private static boolean urlIsReachable(String urlString)
147    {
148  0 try
149    {
150  0 final URL url = new URL(urlString);
151  0 final URLConnection conn = url.openConnection();
152  0 conn.connect();
153  0 return true;
154    } catch (MalformedURLException e)
155    {
156  0 throw new RuntimeException(e);
157    } catch (IOException e)
158    {
159  0 return false;
160    }
161    }
162    }