Files
oleibman 2c8177a319 Eliminate Unneeded Separate Process Tests
The tests stay; they just no longer run in separate processes. I think that only 2 tests still require separate processes - Helper/SampleTest and Tcpdf/NoDieTest. Aside from a new internal method in IOFactory, all the changes here are to test members.
2025-12-07 23:15:01 -08:00

62 lines
1.6 KiB
PHP

<?php
declare(strict_types=1);
namespace PhpOffice\PhpSpreadsheetTests\Shared;
use PhpOffice\PhpSpreadsheet\Shared\OLE;
use PHPUnit\Framework\TestCase;
/**
* There were problems running these tests in OLETest with PhpUnit 10.
* These replacements seem to work.
*/
class OLEPhpunit10Test extends TestCase
{
private static string $errorString;
protected function setUp(): void
{
self::$errorString = '';
set_error_handler([self::class, 'errorHandler']);
}
protected function tearDown(): void
{
restore_error_handler();
}
public static function errorHandler(int $errno, string $errstr): bool
{
if ($errno === E_USER_WARNING) {
self::$errorString = $errstr;
return true; // stop error handling
}
return false; // continue error handling
}
public function testChainedWriteMode(): void
{
self::assertSame('', self::$errorString);
$ole = new OLE\ChainedBlockStream();
$openedPath = '';
self::assertFalse($ole->stream_open('whatever', 'w', 0, $openedPath));
$ole->stream_open('whatever', 'w', STREAM_REPORT_ERRORS, $openedPath);
self::assertSame('Only reading is supported', self::$errorString);
}
public function testChainedBadPath(): void
{
self::assertSame('', self::$errorString);
$ole = new OLE\ChainedBlockStream();
$openedPath = '';
self::assertFalse($ole->stream_open('whatever', 'r', 0, $openedPath));
$ole->stream_open('whatever', 'r', STREAM_REPORT_ERRORS, $openedPath);
self::assertSame('OLE stream not found', self::$errorString);
}
}