expectException( $exceptionClass ); $this->expectExceptionMessage( $exceptionMessage ); } static::assertIsResource($resource); $zipFile = new ZipFile(); $zipFile->openFromStream($resource); static::assertTrue(fclose($resource)); } /** * @return array */ public function provideStreams() { return [ [@fopen(__DIR__ . '/resources/apk.zip', 'rb'), null, null], [ @fopen(__DIR__, 'rb'), InvalidArgumentException::class, 'Directory stream not supported', ], [$this->getTempResource('php://temp'), null, null], [$this->getTempResource('php://memory'), null, null], [ @fopen('https://github.com/Ne-Lexa/php-zip/archive/master.zip', 'rb'), InvalidArgumentException::class, 'The stream wrapper type "http" is not supported.', ], ]; } /** * @param string $filename * * @return resource */ private function getTempResource($filename) { $fp = fopen(__DIR__ . '/resources/apk.zip', 'rb'); $stream = fopen($filename, 'r+b'); stream_copy_to_stream($fp, $stream); fclose($fp); rewind($stream); return $stream; } }