@@ -764,6 +764,100 @@ void testIsVncEnabledAcceptSingleEnvVar() {
764764 assertThat (nodeOptionsEnabled .isVncEnabled ()).isFalse ();
765765 }
766766
767+ @ Test
768+ void deleteSessionOnUiIsEnabledByDefault () {
769+ Config config = new MapConfig (singletonMap ("node" , singletonMap ("detect-drivers" , "false" )));
770+ NodeOptions nodeOptions = new NodeOptions (config );
771+ assertThat (nodeOptions .isSessionDeletedOnUi ()).isTrue ();
772+ }
773+
774+ @ Test
775+ void deleteSessionOnUiCanBeEnabledExplicitly () {
776+ Config config = new MapConfig (
777+ singletonMap ("node" , ImmutableMap .of ("detect-drivers" , "false" , "delete-session-on-ui" , "true" )));
778+ NodeOptions nodeOptions = new NodeOptions (config );
779+ assertThat (nodeOptions .isSessionDeletedOnUi ()).isTrue ();
780+ }
781+
782+ @ Test
783+ void deleteSessionOnUiCanBeDisabled () {
784+ Config config = new MapConfig (
785+ singletonMap ("node" , ImmutableMap .of ("detect-drivers" , "false" , "delete-session-on-ui" , "false" )));
786+ NodeOptions nodeOptions = new NodeOptions (config );
787+ assertThat (nodeOptions .isSessionDeletedOnUi ()).isFalse ();
788+ }
789+
790+ @ Test
791+ void deleteSessionOnUiCapabilityIsAddedWhenEnabled () {
792+ assumeTrue (
793+ new ChromeDriverInfo ().isPresent () || new GeckoDriverInfo ().isPresent (),
794+ "A driver needs to be available" );
795+
796+ Config config = new MapConfig (
797+ singletonMap ("node" , ImmutableMap .of ("detect-drivers" , "true" , "delete-session-on-ui" , "true" )));
798+
799+ List <Capabilities > reported = new ArrayList <>();
800+ new NodeOptions (config )
801+ .getSessionFactories (
802+ caps -> {
803+ reported .add (caps );
804+ return Collections .singleton (HelperFactory .create (config , caps ));
805+ });
806+
807+ assertThat (reported )
808+ .filteredOn (capabilities -> capabilities .getCapability ("se:deleteSessionOnUi" ) != null )
809+ .hasSize (reported .size ());
810+
811+ assertThat (reported )
812+ .allMatch (capabilities -> Boolean .TRUE .equals (capabilities .getCapability ("se:deleteSessionOnUi" )));
813+ }
814+
815+ @ Test
816+ void deleteSessionOnUiCapabilityIsNotAddedWhenDisabled () {
817+ assumeTrue (
818+ new ChromeDriverInfo ().isPresent () || new GeckoDriverInfo ().isPresent (),
819+ "A driver needs to be available" );
820+
821+ Config config = new MapConfig (
822+ singletonMap ("node" , ImmutableMap .of ("detect-drivers" , "true" , "delete-session-on-ui" , "false" )));
823+
824+ List <Capabilities > reported = new ArrayList <>();
825+ new NodeOptions (config )
826+ .getSessionFactories (
827+ caps -> {
828+ reported .add (caps );
829+ return Collections .singleton (HelperFactory .create (config , caps ));
830+ });
831+
832+ assertThat (reported )
833+ .filteredOn (capabilities -> capabilities .getCapability ("se:deleteSessionOnUi" ) == null )
834+ .hasSize (reported .size ());
835+ }
836+
837+ @ Test
838+ void deleteSessionOnUiCapabilityIsAddedByDefault () {
839+ assumeTrue (
840+ new ChromeDriverInfo ().isPresent () || new GeckoDriverInfo ().isPresent (),
841+ "A driver needs to be available" );
842+
843+ Config config = new MapConfig (singletonMap ("node" , singletonMap ("detect-drivers" , "true" )));
844+
845+ List <Capabilities > reported = new ArrayList <>();
846+ new NodeOptions (config )
847+ .getSessionFactories (
848+ caps -> {
849+ reported .add (caps );
850+ return Collections .singleton (HelperFactory .create (config , caps ));
851+ });
852+
853+ assertThat (reported )
854+ .filteredOn (capabilities -> capabilities .getCapability ("se:deleteSessionOnUi" ) != null )
855+ .hasSize (reported .size ());
856+
857+ assertThat (reported )
858+ .allMatch (capabilities -> Boolean .TRUE .equals (capabilities .getCapability ("se:deleteSessionOnUi" )));
859+ }
860+
767861 private Condition <? super List <? extends Capabilities >> supporting (String name ) {
768862 return new Condition <>(
769863 caps -> caps .stream ().anyMatch (cap -> name .equals (cap .getBrowserName ())),
0 commit comments