@@ -301,23 +301,34 @@ private Container createBrowserContainer(int port, Capabilities sessionCapabilit
301
301
}
302
302
303
303
private Map <String , String > getBrowserContainerEnvVars (Capabilities sessionRequestCapabilities ) {
304
- Optional <Dimension > screenResolution =
305
- ofNullable (getScreenResolution (sessionRequestCapabilities ));
306
304
Map <String , String > envVars = new HashMap <>();
307
- if (screenResolution .isPresent ()) {
308
- envVars .put ("SE_SCREEN_WIDTH" , String .valueOf (screenResolution .get ().getWidth ()));
309
- envVars .put ("SE_SCREEN_HEIGHT" , String .valueOf (screenResolution .get ().getHeight ()));
310
- }
311
- Optional <TimeZone > timeZone = ofNullable (getTimeZone (sessionRequestCapabilities ));
312
- timeZone .ifPresent (zone -> envVars .put ("TZ" , zone .getID ()));
313
305
// Passing env vars set to the child container
306
+ setEnvVarsToContainer (envVars );
307
+ // Capabilities set to env vars with higher precedence
308
+ setCapsToEnvVars (sessionRequestCapabilities , envVars );
309
+ return envVars ;
310
+ }
311
+
312
+ private void setEnvVarsToContainer (Map <String , String > envVars ) {
314
313
Map <String , String > seEnvVars = System .getenv ();
315
314
seEnvVars .entrySet ().stream ()
316
315
.filter (
317
316
entry ->
318
317
entry .getKey ().startsWith ("SE_" ) || entry .getKey ().equalsIgnoreCase ("LANGUAGE" ))
319
318
.forEach (entry -> envVars .put (entry .getKey (), entry .getValue ()));
320
- return envVars ;
319
+ }
320
+
321
+ private void setCapsToEnvVars (
322
+ Capabilities sessionRequestCapabilities , Map <String , String > envVars ) {
323
+ Optional <Dimension > screenResolution =
324
+ ofNullable (getScreenResolution (sessionRequestCapabilities ));
325
+ screenResolution .ifPresent (
326
+ dimension -> {
327
+ envVars .put ("SE_SCREEN_WIDTH" , String .valueOf (dimension .getWidth ()));
328
+ envVars .put ("SE_SCREEN_HEIGHT" , String .valueOf (dimension .getHeight ()));
329
+ });
330
+ Optional <TimeZone > timeZone = ofNullable (getTimeZone (sessionRequestCapabilities ));
331
+ timeZone .ifPresent (zone -> envVars .put ("TZ" , zone .getID ()));
321
332
}
322
333
323
334
private Container startVideoContainer (
@@ -357,17 +368,31 @@ private Container startVideoContainer(
357
368
private Map <String , String > getVideoContainerEnvVars (
358
369
Capabilities sessionRequestCapabilities , String containerIp ) {
359
370
Map <String , String > envVars = new HashMap <>();
371
+ // Passing env vars set to the child container
372
+ setEnvVarsToContainer (envVars );
373
+ // Capabilities set to env vars with higher precedence
374
+ setCapsToEnvVars (sessionRequestCapabilities , envVars );
360
375
envVars .put ("DISPLAY_CONTAINER_NAME" , containerIp );
361
- Optional <Dimension > screenResolution =
362
- ofNullable (getScreenResolution (sessionRequestCapabilities ));
363
- screenResolution .ifPresent (
364
- dimension -> {
365
- envVars .put ("SE_SCREEN_WIDTH" , String .valueOf (dimension .getWidth ()));
366
- envVars .put ("SE_SCREEN_HEIGHT" , String .valueOf (dimension .getHeight ()));
367
- });
376
+ Optional <String > testName = ofNullable (getTestName (sessionRequestCapabilities ));
377
+ testName .ifPresent (name -> envVars .put ("SE_VIDEO_FILE_NAME" , String .format ("%s.mp4" , name )));
368
378
return envVars ;
369
379
}
370
380
381
+ private String getTestName (Capabilities sessionRequestCapabilities ) {
382
+ Optional <Object > testName = ofNullable (sessionRequestCapabilities .getCapability ("se:name" ));
383
+ if (testName .isPresent ()) {
384
+ String name = testName .get ().toString ();
385
+ if (!name .isEmpty ()) {
386
+ name = name .replaceAll (" " , "_" ).replaceAll ("[^a-zA-Z0-9_-]" , "" );
387
+ if (name .length () > 251 ) {
388
+ name = name .substring (0 , 251 );
389
+ }
390
+ return name ;
391
+ }
392
+ }
393
+ return null ;
394
+ }
395
+
371
396
private TimeZone getTimeZone (Capabilities sessionRequestCapabilities ) {
372
397
Optional <Object > timeZone = ofNullable (sessionRequestCapabilities .getCapability ("se:timeZone" ));
373
398
if (timeZone .isPresent ()) {
0 commit comments