2323
2424module Selenium
2525 describe Server do
26- let ( :mock_process ) { instance_double ( WebDriver ::ChildProcess ) . as_null_object }
26+ let ( :mock_process ) do
27+ instance_double ( WebDriver ::ChildProcess ) . tap do |mock |
28+ allow ( mock ) . to receive ( :start )
29+ allow ( mock ) . to receive ( :wait )
30+ allow ( mock ) . to receive ( :stop )
31+ allow ( mock ) . to receive ( :detach= )
32+ allow ( mock ) . to receive ( :io )
33+ allow ( mock ) . to receive ( :io= )
34+ end
35+ end
2736 let ( :mock_poller ) { instance_double ( WebDriver ::SocketPoller , connected? : true , closed? : true ) }
2837 let ( :repo ) { 'https://api.github.com/repos/seleniumhq/selenium/releases' }
2938 let ( :port ) { WebDriver ::PortProber . above ( 4444 ) }
@@ -49,7 +58,8 @@ module Selenium
4958 it 'uses the given jar file and port' do
5059 allow ( File ) . to receive ( :exist? ) . with ( 'selenium_server_deploy.jar' ) . and_return ( true )
5160 allow ( WebDriver ::ChildProcess ) . to receive ( :build )
52- . with ( 'java' , '-jar' , 'selenium_server_deploy.jar' , 'standalone' , '--port' , '1234' )
61+ . with ( 'java' , '-jar' , 'selenium_server_deploy.jar' , 'standalone' , '--port' , '1234' ,
62+ '--override-max-sessions' , 'true' , '--max-sessions' , Etc . nprocessors . to_s )
5363 . and_return ( mock_process )
5464
5565 server = described_class . new ( 'selenium_server_deploy.jar' , port : 1234 , background : true )
@@ -58,13 +68,15 @@ module Selenium
5868 server . start
5969 expect ( File ) . to have_received ( :exist? ) . with ( 'selenium_server_deploy.jar' )
6070 expect ( WebDriver ::ChildProcess ) . to have_received ( :build )
61- . with ( 'java' , '-jar' , 'selenium_server_deploy.jar' , 'standalone' , '--port' , '1234' )
71+ . with ( 'java' , '-jar' , 'selenium_server_deploy.jar' , 'standalone' , '--port' , '1234' ,
72+ '--override-max-sessions' , 'true' , '--max-sessions' , Etc . nprocessors . to_s )
6273 end
6374
6475 it 'waits for the server process by default' do
6576 allow ( File ) . to receive ( :exist? ) . with ( 'selenium_server_deploy.jar' ) . and_return ( true )
6677 allow ( WebDriver ::ChildProcess ) . to receive ( :build )
67- . with ( 'java' , '-jar' , 'selenium_server_deploy.jar' , 'standalone' , '--port' , port . to_s )
78+ . with ( 'java' , '-jar' , 'selenium_server_deploy.jar' , 'standalone' , '--port' , port . to_s ,
79+ '--override-max-sessions' , 'true' , '--max-sessions' , Etc . nprocessors . to_s )
6880 . and_return ( mock_process )
6981
7082 server = described_class . new ( 'selenium_server_deploy.jar' , port : port )
@@ -75,14 +87,16 @@ module Selenium
7587
7688 expect ( File ) . to have_received ( :exist? ) . with ( 'selenium_server_deploy.jar' )
7789 expect ( WebDriver ::ChildProcess ) . to have_received ( :build )
78- . with ( 'java' , '-jar' , 'selenium_server_deploy.jar' , 'standalone' , '--port' , port . to_s )
90+ . with ( 'java' , '-jar' , 'selenium_server_deploy.jar' , 'standalone' , '--port' , port . to_s ,
91+ '--override-max-sessions' , 'true' , '--max-sessions' , Etc . nprocessors . to_s )
7992 expect ( mock_process ) . to have_received ( :wait )
8093 end
8194
8295 it 'adds additional args' do
8396 allow ( File ) . to receive ( :exist? ) . with ( 'selenium_server_deploy.jar' ) . and_return ( true )
8497 allow ( WebDriver ::ChildProcess ) . to receive ( :build )
85- . with ( 'java' , '-jar' , 'selenium_server_deploy.jar' , 'standalone' , '--port' , port . to_s , 'foo' , 'bar' )
98+ . with ( 'java' , '-jar' , 'selenium_server_deploy.jar' , 'standalone' , '--port' , port . to_s ,
99+ '--override-max-sessions' , 'true' , '--max-sessions' , Etc . nprocessors . to_s , 'foo' , 'bar' )
86100 . and_return ( mock_process )
87101
88102 server = described_class . new ( 'selenium_server_deploy.jar' , port : port , background : true )
@@ -94,7 +108,8 @@ module Selenium
94108 expect ( File ) . to have_received ( :exist? ) . with ( 'selenium_server_deploy.jar' )
95109 expect ( WebDriver ::ChildProcess ) . to have_received ( :build )
96110 . with ( 'java' , '-jar' , 'selenium_server_deploy.jar' , 'standalone' ,
97- '--port' , port . to_s , 'foo' , 'bar' )
111+ '--port' , port . to_s , '--override-max-sessions' , 'true' , '--max-sessions' , Etc . nprocessors . to_s ,
112+ 'foo' , 'bar' )
98113 end
99114
100115 it 'adds additional JAVA options args' do
@@ -105,6 +120,8 @@ module Selenium
105120 '-jar' , 'selenium_server_deploy.jar' ,
106121 'standalone' ,
107122 '--port' , port . to_s ,
123+ '--override-max-sessions' , 'true' ,
124+ '--max-sessions' , Etc . nprocessors . to_s ,
108125 'foo' ,
109126 'bar' )
110127 . and_return ( mock_process )
@@ -197,7 +214,8 @@ module Selenium
197214 it 'raises Selenium::Server::Error if the server is not launched within the timeout' do
198215 allow ( File ) . to receive ( :exist? ) . with ( 'selenium_server_deploy.jar' ) . and_return ( true )
199216 allow ( WebDriver ::ChildProcess ) . to receive ( :build )
200- . with ( 'java' , '-jar' , 'selenium_server_deploy.jar' , 'standalone' , '--port' , port . to_s )
217+ . with ( 'java' , '-jar' , 'selenium_server_deploy.jar' , 'standalone' , '--port' , port . to_s ,
218+ '--override-max-sessions' , 'true' , '--max-sessions' , Etc . nprocessors . to_s )
201219 . and_return ( mock_process )
202220
203221 poller = instance_double ( WebDriver ::SocketPoller )
0 commit comments