17
17
18
18
package org .openqa .selenium .server .htmlrunner ;
19
19
20
+ import static java .util .concurrent .TimeUnit .SECONDS ;
21
+
22
+ import com .google .common .collect .ImmutableMap ;
23
+
20
24
import com .beust .jcommander .JCommander ;
21
25
import com .beust .jcommander .Parameter ;
22
26
import com .beust .jcommander .ParameterException ;
23
27
import com .beust .jcommander .internal .Console ;
24
- import com .google .common .collect .ImmutableMap ;
25
28
import com .thoughtworks .selenium .Selenium ;
26
29
import com .thoughtworks .selenium .webdriven .WebDriverBackedSelenium ;
30
+
27
31
import org .openqa .selenium .By ;
28
32
import org .openqa .selenium .WebDriver ;
29
33
import org .openqa .selenium .WebElement ;
58
62
import java .util .logging .Level ;
59
63
import java .util .logging .Logger ;
60
64
61
- import static java .util .concurrent .TimeUnit .SECONDS ;
62
-
63
65
/**
64
66
* Runs HTML Selenium test suites.
65
67
*/
@@ -72,6 +74,100 @@ public class HTMLLauncher {
72
74
73
75
private Server <?> server ;
74
76
77
+ private static String printUsage (JCommander commander ) {
78
+ StringBuilder usage = new StringBuilder ();
79
+ commander .setConsole (new Console () {
80
+ @ Override
81
+ public void print (String msg ) {
82
+ usage .append (msg );
83
+ }
84
+
85
+ @ Override
86
+ public void println (String msg ) {
87
+ usage .append (msg ).append ("\n " );
88
+ }
89
+
90
+ @ Override
91
+ public char [] readPassword (boolean echoInput ) {
92
+ throw new UnsupportedOperationException ("readPassword" );
93
+ }
94
+ });
95
+ commander .usage ();
96
+
97
+ return usage .toString ();
98
+ }
99
+
100
+ public static int mainInt (String ... args ) throws Exception {
101
+ Args processed = new Args ();
102
+ JCommander jCommander = new JCommander (processed );
103
+ jCommander .setCaseSensitiveOptions (false );
104
+ try {
105
+ jCommander .parse (args );
106
+ } catch (ParameterException ex ) {
107
+ System .err .print (ex .getMessage () + "\n " + printUsage (jCommander ));
108
+ return 0 ;
109
+ }
110
+
111
+ if (processed .help ) {
112
+ System .err .print (printUsage (jCommander ));
113
+ return 0 ;
114
+ }
115
+
116
+ warnAboutLegacyOptions (processed );
117
+
118
+ Path resultsPath = Paths .get (processed .htmlSuite .get (3 ));
119
+ Files .createDirectories (resultsPath );
120
+
121
+ String suite = processed .htmlSuite .get (2 );
122
+ String startURL = processed .htmlSuite .get (1 );
123
+ String [] browsers = new String [] {processed .htmlSuite .get (0 )};
124
+
125
+ HTMLLauncher launcher = new HTMLLauncher ();
126
+
127
+ boolean passed = true ;
128
+ for (String browser : browsers ) {
129
+ // Turns out that Windows doesn't like "*" in a path name
130
+ String reportFileName = browser .contains (" " ) ? browser .substring (0 , browser .indexOf (' ' )) : browser ;
131
+ File results = resultsPath .resolve (reportFileName .substring (1 ) + ".results.html" ).toFile ();
132
+ String result = "FAILED" ;
133
+
134
+ try {
135
+ long timeout ;
136
+ try {
137
+ timeout = Long .parseLong (processed .timeout );
138
+ } catch (NumberFormatException e ) {
139
+ System .err .println ("Timeout does not appear to be a number: " + processed .timeout );
140
+ return -2 ;
141
+ }
142
+ result = launcher .runHTMLSuite (browser , startURL , suite , results , timeout , processed .userExtensions );
143
+ passed &= "PASSED" .equals (result );
144
+ } catch (Throwable e ) {
145
+ log .log (Level .WARNING , "Test of browser failed: " + browser , e );
146
+ passed = false ;
147
+ }
148
+ }
149
+
150
+ return passed ? 1 : 0 ;
151
+ }
152
+
153
+ private static void warnAboutLegacyOptions (Args processed ) {
154
+ if (processed .multiWindow ) {
155
+ System .err .println ("Multi-window mode is no longer used as an option and will be ignored." );
156
+ }
157
+
158
+ if (processed .port != 0 ) {
159
+ System .err .println ("Port is no longer used as an option and will be ignored." );
160
+ }
161
+
162
+ if (processed .trustAllSSLCertificates ) {
163
+ System .err .println ("Trusting all ssl certificates is no longer a user-settable option." );
164
+ }
165
+ }
166
+
167
+ public static void main (String [] args ) throws Exception {
168
+ System .exit (mainInt (args ));
169
+ }
170
+
75
171
/**
76
172
* Launches a single HTML Selenium test suite.
77
173
*
@@ -193,100 +289,6 @@ private URL verifySuiteUrl(URL url) throws IOException {
193
289
return url ;
194
290
}
195
291
196
- private static String printUsage (JCommander commander ) {
197
- StringBuilder usage = new StringBuilder ();
198
- commander .setConsole (new Console () {
199
- @ Override
200
- public void print (String msg ) {
201
- usage .append (msg );
202
- }
203
-
204
- @ Override
205
- public void println (String msg ) {
206
- usage .append (msg ).append ("\n " );
207
- }
208
-
209
- @ Override
210
- public char [] readPassword (boolean echoInput ) {
211
- throw new UnsupportedOperationException ("readPassword" );
212
- }
213
- });
214
- commander .usage ();
215
-
216
- return usage .toString ();
217
- }
218
-
219
- public static int mainInt (String ... args ) throws Exception {
220
- Args processed = new Args ();
221
- JCommander jCommander = new JCommander (processed );
222
- jCommander .setCaseSensitiveOptions (false );
223
- try {
224
- jCommander .parse (args );
225
- } catch (ParameterException ex ) {
226
- System .err .print (ex .getMessage () + "\n " + printUsage (jCommander ));
227
- return 0 ;
228
- }
229
-
230
- if (processed .help ) {
231
- System .err .print (printUsage (jCommander ));
232
- return 0 ;
233
- }
234
-
235
- warnAboutLegacyOptions (processed );
236
-
237
- Path resultsPath = Paths .get (processed .htmlSuite .get (3 ));
238
- Files .createDirectories (resultsPath );
239
-
240
- String suite = processed .htmlSuite .get (2 );
241
- String startURL = processed .htmlSuite .get (1 );
242
- String [] browsers = new String [] {processed .htmlSuite .get (0 )};
243
-
244
- HTMLLauncher launcher = new HTMLLauncher ();
245
-
246
- boolean passed = true ;
247
- for (String browser : browsers ) {
248
- // Turns out that Windows doesn't like "*" in a path name
249
- String reportFileName = browser .contains (" " ) ? browser .substring (0 , browser .indexOf (' ' )) : browser ;
250
- File results = resultsPath .resolve (reportFileName .substring (1 ) + ".results.html" ).toFile ();
251
- String result = "FAILED" ;
252
-
253
- try {
254
- long timeout ;
255
- try {
256
- timeout = Long .parseLong (processed .timeout );
257
- } catch (NumberFormatException e ) {
258
- System .err .println ("Timeout does not appear to be a number: " + processed .timeout );
259
- return -2 ;
260
- }
261
- result = launcher .runHTMLSuite (browser , startURL , suite , results , timeout , processed .userExtensions );
262
- passed &= "PASSED" .equals (result );
263
- } catch (Throwable e ) {
264
- log .log (Level .WARNING , "Test of browser failed: " + browser , e );
265
- passed = false ;
266
- }
267
- }
268
-
269
- return passed ? 1 : 0 ;
270
- }
271
-
272
- private static void warnAboutLegacyOptions (Args processed ) {
273
- if (processed .multiWindow ) {
274
- System .err .println ("Multi-window mode is no longer used as an option and will be ignored." );
275
- }
276
-
277
- if (processed .port != 0 ) {
278
- System .err .println ("Port is no longer used as an option and will be ignored." );
279
- }
280
-
281
- if (processed .trustAllSSLCertificates ) {
282
- System .err .println ("Trusting all ssl certificates is no longer a user-settable option." );
283
- }
284
- }
285
-
286
- public static void main (String [] args ) throws Exception {
287
- System .exit (mainInt (args ));
288
- }
289
-
290
292
private WebDriver createDriver (String browser ) {
291
293
String [] parts = browser .split (" " , 2 );
292
294
browser = parts [0 ];
@@ -296,7 +298,7 @@ private WebDriver createDriver(String browser) {
296
298
case "*firefoxproxy" :
297
299
case "*firefoxchrome" :
298
300
case "*pifirefox" :
299
- FirefoxOptions options = new FirefoxOptions (). setLegacy ( false ) ;
301
+ FirefoxOptions options = new FirefoxOptions ();
300
302
if (parts .length > 1 ) {
301
303
options .setBinary (parts [1 ]);
302
304
}
0 commit comments