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