diff --git a/src/PhpSpreadsheet/IOFactory.php b/src/PhpSpreadsheet/IOFactory.php index 91eec42ea..6472459a7 100644 --- a/src/PhpSpreadsheet/IOFactory.php +++ b/src/PhpSpreadsheet/IOFactory.php @@ -54,6 +54,31 @@ abstract class IOFactory 'Mpdf' => Writer\Pdf\Mpdf::class, ]; + /** @internal */ + public static function restoreDefaultReadersAndWriters(): void + { + self::$readers = [ + self::READER_XLSX => Reader\Xlsx::class, + self::READER_XLS => Reader\Xls::class, + self::READER_XML => Reader\Xml::class, + self::READER_ODS => Reader\Ods::class, + self::READER_SLK => Reader\Slk::class, + self::READER_GNUMERIC => Reader\Gnumeric::class, + self::READER_HTML => Reader\Html::class, + self::READER_CSV => Reader\Csv::class, + ]; + self::$writers = [ + self::WRITER_XLS => Writer\Xls::class, + self::WRITER_XLSX => Writer\Xlsx::class, + self::WRITER_ODS => Writer\Ods::class, + self::WRITER_CSV => Writer\Csv::class, + self::WRITER_HTML => Writer\Html::class, + 'Tcpdf' => Writer\Pdf\Tcpdf::class, + 'Dompdf' => Writer\Pdf\Dompdf::class, + 'Mpdf' => Writer\Pdf\Mpdf::class, + ]; + } + /** * Create Writer\IWriter. */ diff --git a/tests/PhpSpreadsheetTests/Calculation/CalculationCoverageTest.php b/tests/PhpSpreadsheetTests/Calculation/CalculationCoverageTest.php index 9a81d180b..9893409d5 100644 --- a/tests/PhpSpreadsheetTests/Calculation/CalculationCoverageTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/CalculationCoverageTest.php @@ -9,7 +9,6 @@ use PhpOffice\PhpSpreadsheet\Calculation\Exception as CalcException; use PhpOffice\PhpSpreadsheet\Calculation\ExceptionHandler; use PhpOffice\PhpSpreadsheet\NamedRange; use PhpOffice\PhpSpreadsheet\Spreadsheet; -use PHPUnit\Framework\Attributes; use PHPUnit\Framework\TestCase; class CalculationCoverageTest extends TestCase @@ -130,8 +129,6 @@ class CalculationCoverageTest extends TestCase protected static string $winIndicator = 'WIN'; - // separate process because it sets its own handler - #[Attributes\RunInSeparateProcess] public function testExceptionHandler(): void { if ( @@ -145,6 +142,5 @@ class CalculationCoverageTest extends TestCase $this->expectExceptionMessage('hello'); $handler = new ExceptionHandler(); trigger_error('hello'); - self::assertNotNull($handler); // @phpstan-ignore-line } } diff --git a/tests/PhpSpreadsheetTests/Functional/AbstractFunctional.php b/tests/PhpSpreadsheetTests/Functional/AbstractFunctional.php index b81208bd6..ddfd93067 100644 --- a/tests/PhpSpreadsheetTests/Functional/AbstractFunctional.php +++ b/tests/PhpSpreadsheetTests/Functional/AbstractFunctional.php @@ -20,18 +20,22 @@ abstract class AbstractFunctional extends TestCase protected function writeAndReload(Spreadsheet $spreadsheet, string $format, ?callable $readerCustomizer = null, ?callable $writerCustomizer = null): Spreadsheet { $filename = File::temporaryFilename(); - $writer = IOFactory::createWriter($spreadsheet, $format); - if ($writerCustomizer) { - $writerCustomizer($writer); - } - $writer->save($filename); - $reader = IOFactory::createReader($format); - if ($readerCustomizer) { - $readerCustomizer($reader); + try { + $writer = IOFactory::createWriter($spreadsheet, $format); + if ($writerCustomizer) { + $writerCustomizer($writer); + } + $writer->save($filename); + + $reader = IOFactory::createReader($format); + if ($readerCustomizer) { + $readerCustomizer($reader); + } + $reloadedSpreadsheet = $reader->load($filename); + } finally { + @unlink($filename); } - $reloadedSpreadsheet = $reader->load($filename); - unlink($filename); return $reloadedSpreadsheet; } diff --git a/tests/PhpSpreadsheetTests/IOFactoryRegisterTest.php b/tests/PhpSpreadsheetTests/IOFactoryRegisterTest.php index 246fdc420..c8be9da30 100644 --- a/tests/PhpSpreadsheetTests/IOFactoryRegisterTest.php +++ b/tests/PhpSpreadsheetTests/IOFactoryRegisterTest.php @@ -9,13 +9,15 @@ use PhpOffice\PhpSpreadsheet\Reader; use PhpOffice\PhpSpreadsheet\Reader\Exception as ReaderException; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer; -use PHPUnit\Framework\Attributes; use PHPUnit\Framework\TestCase; -// Separate processes because register arrays are static -#[Attributes\RunTestsInSeparateProcesses] class IOFactoryRegisterTest extends TestCase { + protected function tearDown(): void + { + IOFactory::restoreDefaultReadersAndWriters(); + } + public function testRegisterWriter(): void { IOFactory::registerWriter('Pdf', Writer\Pdf\Mpdf::class); diff --git a/tests/PhpSpreadsheetTests/Reader/Csv/CsvNumberFormatLocaleTest.php b/tests/PhpSpreadsheetTests/Reader/Csv/CsvNumberFormatLocaleTest.php index 086d780f5..9bb30c045 100644 --- a/tests/PhpSpreadsheetTests/Reader/Csv/CsvNumberFormatLocaleTest.php +++ b/tests/PhpSpreadsheetTests/Reader/Csv/CsvNumberFormatLocaleTest.php @@ -6,12 +6,10 @@ namespace PhpOffice\PhpSpreadsheetTests\Reader\Csv; use PhpOffice\PhpSpreadsheet\Cell\DataType; use PhpOffice\PhpSpreadsheet\Reader\Csv; -use PHPUnit\Framework\Attributes; +use PhpOffice\PhpSpreadsheet\Shared\StringHelper; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -// separate processes due to setLocale -#[Attributes\RunTestsInSeparateProcesses] class CsvNumberFormatLocaleTest extends TestCase { private bool $localeAdjusted; @@ -39,10 +37,16 @@ class CsvNumberFormatLocaleTest extends TestCase $this->filename = 'tests/data/Reader/CSV/NumberFormatTest.de.csv'; $this->csvReader = new Csv(); + StringHelper::setCurrencyCode(null); + StringHelper::setThousandsSeparator(null); + StringHelper::setDecimalSeparator(null); } protected function tearDown(): void { + StringHelper::setCurrencyCode(null); + StringHelper::setThousandsSeparator(null); + StringHelper::setDecimalSeparator(null); if ($this->localeAdjusted && is_string($this->currentLocale)) { setlocale(LC_ALL, $this->currentLocale); } diff --git a/tests/PhpSpreadsheetTests/Reader/Html/HtmlBorderTest.php b/tests/PhpSpreadsheetTests/Reader/Html/HtmlBorderTest.php index d3e86fe8c..47567cc8e 100644 --- a/tests/PhpSpreadsheetTests/Reader/Html/HtmlBorderTest.php +++ b/tests/PhpSpreadsheetTests/Reader/Html/HtmlBorderTest.php @@ -24,8 +24,7 @@ class HtmlBorderTest extends TestCase '; - $filename = HtmlHelper::createHtml($html); - $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true); + $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html); $firstSheet = $spreadsheet->getSheet(0); $style = $firstSheet->getCell('A1')->getStyle(); $borders = $style->getBorders(); diff --git a/tests/PhpSpreadsheetTests/Reader/Html/HtmlHelper.php b/tests/PhpSpreadsheetTests/Reader/Html/HtmlHelper.php index 0a8dfeb33..cf21554b5 100644 --- a/tests/PhpSpreadsheetTests/Reader/Html/HtmlHelper.php +++ b/tests/PhpSpreadsheetTests/Reader/Html/HtmlHelper.php @@ -31,4 +31,15 @@ class HtmlHelper return $spreadsheet; } + + public static function loadHtmlStringIntoSpreadsheet(string $content, ?bool $allowExternalImages = null): Spreadsheet + { + $html = new Html(); + if ($allowExternalImages !== null) { + $html->setAllowExternalImages($allowExternalImages); + } + $spreadsheet = $html->loadFromString($content); + + return $spreadsheet; + } } diff --git a/tests/PhpSpreadsheetTests/Reader/Html/HtmlImage2Test.php b/tests/PhpSpreadsheetTests/Reader/Html/HtmlImage2Test.php index 839ef7369..5043ebfdf 100644 --- a/tests/PhpSpreadsheetTests/Reader/Html/HtmlImage2Test.php +++ b/tests/PhpSpreadsheetTests/Reader/Html/HtmlImage2Test.php @@ -29,8 +29,7 @@ class HtmlImage2Test extends TestCase test image voilà '; - $filename = HtmlHelper::createHtml($html); - $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true, true); + $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html, true); $firstSheet = $spreadsheet->getSheet(0); /** @var Drawing $drawing */ @@ -48,8 +47,7 @@ class HtmlImage2Test extends TestCase test image voilà '; - $filename = HtmlHelper::createHtml($html); - $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true, false); + $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html, false); $firstSheet = $spreadsheet->getSheet(0); self::assertCount(0, $firstSheet->getDrawingCollection()); $spreadsheet->disconnectWorksheets(); @@ -66,8 +64,7 @@ class HtmlImage2Test extends TestCase test image voilà '; - $filename = HtmlHelper::createHtml($html); - $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true, true); + $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html, true); $firstSheet = $spreadsheet->getSheet(0); $drawingCollection = $firstSheet->getDrawingCollection(); self::assertCount(0, $drawingCollection); @@ -82,8 +79,7 @@ class HtmlImage2Test extends TestCase test image voilà '; - $filename = HtmlHelper::createHtml($html); - $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true, false); + $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html, false); $firstSheet = $spreadsheet->getSheet(0); $drawingCollection = $firstSheet->getDrawingCollection(); self::assertCount(0, $drawingCollection); @@ -100,8 +96,7 @@ class HtmlImage2Test extends TestCase test image voilà '; - $filename = HtmlHelper::createHtml($html); - HtmlHelper::loadHtmlIntoSpreadsheet($filename, true); + HtmlHelper::loadHtmlStringIntoSpreadsheet($html); } public static function providerBadProtocol(): array diff --git a/tests/PhpSpreadsheetTests/Reader/Html/HtmlImageTest.php b/tests/PhpSpreadsheetTests/Reader/Html/HtmlImageTest.php index b56a316a1..1fa59dd91 100644 --- a/tests/PhpSpreadsheetTests/Reader/Html/HtmlImageTest.php +++ b/tests/PhpSpreadsheetTests/Reader/Html/HtmlImageTest.php @@ -18,8 +18,7 @@ class HtmlImageTest extends TestCase test image voilà '; - $filename = HtmlHelper::createHtml($html); - $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true); + $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html); $firstSheet = $spreadsheet->getSheet(0); /** @var Drawing $drawing */ @@ -40,8 +39,7 @@ class HtmlImageTest extends TestCase test image '; - $filename = HtmlHelper::createHtml($html); - $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true); + $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html); $firstSheet = $spreadsheet->getSheet(0); /** @var Drawing $drawing */ @@ -59,8 +57,7 @@ class HtmlImageTest extends TestCase '; - $filename = HtmlHelper::createHtml($html); - $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true); + $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html); $firstSheet = $spreadsheet->getSheet(0); /** @var Drawing $drawing */ @@ -77,8 +74,7 @@ class HtmlImageTest extends TestCase '; - $filename = HtmlHelper::createHtml($html); - $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true); + $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html); $firstSheet = $spreadsheet->getSheet(0); self::assertCount(0, $firstSheet->getDrawingCollection()); diff --git a/tests/PhpSpreadsheetTests/Reader/Html/HtmlLibxmlTest.php b/tests/PhpSpreadsheetTests/Reader/Html/HtmlLibxmlTest.php index 5df5c249b..e308e75ae 100644 --- a/tests/PhpSpreadsheetTests/Reader/Html/HtmlLibxmlTest.php +++ b/tests/PhpSpreadsheetTests/Reader/Html/HtmlLibxmlTest.php @@ -12,10 +12,7 @@ use PHPUnit\Framework\TestCase; * although it will generate warning messages. * This member demonstrates a method less intrusive than * set_error_handler to detect if there has been a problem. - * I want it run in a separate - * process because I am nervous about libxml_use_internal_errors. */ -#[\PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses] class HtmlLibxmlTest extends TestCase { private bool $useErrors; diff --git a/tests/PhpSpreadsheetTests/Reader/Html/HtmlPhpunit10Test.php b/tests/PhpSpreadsheetTests/Reader/Html/HtmlPhpunit10Test.php index d691a40ce..939dfd37f 100644 --- a/tests/PhpSpreadsheetTests/Reader/Html/HtmlPhpunit10Test.php +++ b/tests/PhpSpreadsheetTests/Reader/Html/HtmlPhpunit10Test.php @@ -9,10 +9,8 @@ use PHPUnit\Framework\TestCase; /** * There were problems running this test in HtmlTest with PhpUnit 10. - * This replacement seem to work. I want it run in a separate - * process because I am nervous about set_error_handler. + * This replacement seem to work. */ -#[\PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses] class HtmlPhpunit10Test extends TestCase { private static string $errorString; diff --git a/tests/PhpSpreadsheetTests/Reader/Html/HtmlTest.php b/tests/PhpSpreadsheetTests/Reader/Html/HtmlTest.php index 1443ceb7e..4ae0b590b 100644 --- a/tests/PhpSpreadsheetTests/Reader/Html/HtmlTest.php +++ b/tests/PhpSpreadsheetTests/Reader/Html/HtmlTest.php @@ -73,8 +73,7 @@ class HtmlTest extends TestCase Unknown fore/background '; - $filename = HtmlHelper::createHtml($html); - $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true); + $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html); $firstSheet = $spreadsheet->getSheet(0); $style = $firstSheet->getCell('A1')->getStyle(); self::assertEquals('FFFFFF', $style->getFont()->getColor()->getRGB()); @@ -103,8 +102,7 @@ class HtmlTest extends TestCase Line through '; - $filename = HtmlHelper::createHtml($html); - $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true); + $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html); $firstSheet = $spreadsheet->getSheet(0); $style = $firstSheet->getCell('A1')->getStyle(); @@ -136,8 +134,7 @@ class HtmlTest extends TestCase 50px '; - $filename = HtmlHelper::createHtml($html); - $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true); + $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html); $firstSheet = $spreadsheet->getSheet(0); $dimension = $firstSheet->getColumnDimension('A'); @@ -164,8 +161,7 @@ class HtmlTest extends TestCase 1 '; - $filename = HtmlHelper::createHtml($html); - $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true); + $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html); $firstSheet = $spreadsheet->getSheet(0); $dimension = $firstSheet->getRowDimension(1); @@ -191,8 +187,7 @@ class HtmlTest extends TestCase Wraptext '; - $filename = HtmlHelper::createHtml($html); - $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true); + $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html); $firstSheet = $spreadsheet->getSheet(0); $style = $firstSheet->getCell('A1')->getStyle(); @@ -224,8 +219,7 @@ class HtmlTest extends TestCase x '; - $filename = HtmlHelper::createHtml($html); - $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true); + $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html); $sheet = $spreadsheet->getSheet(0); self::assertEquals('mmm-yy', $sheet->getStyle('A1')->getNumberFormat()->getFormatCode()); @@ -250,8 +244,7 @@ class HtmlTest extends TestCase Hello
World '; - $filename = HtmlHelper::createHtml($html); - $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true); + $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html); $firstSheet = $spreadsheet->getSheet(0); $cellStyle = $firstSheet->getStyle('A1'); @@ -293,8 +286,7 @@ class HtmlTest extends TestCase Text Indent '; - $filename = HtmlHelper::createHtml($html); - $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true); + $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html); $firstSheet = $spreadsheet->getSheet(0); $style = $firstSheet->getCell('C2')->getStyle(); self::assertEquals(1, $style->getAlignment()->getIndent()); diff --git a/tests/PhpSpreadsheetTests/Shared/OLEPhpunit10Test.php b/tests/PhpSpreadsheetTests/Shared/OLEPhpunit10Test.php index 22505530d..bd0bf98c5 100644 --- a/tests/PhpSpreadsheetTests/Shared/OLEPhpunit10Test.php +++ b/tests/PhpSpreadsheetTests/Shared/OLEPhpunit10Test.php @@ -9,10 +9,8 @@ use PHPUnit\Framework\TestCase; /** * There were problems running these tests in OLETest with PhpUnit 10. - * These replacements seem to work. I want them run in separate - * processes because I am nervous about set_error_handler. + * These replacements seem to work. */ -#[\PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses] class OLEPhpunit10Test extends TestCase { private static string $errorString; diff --git a/tests/PhpSpreadsheetTests/Shared/StringHelperLocaleTest.php b/tests/PhpSpreadsheetTests/Shared/StringHelperLocaleTest.php index d3c0b43df..d7e910659 100644 --- a/tests/PhpSpreadsheetTests/Shared/StringHelperLocaleTest.php +++ b/tests/PhpSpreadsheetTests/Shared/StringHelperLocaleTest.php @@ -5,11 +5,8 @@ declare(strict_types=1); namespace PhpOffice\PhpSpreadsheetTests\Shared; use PhpOffice\PhpSpreadsheet\Shared\StringHelper; -use PHPUnit\Framework\Attributes; use PHPUnit\Framework\TestCase; -// separate processes due to setLocale -#[Attributes\RunTestsInSeparateProcesses] class StringHelperLocaleTest extends TestCase { /** @@ -20,6 +17,7 @@ class StringHelperLocaleTest extends TestCase protected function setUp(): void { $this->currentLocale = setlocale(LC_ALL, '0'); + StringHelper::setCurrencyCode(null); } protected function tearDown(): void diff --git a/tests/PhpSpreadsheetTests/SpreadsheetSerializeTest.php b/tests/PhpSpreadsheetTests/SpreadsheetSerializeTest.php index 92ecedd99..2c21171d6 100644 --- a/tests/PhpSpreadsheetTests/SpreadsheetSerializeTest.php +++ b/tests/PhpSpreadsheetTests/SpreadsheetSerializeTest.php @@ -8,7 +8,6 @@ use PhpOffice\PhpSpreadsheet\Exception as SpreadsheetException; use PhpOffice\PhpSpreadsheet\Helper\Sample; use PhpOffice\PhpSpreadsheet\NamedRange; use PhpOffice\PhpSpreadsheet\Spreadsheet; -use PHPUnit\Framework\Attributes; use PHPUnit\Framework\TestCase; class SpreadsheetSerializeTest extends TestCase @@ -80,11 +79,7 @@ class SpreadsheetSerializeTest extends TestCase self::assertNotFalse( file_put_contents($outputFileName, $ser) ); - } - #[Attributes\RunInSeparateProcess] - public function testReadSerialize(): void - { $inputFileName = self::getTempFileName(); $ser = (string) file_get_contents($inputFileName); unlink($inputFileName); diff --git a/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/AccountingTest.php b/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/AccountingTest.php index 3075ad5dd..95c22cfbb 100644 --- a/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/AccountingTest.php +++ b/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/AccountingTest.php @@ -6,6 +6,7 @@ namespace PhpOffice\PhpSpreadsheetTests\Style\NumberFormat\Wizard; use NumberFormatter; use PhpOffice\PhpSpreadsheet\Exception; +use PhpOffice\PhpSpreadsheet\Shared\StringHelper; use PhpOffice\PhpSpreadsheet\Style\NumberFormat\Formatter; use PhpOffice\PhpSpreadsheet\Style\NumberFormat\Wizard\Accounting; use PhpOffice\PhpSpreadsheet\Style\NumberFormat\Wizard\Currency; @@ -17,6 +18,13 @@ use ReflectionMethod; class AccountingTest extends TestCase { + protected function tearDown(): void + { + StringHelper::setCurrencyCode(null); + StringHelper::setThousandsSeparator(null); + StringHelper::setDecimalSeparator(null); + } + #[DataProvider('providerAccounting')] public function testAccounting( string $expectedResultPositive, diff --git a/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/CurrencyTest.php b/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/CurrencyTest.php index 0de17ac35..6153f9ea4 100644 --- a/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/CurrencyTest.php +++ b/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/CurrencyTest.php @@ -6,6 +6,7 @@ namespace PhpOffice\PhpSpreadsheetTests\Style\NumberFormat\Wizard; use NumberFormatter; use PhpOffice\PhpSpreadsheet\Exception; +use PhpOffice\PhpSpreadsheet\Shared\StringHelper; use PhpOffice\PhpSpreadsheet\Style\NumberFormat\Formatter; use PhpOffice\PhpSpreadsheet\Style\NumberFormat\Wizard\Accounting; use PhpOffice\PhpSpreadsheet\Style\NumberFormat\Wizard\Currency; @@ -17,6 +18,13 @@ use ReflectionMethod; class CurrencyTest extends TestCase { + protected function tearDown(): void + { + StringHelper::setCurrencyCode(null); + StringHelper::setThousandsSeparator(null); + StringHelper::setDecimalSeparator(null); + } + #[DataProvider('providerCurrency')] public function testCurrency( string $expectedResultPositive, diff --git a/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/NumberTest.php b/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/NumberTest.php index fb6f56a1d..0c604b52a 100644 --- a/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/NumberTest.php +++ b/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/NumberTest.php @@ -6,12 +6,21 @@ namespace PhpOffice\PhpSpreadsheetTests\Style\NumberFormat\Wizard; use NumberFormatter; use PhpOffice\PhpSpreadsheet\Exception; +use PhpOffice\PhpSpreadsheet\Shared\StringHelper; use PhpOffice\PhpSpreadsheet\Style\NumberFormat\Wizard\Number; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class NumberTest extends TestCase { - #[\PHPUnit\Framework\Attributes\DataProvider('providerNumber')] + protected function tearDown(): void + { + StringHelper::setCurrencyCode(null); + StringHelper::setThousandsSeparator(null); + StringHelper::setDecimalSeparator(null); + } + + #[DataProvider('providerNumber')] public function testNumber(string $expectedResult, int $decimals, bool $thousandsSeparator): void { $wizard = new Number($decimals, $thousandsSeparator); @@ -30,7 +39,7 @@ class NumberTest extends TestCase ]; } - #[\PHPUnit\Framework\Attributes\DataProvider('providerNumberLocale')] + #[DataProvider('providerNumberLocale')] public function testNumberLocale( string $expectedResult, string $locale diff --git a/tests/PhpSpreadsheetTests/Writer/Xlsx/LocaleFloatsTest.php b/tests/PhpSpreadsheetTests/Writer/Xlsx/LocaleFloatsTest.php index 5ca2a0401..a3f6ddcb6 100644 --- a/tests/PhpSpreadsheetTests/Writer/Xlsx/LocaleFloatsTest.php +++ b/tests/PhpSpreadsheetTests/Writer/Xlsx/LocaleFloatsTest.php @@ -47,14 +47,9 @@ class LocaleFloatsTest extends AbstractFunctional } } - /** - * Use separate process because this calls native Php setlocale. - */ - #[\PHPUnit\Framework\Attributes\RunInSeparateProcess] public function testLocaleFloatsCorrectlyConvertedByWriter(): void { if (!setlocale(LC_ALL, 'fr_FR.UTF-8', 'fra_fra.utf8')) { - $this->currentPhpLocale = false; self::markTestSkipped('Unable to set locale for testing.'); } $localeconv = localeconv(); @@ -102,14 +97,9 @@ class LocaleFloatsTest extends AbstractFunctional self::assertSame('2,50', $sheet->getCell('A12')->getFormattedValue()); } - /** - * Use separate process because this calls native Php setlocale. - */ - #[\PHPUnit\Framework\Attributes\RunInSeparateProcess] public function testPercentageStoredAsString2(): void { if (!setlocale(LC_ALL, 'fr_FR.UTF-8', 'fra_fra.utf8')) { - $this->currentPhpLocale = false; self::markTestSkipped('Unable to set locale for testing.'); } $localeconv = localeconv();