Răsfoiți Sursa

Use DI to inject error handler in RemoteConnection

This allows appium/perl-client to use its own error handler as of
S::R::D v0.2150
Daniel Gempesaw 11 ani în urmă
părinte
comite
63e78e3818
2 a modificat fișierele cu 7 adăugiri și 3 ștergeri
  1. 1 1
      dist.ini
  2. 6 2
      lib/Selenium/Remote/RemoteConnection.pm

+ 1 - 1
dist.ini

@@ -1,5 +1,5 @@
 name = Selenium-Remote-Driver
-version = 0.2102
+version = 0.2150
 author = Aditya Ivaturi <ivaturi@gmail.com>
 author = Daniel Gempesaw <gempesaw@gmail.com>
 author = Luke Closs <cpan@5thplane.com>

+ 6 - 2
lib/Selenium/Remote/RemoteConnection.pm

@@ -31,6 +31,11 @@ has 'ua' => (
     builder => sub { return LWP::UserAgent->new; }
 );
 
+has 'error_handler' => (
+    is => 'lazy',
+    builder => sub { return Selenium::Remote::ErrorHandler->new; }
+);
+
 sub BUILD {
     my $self = shift;
     my $status;
@@ -121,10 +126,9 @@ sub _process_response {
         }
 
         if ($response->is_error) {
-            my $error_handler = Selenium::Remote::ErrorHandler->new;
             $data->{'cmd_status'} = 'NOTOK';
             if (defined $decoded_json) {
-                $data->{'cmd_return'} = $error_handler->process_error($decoded_json);
+                $data->{'cmd_return'} = $self->error_handler->process_error($decoded_json);
             }
             else {
                 $data->{'cmd_return'} = 'Server returned error code '.$response->code.' and no data';