Pārlūkot izejas kodu

Use Archive::Zip instead of IO::Compress::Zip

Keita Sugama 10 gadi atpakaļ
vecāks
revīzija
eaf8d5d751
2 mainītis faili ar 8 papildinājumiem un 4 dzēšanām
  1. 1 1
      cpanfile
  2. 7 3
      lib/Selenium/Remote/Driver.pm

+ 1 - 1
cpanfile

@@ -12,7 +12,7 @@ requires "File::Which" => "0";
 requires "HTTP::Headers" => "0";
 requires "HTTP::Request" => "0";
 requires "HTTP::Response" => "0";
-requires "IO::Compress::Zip" => "0";
+requires "IO::String" => "0";
 requires "IO::Socket" => "0";
 requires "IO::Socket::INET" => "0";
 requires "IO::Uncompress::Unzip" => "0";

+ 7 - 3
lib/Selenium/Remote/Driver.pm

@@ -15,7 +15,8 @@ use v5.10.0;    # Before 5.006, v5.10.0 would not be understood.
 use Carp;
 our @CARP_NOT;
 
-use IO::Compress::Zip qw(zip $ZipError);
+use IO::String;
+use Archive::Zip qw( :ERROR_CODES );
 use Scalar::Util;
 use Selenium::Remote::RemoteConnection;
 use Selenium::Remote::Commands;
@@ -2487,8 +2488,11 @@ sub _prepare_file {
 
     if ( not -r $filename ) { die "upload_file: no such file: $filename"; }
     my $string = "";    # buffer
-    zip $filename => \$string, Name => basename($filename)
-      or die "zip failed: $ZipError\n";    # compress the file into string
+    my $zip = Archive::Zip->new();
+    $zip->addFile($filename, basename($filename));
+    if ($zip->writeToFileHandle(IO::String->new($string)) != AZ_OK) {
+        die 'zip failed';
+    }
 
     return {
         file => MIME::Base64::encode_base64($string)          # base64-encoded string