Class |
Line # |
Actions |
|||
---|---|---|---|---|---|
BioJsHTMLOutputTest | 40 | 48 | 12 |
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 | @BeforeClass(alwaysRun = true) |
44 | public void setUpJvOptionPane() | |
45 | { | |
46 | 1 | JvOptionPane.setInteractiveMode(false); |
47 | 1 | JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); |
48 | } | |
49 | ||
50 | 1 | @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 | @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 | @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 | @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 | 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 | } |