Bläddra i källkod

fix bug issue #8 - Error if the file is empty

wapplay-home-linux 8 år sedan
förälder
incheckning
6688f474b5
6 ändrade filer med 22 tillägg och 20 borttagningar
  1. 0 9
      .codeclimate.yml
  2. 1 9
      .travis.yml
  3. 3 0
      CHANGELOG.md
  4. 0 1
      README.md
  5. 4 1
      src/PhpZip/Model/Entry/ZipReadEntry.php
  6. 14 0
      tests/PhpZip/ZipFileTest.php

+ 0 - 9
.codeclimate.yml

@@ -1,9 +0,0 @@
-engines:
-  duplication:
-    enabled: true
-    config:
-      languages:
-        - php
-exclude_paths:
-  - tests/
-  - vendor/

+ 1 - 9
.travis.yml

@@ -12,10 +12,6 @@ cache:
     - vendor
     - $HOME/.composer/cache
 
-addons:
-  code_climate:
-    repo_token: 486a09d58d663450146c53c81c6c64938bcf3bb0b7c8ddebdc125fe97c18213a
-
 install:
   - travis_retry composer self-update && composer --version
   - travis_retry composer install --prefer-dist --no-interaction
@@ -25,8 +21,4 @@ before_script:
 
 script:
   - composer validate --no-check-lock
-  - vendor/bin/phpunit -v -c bootstrap.xml --coverage-clover build/logs/clover.xml
-
-after_success:
-  - vendor/bin/test-reporter
-
+  - vendor/bin/phpunit -v -c bootstrap.xml

+ 3 - 0
CHANGELOG.md

@@ -1,3 +1,6 @@
+## 3.0.3 (2017-11-11)
+Fix bug issue #8 - Error if the file is empty.
+
 ## 3.0.0 (2017-03-15)
 Merge `ZipOutputFile` with ZipFile and optimize the zip archive update.
 

+ 0 - 1
README.md

@@ -6,7 +6,6 @@
 [![Latest Stable Version](https://poser.pugx.org/nelexa/zip/v/stable)](https://packagist.org/packages/nelexa/zip)
 [![Total Downloads](https://poser.pugx.org/nelexa/zip/downloads)](https://packagist.org/packages/nelexa/zip)
 [![Minimum PHP Version](http://img.shields.io/badge/php%2064bit-%3E%3D%205.5-8892BF.svg)](https://php.net/)
-[![Test Coverage](https://codeclimate.com/github/Ne-Lexa/php-zip/badges/coverage.svg)](https://codeclimate.com/github/Ne-Lexa/php-zip/coverage)
 [![License](https://poser.pugx.org/nelexa/zip/license)](https://packagist.org/packages/nelexa/zip)
 
 Table of contents

+ 4 - 1
src/PhpZip/Model/Entry/ZipReadEntry.php

@@ -151,7 +151,10 @@ class ZipReadEntry extends ZipAbstractEntry
             fseek($this->inputStream, $pos);
 
             // Get raw entry content
-            $content = fread($this->inputStream, $this->getCompressedSize());
+            $content = '';
+            if ($this->getCompressedSize() > 0) {
+                $content = fread($this->inputStream, $this->getCompressedSize());
+            }
 
             // Strong Encryption Specification - WinZip AES
             if ($this->isEncrypted()) {

+ 14 - 0
tests/PhpZip/ZipFileTest.php

@@ -1,4 +1,5 @@
 <?php
+
 namespace PhpZip;
 
 use PhpZip\Exception\ZipAuthenticationException;
@@ -1811,6 +1812,19 @@ class ZipFileTest extends ZipTestCase
         self::assertTrue($result);
     }
 
+    public function testEmptyContents()
+    {
+        $zipFile = new ZipFile();
+        $contents = '';
+        $zipFile->addFromString('file', $contents);
+        $zipFile->saveAsFile($this->outputFilename);
+        $zipFile->close();
+
+        $zipFile->openFile($this->outputFilename);
+        self::assertEquals($zipFile['file'], $contents);
+        $zipFile->close();
+    }
+
     /**
      * Test support ZIP64 ext (slow test - normal).
      * Create > 65535 files in archive and open and extract to /dev/null.