2929
3030import java .io .File ;
3131import java .time .Duration ;
32+ import java .util .Arrays ;
33+ import java .util .List ;
3234
3335@ Tag ("UnitTests" )
3436class ChromeDriverServiceTest {
@@ -49,4 +51,42 @@ void builderPassesTimeoutToDriverService() {
4951 builderMock .build ();
5052 verify (builderMock ).createDriverService (any (), anyInt (), eq (customTimeout ), any (), any ());
5153 }
54+
55+ // Alternate behavior is throwing an error, but have to at least be consistent
56+ @ Test
57+ void logLevelLastWins () {
58+ File exe = new File ("someFile" );
59+
60+ ChromeDriverService .Builder builderMock = spy (ChromeDriverService .Builder .class );
61+ doReturn (exe ).when (builderMock ).findDefaultExecutable ();
62+
63+ List <String > silentLast = Arrays .asList ("--port=1" , "--log-level=OFF" );
64+ builderMock .withLogLevel (ChromeDriverLogLevel .ALL ).usingPort (1 ).withSilent (true ).build ();
65+ verify (builderMock ).createDriverService (any (), anyInt (), any (), eq (silentLast ), any ());
66+
67+ List <String > silentFirst = Arrays .asList ("--port=1" , "--log-level=DEBUG" );
68+ builderMock .withSilent (true ).withLogLevel (ChromeDriverLogLevel .DEBUG ).usingPort (1 ).build ();
69+ verify (builderMock ).createDriverService (any (), anyInt (), any (), eq (silentFirst ), any ());
70+
71+ List <String > verboseLast = Arrays .asList ("--port=1" , "--log-level=ALL" );
72+ builderMock .withLogLevel (ChromeDriverLogLevel .OFF ).usingPort (1 ).withVerbose (true ).build ();
73+ verify (builderMock ).createDriverService (any (), anyInt (), any (), eq (verboseLast ), any ());
74+
75+ List <String > verboseFirst = Arrays .asList ("--port=1" , "--log-level=INFO" );
76+ builderMock .withVerbose (true ).withLogLevel (ChromeDriverLogLevel .INFO ).usingPort (1 ).build ();
77+ verify (builderMock ).createDriverService (any (), anyInt (), any (), eq (verboseFirst ), any ());
78+ }
79+
80+ // Setting these to false makes no sense; we're just going to ignore it.
81+ @ Test
82+ void ignoreFalseLogging () {
83+ File exe = new File ("someFile" );
84+
85+ ChromeDriverService .Builder builderMock = spy (ChromeDriverService .Builder .class );
86+ doReturn (exe ).when (builderMock ).findDefaultExecutable ();
87+
88+ List <String > falseSilent = Arrays .asList ("--port=1" , "--log-level=DEBUG" );
89+ builderMock .withLogLevel (ChromeDriverLogLevel .DEBUG ).usingPort (1 ).withSilent (false ).build ();
90+ verify (builderMock ).createDriverService (any (), anyInt (), any (), eq (falseSilent ), any ());
91+ }
5292}
0 commit comments