Procházet zdrojové kódy

Pass self when constructing CMD to make name available

We'll need to name the task something unique in windows so that we can
figure out how to kill it at the end of the run.
Daniel Gempesaw před 10 roky
rodič
revize
db448823a0
2 změnil soubory, kde provedl 11 přidání a 7 odebrání
  1. 10 6
      lib/Selenium/CanStartBinary.pm
  2. 1 1
      t/CanStartBinary.t

+ 10 - 6
lib/Selenium/CanStartBinary.pm

@@ -131,7 +131,7 @@ sub start_binary_on_port {
     if (ref($self) eq 'Selenium::Firefox') {
         setup_firefox_binary_env($port);
     }
-    my $command = _construct_command($executable, $port);
+    my $command = $self->_construct_command($executable, $port);
 
     system($command);
     my $success = wait_until { probe_port($port) } timeout => 10;
@@ -185,7 +185,7 @@ sub _find_executable {
 }
 
 sub _construct_command {
-    my ($executable, $port) = @_;
+    my ($self, $executable, $port) = @_;
 
     my %args;
     if ($executable =~ /chromedriver(\.exe)?$/i) {
@@ -206,13 +206,16 @@ sub _construct_command {
     my @args = map { '--' . $_ . '=' . $args{$_} } keys %args;
 
     # Handle Windows vs Unix discrepancies for invoking shell commands
-    my ($prefix, $suffix) = (_command_prefix(), _command_suffix());
+    my ($prefix, $suffix) = ($self->_command_prefix(), $self->_command_suffix());
     return join(' ', ($prefix, $executable, @args, $suffix) );
 }
 
 sub _command_prefix {
+    my ($self) = @_;
+
     if ($^O eq 'MSWin32') {
-        return 'start /MAX '
+        my $title = ref($self) . ':' . $self->binary_port;
+        return 'start "' . $title . '" /MAX '
     }
     else {
         return '';
@@ -220,12 +223,13 @@ sub _command_prefix {
 }
 
 sub _command_suffix {
+    # TODO: allow users to specify whether & where they want driver
+    # output to go
+
     if ($^O eq 'MSWin32') {
         return ' > /nul 2>&1 ';
     }
     else {
-        # TODO: allow users to specify whether & where they want
-        # driver output to go
         return ' > /dev/null 2>&1 &';
     }
 }

+ 1 - 1
t/CanStartBinary.t

@@ -70,7 +70,7 @@ CHROME: {
 }
 
 FIREFOX: {
-    my $command = Selenium::CanStartBinary::_construct_command('firefox', 1234);
+    my $command = Selenium::CanStartBinary->_construct_command('firefox', 1234);
     ok($command =~ /firefox -no-remote/, 'firefox command has proper args');
 
   SKIP: {