1
0
Эх сурвалжийг харах

Added mocking functionality to driver test. From now on we require another ENV var WD_MOCKING_RECORD to be set to 1 to enable recording. We should be running this only when the tests and/or code changes, otherwise we should treat this as a 'golden' set to perform our regression tests

Aditya Ivaturi 14 жил өмнө
parent
commit
22b530260d
1 өөрчлөгдсөн 25 нэмэгдсэн , 14 устгасан
  1. 25 14
      t/01-driver-live.t

+ 25 - 14
t/01-driver-live.t

@@ -6,24 +6,35 @@ use Net::Ping;
 use Data::Dumper;
 
 BEGIN {
-   my $p = Net::Ping->new("tcp", 2);
-    $p->port_number(4444);
-    unless ($p->ping('localhost')) {
-        plan skip_all => "Selenium server is not running on localhost:4444";
-        exit;
-    }
-    unless (use_ok( 'Selenium::Remote::Driver')) {
-        BAIL_OUT ("Couldn't load Driver");
-        exit;
-    }
+   unless (use_ok( 'Selenium::Remote::Driver'))
+   {
+      BAIL_OUT ("Couldn't load Driver");
+      exit;
+   }
+   
+   if (defined $ENV{'WD_MOCKING_RECORD'} && ($ENV{'WD_MOCKING_RECORD'}==1))
+   {
+      use t::lib::MockSeleniumWebDriver;
+      my $p = Net::Ping->new("tcp", 2);
+      $p->port_number(4444);
+      unless ($p->ping('localhost')) {
+         plan skip_all => "Selenium server is not running on localhost:4444";
+         exit;
+      }
+      warn "\n\nRecording...\n\n";
+   }
 }
 
+my $record = (defined $ENV{'WD_MOCKING_RECORD'} && ($ENV{'WD_MOCKING_RECORD'}==1))?1:0;
+my $mock_file = '01-driver-mock-'.$^O.'.json';
+t::lib::MockSeleniumWebDriver::register($record,"t/mock-recordings/$mock_file");
+
 # Start our local http server
-if ($^O eq 'MSWin32')
+if ($^O eq 'MSWin32' && $record)
 {
    system("start \"TEMP_HTTP_SERVER\" /MIN perl t/http-server.pl");
 }
-else
+elsif ($record)
 {
     system("perl t/http-server.pl > /dev/null &");
 }
@@ -191,11 +202,11 @@ QUIT: {
       }
 
 # Kill our HTTP Server
-if ($^O eq 'MSWin32')
+if ($^O eq 'MSWin32' && $record)
 {
    system("taskkill /FI \"WINDOWTITLE eq TEMP_HTTP_SERVER\"");
 }
-else
+elsif ($record)
 {
     `ps aux | grep http-server\.pl | grep perl | awk '{print \$2}' | xargs kill`;
 }