<?php namespace PhpOffice\PhpSpreadsheetTests\Functional; use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PHPUnit\Framework\TestCase; class StreamTest extends TestCase { public function providerFormats(): array { return [ ['Xls'], ['Xlsx'], ['Ods'], ['Csv'], ['Html'], ['Tcpdf'], ['Dompdf'], ['Mpdf'], ]; } /** * @dataProvider providerFormats * * @param string $format */ public function testAllWritersCanWriteToStream(string $format): void { $spreadsheet = new Spreadsheet(); $spreadsheet->getActiveSheet()->setCellValue('A1', 'foo'); $writer = IOFactory::createWriter($spreadsheet, $format); $stream = fopen('php://memory', 'wb+'); self::assertSame(0, fstat($stream)['size']); $writer->save($stream); self::assertIsResource($stream, 'should not close the stream for further usage out of PhpSpreadsheet'); self::assertGreaterThan(0, fstat($stream)['size'], 'something should have been written to the stream'); self::assertGreaterThan(0, ftell($stream), 'should not be rewinded, because not all streams support it'); } }