@@ -51,7 +51,7 @@ module Firefox
5151 it 'does not create args by default' do
5252 service = described_class . new
5353
54- expect ( service . extra_args ) . to be_empty
54+ expect ( service . extra_args . count ) . to eq 2
5555 end
5656
5757 it 'uses sets log path to stdout' do
@@ -73,17 +73,32 @@ module Firefox
7373 end
7474
7575 it 'uses provided args' do
76- service = described_class . new ( args : [ '--foo' , '--bar' ] )
76+ service = described_class . new ( args : %w[ --foo --bar ] )
77+ expect ( service . extra_args ) . to include ( *%w[ --foo --bar ] )
78+ end
79+
80+ context 'with websocket parameter' do
81+ it 'validates the websocket parameter is present and there is a random port' do
82+ service = described_class . new
83+ ws_index = service . extra_args . index ( '--websocket-port' )
84+ port = service . extra_args [ ws_index + 1 ] . to_i
85+ expect ( port ) . to be > 0
86+ expect ( port ) . to be < 65_536
87+ end
7788
78- expect ( service . extra_args ) . to eq [ '--foo' , '--bar' ]
89+ it 'validates with --connect-existing that there is no --websocket-port and the port is not random' do
90+ service = described_class . new ( args : [ '--connect-existing' ] )
91+ expect ( service . extra_args ) . not_to include ( '--websocket-port' )
92+ expect ( service . extra_args ) . to eq ( [ '--connect-existing' ] )
93+ end
7994 end
8095 end
8196
8297 context 'when initializing driver' do
8398 let ( :driver ) { Firefox ::Driver }
8499 let ( :service ) do
85100 instance_double ( described_class , launch : service_manager , executable_path : nil , 'executable_path=' : nil ,
86- class : described_class )
101+ class : described_class )
87102 end
88103 let ( :service_manager ) { instance_double ( ServiceManager , uri : 'http://example.com' ) }
89104 let ( :bridge ) { instance_double ( Remote ::Bridge , quit : nil , create_session : { } ) }
0 commit comments